# Gnome’s Bounty - Architecture Documentation ## Project Structure ``` Assets/ ├── Scripts/ │ ├── Controllers/ │ │ ├── PlayerController.cs │ │ ├── TrollController.cs │ │ └── GameManager.cs │ ├── Managers/ │ │ ├── InputManager.cs │ │ ├── AudioManager.cs │ │ └── UIManager.cs │ │ └── GameManager.cs │ ├── Mechanics/ │ │ ├── AxeThrower.cs │ │ ├── BreakableBlock.cs │ │ └── TreasureCollector.cs │ ├── UI/ │ │ ├── HUD.cs │ │ ├── KeyUI.cs │ │ └── ExitDoorUI.cs │ └── Utilities/ │ ├── TrollSpawner.cs │ └── LevelManager.cs ├── Prefabs/ │ ├── Player.prefab │ ├── Troll.prefab │ ├── Axe.prefab │ ├── BreakableBlock.prefab │ ├── Treasure.prefab │ ├── Chest.prefab │ ├── ExitDoor.prefab │ └── TrollCave.prefab ├── Scenes/ │ ├── MainScene.unity │ └── Level1.unity ├── Resources/ │ ├── Sprites/ │ │ ├── Player.png │ │ ├── Troll.png │ │ ├── Axe.png │ │ ├── BreakableBlock.png │ │ ├── Treasure.png │ │ ├── Chest.png │ │ └── ExitDoor.png │ ├── Audio/ │ │ ├── Footsteps.mp3 │ │ ├── StunSound.wav │ │ ├── BlockBreak.mp3 │ │ ├── KeyCollect.mp3 │ │ └── LevelComplete.mp3 ├── Editor/ │ ├── CustomEditorScripts/ │ │ ├── PlayerControllerEditor.cs │ │ └── TrollControllerEditor.cs ├── Documentation/ │ └── Architecture.md └── README.md ``` ## Key Components and Systems ### Player Controller - **Responsibilities**: Handles player movement (left/right, climbing, jumping). - **Interactions**: Interacts with the magical throwing axe. ### Troll Controller - **Responsibilities**: Manages troll behavior (patrol, chase, stun recovery). - **Spawning**: Spawns trolls from the troll cave. ### GameManager - **Responsibilities**: Manages game state (level progression, score, lives). ### InputManager - **Responsibilities**: Handles player input for movement and axe throwing. ### AudioManager - **Responsibilities**: Plays sound effects and background music. ### UIManager - **Responsibilities**: Manages the heads-up display (HUD) and UI elements like keys and exit doors. ### AxeThrower - **Responsibilities**: Handles the mechanics of throwing the magical axe. - **Stunning**: Stuns trolls and breaks blocks. ### BreakableBlock - **Responsibilities**: Manages breakable blocks, including their destruction and sound effects. ### TreasureCollector - **Responsibilities**: Tracks treasure collected by the player. ### TrollSpawner - **Responsibilities**: Spawns trolls at timed intervals from the troll cave. ### LevelManager - **Responsibilities**: Manages level transitions and loading.