# xagesx/clawguelike architecture

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

- Interactive diagram: https://gitdiagram.com/xagesx/clawguelike
- Repository: https://github.com/xagesx/clawguelike

## Overview

The project appears to be a Unity claw-machine roguelike, based on its project name and gameplay script and asset names. The likely player loop spans machine control, item interaction, round progression, and shop choices, with a simulated chain and UI supporting play. The tree also shows coin, relic, cheat, and special-item data assets. No README content or source excerpts were supplied, so these roles are inferred from names; call and data-flow relationships cannot be verified and are omitted.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Machine gameplay"]
  node_controller["Controller<br/>[Controller.cs]"]
  node_game_manager["Game manager<br/>[GameManager.cs]"]
  node_magnet["Magnet<br/>[Magnet.cs]"]
  node_chute["Chute drop<br/>[ChuteDrop.cs]"]
end

subgraph group_items["Items and data"]
  node_spawner["Item spawner<br/>[ItemSpawner.cs]"]
  node_pickup["Item pickup<br/>[ItemPickup.cs]"]
  node_item_data["Item data<br/>[ItemData.cs]"]
  node_coin_data["Coin asset<br/>[Coin.asset]"]
  node_special_coins["Special coins"]
end

subgraph group_progression["Rounds and shop"]
  node_rounds["Rounds manager<br/>[RoundsManager.cs]"]
  node_shop["Shop manager<br/>[ShopManager.cs]"]
  node_shop_data["Shop item data<br/>[ShopItemData.cs]"]
  node_cheats["Cheat data<br/>[CheatData.cs]"]
  node_relics["Relic data<br/>[RelicData.cs]"]
end

subgraph group_support["Physics and UI"]
  node_chain_solver["Chain solver<br/>[VerletChain.cs]"]
  node_chain_render["Chain renderer<br/>[ChainRenderer.cs]"]
  node_overlay["Game overlay<br/>[GameOverlay.cs]"]
  node_panels["Panel manager<br/>[PanelManager.cs]"]
  node_pool["Object pool<br/>[ObjectPool.cs]"]
end

node_player(("Player"))

click node_controller "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Controller.cs"
click node_game_manager "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/GameManager.cs"
click node_magnet "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Magnet.cs"
click node_chute "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ChuteDrop.cs"
click node_spawner "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ItemSpawner.cs"
click node_pickup "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ItemPickup.cs"
click node_item_data "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Data/ItemData.cs"
click node_coin_data "https://github.com/xagesx/clawguelike/blob/main/Assets/Data/Coin.asset"
click node_special_coins "https://github.com/xagesx/clawguelike/tree/main/Assets/Data/SpecialCoins"
click node_rounds "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/RoundsManager.cs"
click node_shop "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/ShopManager.cs"
click node_shop_data "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/ShopItemData.cs"
click node_cheats "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/CheatData.cs"
click node_relics "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/RelicData.cs"
click node_chain_solver "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/VerletChain.cs"
click node_chain_render "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ChainRenderer.cs"
click node_overlay "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/GameOverlay.cs"
click node_panels "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/PanelManager.cs"
click node_pool "https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ObjectPool.cs"

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_controller,node_game_manager,node_magnet,node_chute toneBlue
class node_spawner,node_pickup,node_item_data,node_coin_data,node_special_coins toneAmber
class node_rounds,node_shop,node_shop_data,node_cheats,node_relics toneMint
class node_chain_solver,node_chain_render,node_overlay,node_panels,node_pool toneRose
class node_player toneIndigo
```

## Components

### Machine gameplay

- [Controller](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Controller.cs): `Assets/Scripts/Controller.cs`
- [Game manager](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/GameManager.cs): `Assets/Scripts/GameManager.cs`
- [Magnet](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Magnet.cs): `Assets/Scripts/Magnet.cs`
- [Chute drop](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ChuteDrop.cs): `Assets/Scripts/ChuteDrop.cs`

### Items and data

- [Item spawner](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ItemSpawner.cs): `Assets/Scripts/ItemSpawner.cs`
- [Item pickup](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ItemPickup.cs): `Assets/Scripts/ItemPickup.cs`
- [Item data](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Data/ItemData.cs): `Assets/Scripts/Data/ItemData.cs`
- [Coin asset](https://github.com/xagesx/clawguelike/blob/main/Assets/Data/Coin.asset): `Assets/Data/Coin.asset`
- [Special coins](https://github.com/xagesx/clawguelike/tree/main/Assets/Data/SpecialCoins): `Assets/Data/SpecialCoins`

### Rounds and shop

- [Rounds manager](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/RoundsManager.cs): `Assets/Scripts/RoundsManager.cs`
- [Shop manager](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/ShopManager.cs): `Assets/Scripts/Shop/ShopManager.cs`
- [Shop item data](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/ShopItemData.cs): `Assets/Scripts/Shop/ShopItemData.cs`
- [Cheat data](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/CheatData.cs): `Assets/Scripts/Shop/CheatData.cs`
- [Relic data](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/Shop/RelicData.cs): `Assets/Scripts/Shop/RelicData.cs`

### Physics and UI

- [Chain solver](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/VerletChain.cs): `Assets/Scripts/VerletChain.cs`
- [Chain renderer](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ChainRenderer.cs): `Assets/Scripts/ChainRenderer.cs`
- [Game overlay](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/GameOverlay.cs): `Assets/Scripts/GameOverlay.cs`
- [Panel manager](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/PanelManager.cs): `Assets/Scripts/PanelManager.cs`
- [Object pool](https://github.com/xagesx/clawguelike/blob/main/Assets/Scripts/ObjectPool.cs): `Assets/Scripts/ObjectPool.cs`

### Other components

- **Player**
