introduce ccgs

This commit is contained in:
SepComet
2026-04-30 00:09:30 +08:00
parent 2e54acbc85
commit 55506eff9a
87 changed files with 22704 additions and 0 deletions
+155
View File
@@ -0,0 +1,155 @@
# 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: "0–100"
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.
# ─── 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