# valentecaio/metal_warriors architecture

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

- Interactive diagram: https://gitdiagram.com/valentecaio/metal_warriors
- Repository: https://github.com/valentecaio/metal_warriors

## Overview

This repository is a Godot game, Metal Warriors. The tree shows gameplay entities, combat, stage mechanics, and split-screen presentation, but the README only links to the playable game and no source excerpts were provided. The graph therefore identifies these runtime areas without asserting a user-to-result flow or code dependencies that the available evidence cannot establish.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gameplay["Gameplay"]
  node_player["Player pilot<br/>[pilot.gd]"]
  node_playable["Playable base<br/>[playable.gd]"]
  node_robot["Robot base<br/>[robot.gd]"]
  node_robot_variants["Robot variants"]
  node_pilot_scene["Pilot scene<br/>[pilot.tscn]"]
  node_global["Global game state<br/>[global.gd]"]
end

subgraph group_combat["Combat"]
  node_bullet["Bullet behavior<br/>[bullet.gd]"]
  node_bullet_scenes["Projectile scenes"]
end

subgraph group_stage["Stage"]
  node_block["Stage blocks<br/>[block.gd]"]
  node_destructible_walls["Destructible walls"]
  node_elevator["Elevator behavior<br/>[elevator.gd]"]
  node_remote_shield["Remote shield<br/>[remote_shield.gd]"]
  node_stage_scenes["Stage scenes"]
end

subgraph group_presentation["Presentation"]
  node_split_viewports["Split-screen viewports<br/>[viewports.gd]"]
  node_split_camera["Split-screen camera<br/>[camera.gd]"]
  node_voronoi_controller["Voronoi camera"]
  node_voronoi_split["Voronoi split shader"]
end

node_player_actor(("Player"))

click node_player "https://github.com/valentecaio/metal_warriors/blob/main/scripts/pilot.gd"
click node_playable "https://github.com/valentecaio/metal_warriors/blob/main/scripts/abstract/playable.gd"
click node_robot "https://github.com/valentecaio/metal_warriors/blob/main/scripts/abstract/robot.gd"
click node_robot_variants "https://github.com/valentecaio/metal_warriors/tree/main/scripts/robots"
click node_pilot_scene "https://github.com/valentecaio/metal_warriors/blob/main/scenes/pilot.tscn"
click node_global "https://github.com/valentecaio/metal_warriors/blob/main/scripts/global.gd"
click node_bullet "https://github.com/valentecaio/metal_warriors/blob/main/scripts/bullet.gd"
click node_bullet_scenes "https://github.com/valentecaio/metal_warriors/tree/main/scenes/bullets"
click node_block "https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/block.gd"
click node_destructible_walls "https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/destructible_walls.gd"
click node_elevator "https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/elevator.gd"
click node_remote_shield "https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/remote_shield.gd"
click node_stage_scenes "https://github.com/valentecaio/metal_warriors/tree/main/scenes/stage"
click node_split_viewports "https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/viewports.gd"
click node_split_camera "https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/camera.gd"
click node_voronoi_controller "https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/voronoi_camera_controller.gd"
click node_voronoi_split "https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/voronoi_split_screen.gdshader"

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_player,node_playable,node_robot,node_robot_variants,node_pilot_scene,node_global toneBlue
class node_bullet,node_bullet_scenes toneAmber
class node_block,node_destructible_walls,node_elevator,node_remote_shield,node_stage_scenes toneMint
class node_split_viewports,node_split_camera,node_voronoi_controller,node_voronoi_split toneRose
class node_player_actor toneIndigo
```

## Components

### Gameplay

- [Player pilot](https://github.com/valentecaio/metal_warriors/blob/main/scripts/pilot.gd): `scripts/pilot.gd`
- [Playable base](https://github.com/valentecaio/metal_warriors/blob/main/scripts/abstract/playable.gd): `scripts/abstract/playable.gd`
- [Robot base](https://github.com/valentecaio/metal_warriors/blob/main/scripts/abstract/robot.gd): `scripts/abstract/robot.gd`
- [Robot variants](https://github.com/valentecaio/metal_warriors/tree/main/scripts/robots): `scripts/robots`
- [Pilot scene](https://github.com/valentecaio/metal_warriors/blob/main/scenes/pilot.tscn): `scenes/pilot.tscn`
- [Global game state](https://github.com/valentecaio/metal_warriors/blob/main/scripts/global.gd): `scripts/global.gd`

### Combat

- [Bullet behavior](https://github.com/valentecaio/metal_warriors/blob/main/scripts/bullet.gd): `scripts/bullet.gd`
- [Projectile scenes](https://github.com/valentecaio/metal_warriors/tree/main/scenes/bullets): `scenes/bullets`

### Stage

- [Stage blocks](https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/block.gd): `scripts/stage/block.gd`
- [Destructible walls](https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/destructible_walls.gd): `scripts/stage/destructible_walls.gd`
- [Elevator behavior](https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/elevator.gd): `scripts/stage/elevator.gd`
- [Remote shield](https://github.com/valentecaio/metal_warriors/blob/main/scripts/stage/remote_shield.gd): `scripts/stage/remote_shield.gd`
- [Stage scenes](https://github.com/valentecaio/metal_warriors/tree/main/scenes/stage): `scenes/stage`

### Presentation

- [Split-screen viewports](https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/viewports.gd): `scripts/split_screen/viewports.gd`
- [Split-screen camera](https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/camera.gd): `scripts/split_screen/camera.gd`
- [Voronoi camera](https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/voronoi_camera_controller.gd): `scripts/split_screen/voronoi_camera_controller.gd`
- [Voronoi split shader](https://github.com/valentecaio/metal_warriors/blob/main/scripts/split_screen/voronoi_split_screen.gdshader): `scripts/split_screen/voronoi_split_screen.gdshader`

### Other components

- **Player**
