# hugofalkvall/the-cat-distribution-system architecture

> Architecture diagram of the GitHub repository hugofalkvall/the-cat-distribution-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/hugofalkvall/the-cat-distribution-system
- Repository: https://github.com/hugofalkvall/the-cat-distribution-system

## Overview

This appears to be a Godot game about placing cat buildings to defend an idol through enemy waves, with combat and run-based building/passive rewards. The tree also shows deck-management and run-status UI. No README or source excerpts were provided, so this map identifies product areas from filenames and resources but omits uncertain call and data-flow relationships.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_arena["Arena and Placement"]
  node_arena["Arena<br/>[arena.tscn]"]
  node_grid["Grid and Paths<br/>[grid.gd]"]
  node_pathfinder["Pathfinding<br/>[pathfinder.gd]"]
  node_idol["Idol<br/>[idol.gd]"]
  node_placement["Building Placement<br/>[build_placement.gd]"]
  node_building["Building Runtime<br/>[building.gd]"]
  node_building_def["Building Definitions"]
  node_cat_distribution["Cat Distribution<br/>[cat_distributor.gd]"]
end

subgraph group_combat["Units and Combat"]
  node_combat_unit["Combat Units<br/>[combat_unit.gd]"]
  node_enemy["Enemy Units<br/>[enemy_unit.gd]"]
  node_combat_system["Combat System<br/>[combat_system.gd]"]
  node_attacks["Attack Behaviors<br/>[attack_behavior.gd]"]
  node_effects["Combat Effects"]
end

subgraph group_run["Run Progression"]
  node_run["Run Session<br/>[run.gd]"]
  node_flow["Run Event Flow"]
  node_waves["Wave Progression<br/>[wave_director.gd]"]
  node_spawner["Enemy Spawning<br/>[enemy_spawner.gd]"]
  node_choices["Reward Choices<br/>[choice_director.gd]"]
  node_passives["Passive Modifiers"]
end

subgraph group_ui["Player Interface"]
  node_run_ui["Run Interface<br/>[run_ui.gd]"]
  node_reward_ui["Reward Interface"]
  node_deck_ui["Deck Management<br/>[deck_management.gd]"]
  node_health_ui["Idol Health Display<br/>[idol_health_bar.gd]"]
end

node_player(("Player"))

click node_arena "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/arena.tscn"
click node_grid "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/grid.gd"
click node_pathfinder "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/pathfinder.gd"
click node_idol "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/idol.gd"
click node_placement "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/build_placement.gd"
click node_building "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/building.gd"
click node_building_def "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/building_definition.gd"
click node_cat_distribution "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/cat_distributor.gd"
click node_combat_unit "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/units/combat_unit.gd"
click node_enemy "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/units/enemies/enemy_unit.gd"
click node_combat_system "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/combat_system.gd"
click node_attacks "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/attacks/attack_behavior.gd"
click node_effects "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/effects/attack_effect_definition.gd"
click node_run "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/run.gd"
click node_flow "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/flow/run_flow_director.gd"
click node_waves "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/waves/wave_director.gd"
click node_spawner "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/enemy_spawner.gd"
click node_choices "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/rewards/choice_director.gd"
click node_passives "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/passives/passive_modifiers.gd"
click node_run_ui "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/run_ui/run_ui.gd"
click node_reward_ui "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/reward_choice/reward_choice_overlay.gd"
click node_deck_ui "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/decks/deck_management.gd"
click node_health_ui "https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/health/idol_health_bar.gd"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_arena,node_grid,node_pathfinder,node_idol,node_placement,node_building,node_building_def,node_cat_distribution toneBlue
class node_combat_unit,node_enemy,node_combat_system,node_attacks,node_effects toneAmber
class node_run,node_flow,node_waves,node_spawner,node_choices,node_passives toneMint
class node_run_ui,node_reward_ui,node_deck_ui,node_health_ui toneRose
class node_player toneIndigo
```

## Components

### Arena and Placement

- [Arena](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/arena.tscn): `arena/arena.tscn`
- [Grid and Paths](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/grid.gd): `arena/grid.gd`
- [Pathfinding](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/pathfinder.gd): `arena/pathfinder.gd`
- [Idol](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/arena/idol.gd): `arena/idol.gd`
- [Building Placement](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/build_placement.gd): `buildings/build_placement.gd`
- [Building Runtime](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/building.gd): `buildings/building.gd`
- [Building Definitions](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/building_definition.gd): `buildings/building_definition.gd`
- [Cat Distribution](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/buildings/cat_distributor.gd): `buildings/cat_distributor.gd`

### Units and Combat

- [Combat Units](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/units/combat_unit.gd): `units/combat_unit.gd`
- [Enemy Units](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/units/enemies/enemy_unit.gd): `units/enemies/enemy_unit.gd`
- [Combat System](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/combat_system.gd): `combat/combat_system.gd`
- [Attack Behaviors](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/attacks/attack_behavior.gd): `combat/attacks/attack_behavior.gd`
- [Combat Effects](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/combat/effects/attack_effect_definition.gd): `combat/effects/attack_effect_definition.gd`

### Run Progression

- [Run Session](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/run.gd): `run/run.gd`
- [Run Event Flow](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/flow/run_flow_director.gd): `run/flow/run_flow_director.gd`
- [Wave Progression](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/waves/wave_director.gd): `run/waves/wave_director.gd`
- [Enemy Spawning](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/enemy_spawner.gd): `run/enemy_spawner.gd`
- [Reward Choices](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/rewards/choice_director.gd): `run/rewards/choice_director.gd`
- [Passive Modifiers](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/run/passives/passive_modifiers.gd): `run/passives/passive_modifiers.gd`

### Player Interface

- [Run Interface](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/run_ui/run_ui.gd): `ui/run_ui/run_ui.gd`
- [Reward Interface](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/reward_choice/reward_choice_overlay.gd): `ui/reward_choice/reward_choice_overlay.gd`
- [Deck Management](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/decks/deck_management.gd): `ui/decks/deck_management.gd`
- [Idol Health Display](https://github.com/hugofalkvall/the-cat-distribution-system/blob/main/ui/health/idol_health_bar.gd): `ui/health/idol_health_bar.gd`

### Other components

- **Player**
