diff --git a/docs/concept.md b/docs/concept.md index 0d8a7d3..3aa8f45 100644 --- a/docs/concept.md +++ b/docs/concept.md @@ -21,8 +21,10 @@ A single-player asymmetric game inspired by DOTA's wave/tower structure, combine ## Factory & Belts - Factory buildings are placed from a queue and constructed one at a time, each taking some time to complete. -- Materials are transported between buildings manually using belts. - The crafting/production tree is defined in a config file so it can be extended without code changes. +- Materials are transported between buildings using belts (straight, curved) and splitters. +- Buildings accept any material delivered by belts feeding into them; there are no labeled input ports. Each building has one fixed output port. +- A building's input buffer holds up to twice the amount needed for one production cycle of the selected recipe. ## Resources & Building Blocks @@ -33,6 +35,19 @@ Two sources feed the same production tree: **Building blocks** are the only globally shared resource. An assembler recipe produces them from materials; they are transported via belts into the HQ, which adds them to the global stock. Building blocks are spent to place factory buildings and to unlock additional asteroid columns. +## Buildings + +| Building | Size | Description | +|---|---|---| +| **HQ** | 4×3 | Pre-placed. Accepts building blocks via belt and adds them to the global stock. | +| **Miner** | 2×2 | Player selects which ore type to extract. Ore never depletes. | +| **Smelter** | 2×2 | Converts ore or scrap into basic materials. No recipe selection needed. | +| **Assembler** | 3×3 | Player selects a recipe. Produces building blocks or intermediate/advanced products. | +| **Reprocessing Plant** | 3×3 | Converts scrap into higher-level products with fixed probabilities per product type. | +| **Shipyard** | 4×2 | Player selects a blueprint. Produces that ship type when required materials are available. | +| **Belt** | 1×1 | Transports materials. Comes in straight and curved variants. | +| **Splitter** | 1×1 | Splits a belt's flow into two outputs. | + ## Ships & Shipyards - Shipyards are built at the asteroid's right edge. @@ -45,6 +60,7 @@ Two sources feed the same production tree: ## Enemy Waves & Difficulty Scaling +- Waves consist of a single enemy ship type whose stats scale with difficulty. - Waves spawn over several seconds; a gap follows before the next wave begins spawning. The previous wave may still be approaching or fighting during the gap. - Difficulty scales multiplicatively from two sources: - **Time scaling** — enemy strength increases gradually over elapsed time. @@ -58,7 +74,7 @@ Two sources feed the same production tree: ## Starting Conditions & Game Over -- The player starts with the HQ pre-placed and a stock of building blocks; no other buildings are pre-placed. +- The player starts with the HQ and player defence stations pre-placed and a stock of building blocks; no other buildings are pre-placed. - There is a grace period before the first wave to allow initial setup. - If all ships and player defence stations are destroyed, enemies attack the HQ. The game is lost when the HQ is destroyed. Factory buildings are never targeted.