How parsamohammadidev/terraguard works
TerraGuard is a JavaFX top-down defense game. Players choose a map and difficulty, then defend it by placing towers against enemy waves; the game tracks coins, collisions, levels, and defeat. The graph separates the documented player-facing flow from the runtime engine, wave handling, and game-domain components. The README documents maps, defender variety, and difficulty control; sampled engine and manager sources show several runtime calls. Other feature links are omitted where source excerpts do not establish their wiring.
Main entry points: TerraGuardGameEngine.java Game engine · SimpleEnemyManager.java Enemy waves · scenes Scenes · SimpleDifficultyManager.java Difficulty manager
Components 21
App experience
- Scenes
src/main/java/ir/ac/kntu/services/app/scenes - Scene manager
src/main/java/ir/ac/kntu/services/app/scenes/managers/SimpleSceneManager.java - Prompts
src/main/java/ir/ac/kntu/services/app/prompts - Prompt manager
src/main/java/ir/ac/kntu/services/app/prompts/managers/SimplePromptManager.java - Map selection data
src/main/java/ir/ac/kntu/services/app/database/HardCodedGameDataManager.java
Game runtime
- Game engine
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Enemy waves
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleEnemyManager.java - Difficulty manager
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleDifficultyManager.java - Collision manager
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleCollisionManager.java - Collision handler
src/main/java/ir/ac/kntu/services/game/core/managers/strategies/SimpleCollisionHandler.java - Map renderer
src/main/java/ir/ac/kntu/services/game/components/maps/renderers/MapRenderer.java - Enemy renderer
src/main/java/ir/ac/kntu/services/game/core/renderers/EnemyRenderer.java
Game domain
- Maps and terrain
src/main/java/ir/ac/kntu/services/game/components/maps - Enemies
src/main/java/ir/ac/kntu/services/game/components/enemies - Defenders
src/main/java/ir/ac/kntu/services/game/components/defenders - Bullets
src/main/java/ir/ac/kntu/services/game/components/bullets
Progress and economy
- Coin wallet
src/main/java/ir/ac/kntu/services/game/components/wallets - Coin generation
src/main/java/ir/ac/kntu/services/game/components/wallets/generators/AutoCoinGenerator.java - Tower market
src/main/java/ir/ac/kntu/services/game/core/markets/TerraGuardMarket.java - Difficulty and levels
src/main/java/ir/ac/kntu/services/game/core/difficulties
Other components
- Player
Connections 22
- Player → Scenes: navigates
README.md - Scenes → Map selection data: selects maps
README.md - Scenes → Game engine: starts defense
README.md - Game engine → Enemy waves: runs waves
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Coin generation: starts generation
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Map renderer: renders map
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Enemy renderer: renders enemies
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Difficulty manager: sets engine
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Coin wallet: resets wallet
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Scene manager: shows defeat
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Bullets: resets bullets
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Game engine → Defenders: pauses towers
src/main/java/ir/ac/kntu/services/game/core/TerraGuardGameEngine.java - Enemy waves → Enemies: creates soldiers
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleEnemyManager.java - Enemy waves → Enemy renderer: adds enemies
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleEnemyManager.java - Enemy waves → Game engine: reports outcomes
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleEnemyManager.java - Collision manager → Collision handler: dispatches collisions
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleCollisionManager.java - Difficulty manager → Difficulty and levels: manages levels
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleDifficultyManager.java - Difficulty manager → Scene manager: shows level-up
src/main/java/ir/ac/kntu/services/game/core/managers/SimpleDifficultyManager.java - Scene manager → Prompts: routes prompts
src/main/java/ir/ac/kntu/services/app/scenes/managers/SimpleSceneManager.java - Prompt manager → Prompts: creates and shows
src/main/java/ir/ac/kntu/services/app/prompts/managers/SimplePromptManager.java - Tower market → Maps and terrain: reads map
src/main/java/ir/ac/kntu/services/game/core/markets/TerraGuardMarket.java - Tower market → Coin wallet: mediates purchases
src/main/java/ir/ac/kntu/services/game/core/markets/TerraGuardMarket.java