# arturofbc/fantasyshootemup architecture

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

- Interactive diagram: https://gitdiagram.com/arturofbc/fantasyshootemup
- Repository: https://github.com/arturofbc/fantasyshootemup

## Overview

This repository appears to be a Godot action game, with player selection and combat supported by enemies, levels, HUD, and score-related content. The tree also shows a global data script and a SignalBus addon as shared runtime infrastructure. The README is empty and the only sampled source is a build-time icon generator, so runtime wiring and the exact player-to-result flow cannot be verified; uncertain connections are omitted.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_presentation["Game interface"]
  node_title["Title screen"]
  node_selection["Player selection"]
  node_hud["Game HUD"]
  node_score["Score"]
end

subgraph group_gameplay["Gameplay"]
  node_player["Player"]
  node_weapons["Weapons"]
  node_projectiles["Projectiles"]
  node_powerups["Power-ups"]
  node_vfx["Effects"]
end

subgraph group_world["World and enemies"]
  node_enemy["Enemies"]
  node_behaviours["Enemy behaviours"]
  node_spawner["Enemy spawner"]
  node_levels["Level content"]
  node_levelmanager["Level manager"]
end

subgraph group_shared["Shared systems"]
  node_globaldata["Global data<br/>[global_data.gd]"]
  node_signalbus["Signal bus<br/>[signal_bus.gd]"]
  node_subscriber["Signal subscriber"]
end

node_playeractor(("Player"))

click node_player "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/player"
click node_weapons "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/player/weapons"
click node_projectiles "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/weapons/projectiles"
click node_powerups "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/entities/power_ups"
click node_vfx "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/entities/vfx"
click node_enemy "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy"
click node_behaviours "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy/behaviours"
click node_spawner "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy/spawner"
click node_levels "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/levels"
click node_levelmanager "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/levels/manager"
click node_title "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/screens/title"
click node_selection "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/screens/player_select"
click node_hud "https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/game_hud"
click node_score "https://github.com/arturofbc/fantasyshootemup/tree/master/score"
click node_globaldata "https://github.com/arturofbc/fantasyshootemup/blob/master/globals/global_data.gd"
click node_signalbus "https://github.com/arturofbc/fantasyshootemup/blob/master/addons/SignalBus/scripts/signal_bus.gd"
click node_subscriber "https://github.com/arturofbc/fantasyshootemup/blob/master/addons/SignalBus/scripts/signal_bus_subscriber.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_title,node_selection,node_hud,node_score toneBlue
class node_player,node_weapons,node_projectiles,node_powerups,node_vfx toneAmber
class node_enemy,node_behaviours,node_spawner,node_levels,node_levelmanager toneMint
class node_globaldata,node_signalbus,node_subscriber toneRose
class node_playeractor toneIndigo
```

## Components

### Game interface

- [Title screen](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/screens/title): `scenes/UI/screens/title`
- [Player selection](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/screens/player_select): `scenes/UI/screens/player_select`
- [Game HUD](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/UI/game_hud): `scenes/UI/game_hud`
- [Score](https://github.com/arturofbc/fantasyshootemup/tree/master/score): `score`

### Gameplay

- [Player](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/player): `scenes/player`
- [Weapons](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/player/weapons): `scenes/player/weapons`
- [Projectiles](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/weapons/projectiles): `scenes/weapons/projectiles`
- [Power-ups](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/entities/power_ups): `scenes/entities/power_ups`
- [Effects](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/entities/vfx): `scenes/entities/vfx`

### World and enemies

- [Enemies](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy): `scenes/enemy`
- [Enemy behaviours](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy/behaviours): `scenes/enemy/behaviours`
- [Enemy spawner](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/enemy/spawner): `scenes/enemy/spawner`
- [Level content](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/levels): `scenes/levels`
- [Level manager](https://github.com/arturofbc/fantasyshootemup/tree/master/scenes/levels/manager): `scenes/levels/manager`

### Shared systems

- [Global data](https://github.com/arturofbc/fantasyshootemup/blob/master/globals/global_data.gd): `globals/global_data.gd`
- [Signal bus](https://github.com/arturofbc/fantasyshootemup/blob/master/addons/SignalBus/scripts/signal_bus.gd): `addons/SignalBus/scripts/signal_bus.gd`
- [Signal subscriber](https://github.com/arturofbc/fantasyshootemup/blob/master/addons/SignalBus/scripts/signal_bus_subscriber.gd): `addons/SignalBus/scripts/signal_bus_subscriber.gd`

### Other components

- **Player**
