geometry-tower-defense/design/registry/entities.yaml

189 lines
5.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Entity Registry
# Auto-generated from GDD design sessions. Do not edit manually.
# To update: run /design-system for each system, the registry is populated in Phase 5b.
entries:
# ─── Tower Assembly (design/gdd/tower-assembly.md) ───────────────────────────
- name: TowerLevelCount
type: constant
value: 5
unit: levels
source: design/gdd/tower-assembly.md
description: Fixed number of tower level tiers. All tower stat arrays have exactly 5 elements.
- name: MaxParticipantTowerCount
type: constant
value: 4
unit: towers
source: design/gdd/tower-assembly.md
description: Maximum number of towers that can be rostered for combat.
- name: TowerEnduranceRange
type: constant
value: "0100"
unit: percent
source: design/gdd/tower-assembly.md
description: Valid range for component Endurance. 0 means non-functional.
- name: TowerStatScaling
type: formula
variables:
- name: rarityBaseArray
symbol: B
type: "int[5] or float[5]"
description: Per-rarity base values from component stat array
- name: rarity
symbol: R
type: RarityType
description: Component rarity (White=1 to Red=5)
- name: perLevel
symbol: P
type: int or float
description: Per-level increment from data table row
output:
range: "varies by component data table"
description: "statValue[i] = B[Clamp(R-1,0,4)] + P*i, for i in 0..4"
source: design/gdd/tower-assembly.md
- name: TowerRarityResolution
type: formula
variables:
- name: muzzleRarity
symbol: mR
type: RarityType
description: Muzzle component rarity (White=1 to Red=5)
- name: bearingRarity
symbol: bR
type: RarityType
description: Bearing component rarity (White=1 to Red=5)
- name: baseRarity
symbol: baseR
type: RarityType
description: Base component rarity (White=1 to Red=5)
output:
range: "White..Red"
description: "Clamp(Round((mR + bR + baseR) / 3), White, Red)"
source: design/gdd/tower-assembly.md
- name: TagAggregation
type: formula
variables:
- name: muzzleTags
type: "TagType[]"
description: Tags from Muzzle component
- name: bearingTags
type: "TagType[]"
description: Tags from Bearing component
- name: baseTags
type: "TagType[]"
description: Tags from Base component
output:
range: "TagRuntimeData[]"
description: "Merged tags with TotalStack = count of components carrying each tag. Min TotalStack=1."
source: design/gdd/tower-assembly.md
# ─── Node System (design/gdd/node-system.md) ────────────────────────────────
- name: BossBonusGold
type: constant
value: 200
unit: gold
source: design/gdd/node-system.md
description: Flat bonus gold awarded for defeating the Boss node.
- name: TotalNodesPerRun
type: constant
value: 10
unit: nodes
source: design/gdd/node-system.md
description: Fixed number of nodes per run. Node 10 is always BossCombat.
# ─── Shop System (design/gdd/shop.md) ────────────────────────────────
- name: MaxPlayerGold
type: constant
value: 9999
unit: gold
source: design/gdd/shop.md
description: Hard cap on player gold. AddGold silently discards excess above this value.
# ─── Tag System (design/gdd/tag-system.md) ───────────────────────────────
- name: MaxEffectiveStack
type: constant
value: 3
unit: stacks
source: design/gdd/tag-system.md
description: Cap on effective Fire DOT stack count. Clamps TotalStack to prevent runaway burn damage.
- name: FireDOTDamageFormula
type: formula
variables:
- name: BaseBurnDamage
symbol: B
type: float
description: Base burn damage per tick from TagConfig.txt ParamJson
- name: TotalStack
symbol: S
type: int
description: Tag occurrence count (13) on the tower
- name: MaxEffectiveStack
symbol: M
type: int
description: Cap on effective stack; currently 3
- name: SeverityBonus
symbol: sev
type: float
description: From enemy debuff state; 0 if no other modifiers
output:
range: float
description: "FinalBurnDamagePerTick = B × Clamp(S, 1, M) × (1 + sev)"
source: design/gdd/tag-system.md
# ─── Event System (design/gdd/event-system.md) ────────────────────────
- name: EventSelectionSeedFormula
type: formula
variables:
- name: runSeed
symbol: S
type: int
description: Run seed from RunNodeExecutionContext
- name: sequenceIndex
symbol: I
type: int
description: Node sequence index in the run
- name: nodeId
symbol: N
type: int
description: Unique node identifier
output:
range: "int"
description: "seed = (((S * 31) + I) * 31) + N"
source: design/gdd/event-system.md
- name: EventProbabilityRollSeedFormula
type: formula
variables:
- name: runSeed
symbol: S
type: int
description: Run seed
- name: sequenceIndex
symbol: I
type: int
description: Node sequence index
- name: eventId
symbol: E
type: int
description: Event identifier from DREvent
- name: optionIndex
symbol: O
type: int
description: Option index within the event
output:
range: "int"
description: "seed = S + I + E + O + 0 + 17"
source: design/gdd/event-system.md