Files
VRyHungry1/kanban_tasks_data.kanban
T

264 lines
8.9 KiB
Plaintext

{
"categories": [
{
"uuid": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"title": "Task",
"color": "569eff"
}
],
"stages": [
{
"uuid": "94333de9-ebf5-4f38-b95b-9477f4bb9dde",
"title": "Backlog",
"tasks": [
"854c7e1e-7521-4bcd-83ff-bb3fecec3142",
"4e2ca8d1-84e1-4913-ad8f-834007d52160",
"dd822d14-88e5-4790-808e-7d2cf7f79133",
"784d5cd3-333a-40a9-b35f-3d0c73f00761"
]
},
{
"uuid": "211e4050-31cd-4425-a2ba-8ca56b4764cd",
"title": "Todo",
"tasks": [
"55ac73b8-4378-4b58-bf3c-33f64590c804"
]
},
{
"uuid": "fab8a81b-7ca9-4026-96bb-ed66ea58ef2e",
"title": "Doing",
"tasks": []
},
{
"uuid": "0d743057-955a-473a-8123-a3f805505d5d",
"title": "Done",
"tasks": [
"0dd511cd-592c-4334-afd8-c511bd36b7d0",
"6942c45a-53a4-484f-9885-4f249cb4572b",
"f8073eb2-8786-47b7-b63f-fa70c3f7115a",
"21bc19f1-ee3c-4bbb-ab9a-07ec6123a823",
"d93a31cd-d475-4c5a-87fc-983174b2594f",
"a4dd35ae-dc8e-42a3-9044-bf1cb1af281a",
"7883d015-f065-4b18-a2ab-e2a0daa9dc81",
"1c3b9543-cb67-431d-bf71-c8753e816776",
"d9cebd68-792e-4d01-a916-7df5f128b4a8",
"eee1990e-f957-4499-84b6-e68003fcb78e",
"4ab36c89-a377-4f25-86a1-ac276aadf4a2",
"cde44fb1-3fdf-4ea0-8267-d28d894e4e7d"
]
}
],
"tasks": [
{
"uuid": "eee1990e-f957-4499-84b6-e68003fcb78e",
"title": "Implement YAML-based Recipe System & Static RecipeManager",
"description": "Description: Move all recipe definitions out of hardcoded scripts and into a centralized recipes.yaml file. Create a static RecipeManager class to load this file at startup and handle recipe lookups (including handling symmetry so that combining A + B is the same as B + A).",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Create recipes.yaml with structures for combining, cooking, augmenting, chopping, and rolling.",
"done": false
},
{
"details": " Create static RecipeManager that parses the YAML on game start.",
"done": false
},
{
"details": "Implement RecipeManager.getCombination(item_a, item_b) which returns the resulting product regardless of input order (symmetry).",
"done": false
},
{
"details": "Implement lookup helper functions for other recipe types (e.g., get_cooking_recipe(item_id)).",
"done": false
}
]
},
{
"uuid": "854c7e1e-7521-4bcd-83ff-bb3fecec3142",
"title": "Create Interactive Counter Stations (Chopping, Rolling, etc.)",
"description": "Description: Implement a base Counter class (and/or specific station child classes like ChopCounter, RollCounter) that interact with the player. These stations should query the RecipeManager to see if the placed item can be processed and require a \"work\" threshold to be met via hand gestures (action inputs) before converting the item.",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Station detects placed FoodItem.",
"done": false
},
{
"details": "Station queries RecipeManager to check if a valid recipe exists for the interaction type (e.g., Chopping).",
"done": false
},
{
"details": "Implement a \"work\" accumulator that increases when the player performs hand gestures/inputs.",
"done": false
},
{
"details": "Item converts into the recipe output once accumulated work reaches the required threshold (e.g., work: 50 for lettuce).",
"done": false
}
]
},
{
"uuid": "4ab36c89-a377-4f25-86a1-ac276aadf4a2",
"title": "Implement Plate Container System & Dynamic Combination Logic",
"description": "Description: Create a Plate item that acts as a dynamic container holding a list of FoodItems. Expand the combination logic so plates can accept specific items (e.g., adding Chips to a plate with a Hamburger to make a combo, or adding Cheese to a hamburger on a plate to toggle its has_cheese attribute).",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Plate class holds a list of FoodItems.",
"done": true
},
{
"details": "Implement logic for adding items to the plate, checking if the plate's current contents can legally accept the incoming item.",
"done": true
}
]
},
{
"uuid": "cde44fb1-3fdf-4ea0-8267-d28d894e4e7d",
"title": "Implement Dirty Plates",
"description": "Description: Add a state to plates to handle the cleaning loop. Plates should become \"dirty\" after being cleared by a customer. Dirty plates must be cleaned at a Sink station before they can be used again.",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Add is_dirty boolean property to Plate.",
"done": false
},
{
"details": "Processing a dirty plate in the Sink resets is_dirty to false and makes it usable again.",
"done": false
}
]
},
{
"uuid": "d9cebd68-792e-4d01-a916-7df5f128b4a8",
"title": "Implement Multiplayer Synchronization (Network Architecture)",
"description": "Establish the client-server (or P2P) networking model for the game. Focus on syncing critical game state: physics objects (FoodItems), player actions (gestures/work progress), and station states (Chopping progress).",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Choose a networking model (e.g., Server-Authoritative or Peer-to-Peer).",
"done": false
},
{
"details": "Implement basic state synchronization for FoodItems (Position, Rotation, and state changes like is_dirty).",
"done": false
},
{
"details": "Synchronize player gesture/work progress across all clients (so players see the same progress bar on stations).",
"done": false
},
{
"details": "Ensure \"Authority\" logic: Determine who owns the RecipeManager data and how conflicts are handled (e.g., if two players try to grab the same item).",
"done": false
},
{
"details": "Test latency handling for high-frequency inputs like the \"wave arms\" gesture.",
"done": false
}
]
},
{
"uuid": "4e2ca8d1-84e1-4913-ad8f-834007d52160",
"title": "Containers support augmentation",
"description": "For example, adding cheese top a Hamburger.\nburger.cheese = true\n\nA plate with a burger need to support adding cheese where the container looks for the first meal or side that accepts the cheese",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "a4dd35ae-dc8e-42a3-9044-bf1cb1af281a",
"title": "Sink Station",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "dd822d14-88e5-4790-808e-7d2cf7f79133",
"title": "Decide how to do gestures",
"description": "\n- Pop1 style \n- Ghost tools appear as you get close\n- Physical",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "784d5cd3-333a-40a9-b35f-3d0c73f00761",
"title": "Plate rak",
"description": "See if we can use the Container.gd to do this.\nWe could possible change it to support extracting items if that is enabled.",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "1c3b9543-cb67-431d-bf71-c8753e816776",
"title": "Table Station (customer)",
"description": "Asks for a Meal and consumes it when given, making plate dirty",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": [
{
"details": "Recipe manager exposes list of meal",
"done": false
},
{
"details": "Table picks a meal to request and sinals it visually",
"done": false
},
{
"details": "Table consumes meal making plate diry",
"done": false
},
{
"details": "Table angry if not meal in set time",
"done": false
}
]
},
{
"uuid": "21bc19f1-ee3c-4bbb-ab9a-07ec6123a823",
"title": "Visual indicator Hob",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "d93a31cd-d475-4c5a-87fc-983174b2594f",
"title": "Visual indicator Sink",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "6942c45a-53a4-484f-9885-4f249cb4572b",
"title": "Stations progress bar",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "f8073eb2-8786-47b7-b63f-fa70c3f7115a",
"title": "Game over screen / effect with restart button",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
},
{
"uuid": "55ac73b8-4378-4b58-bf3c-33f64590c804",
"title": "Restart / game reset button",
"description": "",
"category": "bf4ec62e-526e-4027-876f-0b22bd17f79a",
"steps": []
}
],
"layout": {
"columns": [
[
"94333de9-ebf5-4f38-b95b-9477f4bb9dde"
],
[
"211e4050-31cd-4425-a2ba-8ca56b4764cd"
],
[
"fab8a81b-7ca9-4026-96bb-ed66ea58ef2e"
],
[
"0d743057-955a-473a-8123-a3f805505d5d"
]
]
}
}