update
This commit is contained in:
50
CLAUDE.md
50
CLAUDE.md
@@ -12,37 +12,41 @@ Der User kommuniziert auf Deutsch. Code und Variablen auf Englisch. Kommentare n
|
||||
- Keine Debug-Prints im finalen Code (nur temporär zum Testen)
|
||||
|
||||
## Architektur
|
||||
- **Systeme berechnen und entscheiden**, Szenen rendern und senden/empfangen
|
||||
- **Event-Flow**: Input → Intention-Event → System → Ergebnis-Event → Node
|
||||
- **Systeme** sind Scene-Nodes (nicht Autoloads), gefunden über Gruppen
|
||||
- **Zwischen Szenen**: Kommunikation über EventBus (Autoload). Szenen kennen sich nicht.
|
||||
- **Innerhalb einer Szene**: Modulare Skripte als Child-Nodes, Zugriff auf Geschwister-Nodes erlaubt.
|
||||
- **Autoloads**: EventBus (Signals), GameState (Spielerzustand zwischen Szenenwechseln)
|
||||
- **Gruppen**: "player", "enemies", "portals", "boss"
|
||||
- **Resources** für statische Konfiguration (Stats, Abilities), **Nodes** für laufenden Zustand
|
||||
- **Stats (Model)**: Autoload, zentrale Datenhaltung aller Entity-Attribute. Basiswerte aus Resources.
|
||||
- **Systeme (Controller)**: Scene-Nodes in world.tscn/dungeon.tscn, lesen/schreiben über Stats.
|
||||
- **Szenen (Views)**: Rendern, Input senden, Events empfangen. Kein Gameplay-State.
|
||||
- **EventBus (Signals)**: Autoload, Kommunikation zwischen Szenen und Systemen.
|
||||
- **Event-Flow**: Szene → Input → EventBus → System → Stats → EventBus → Szene
|
||||
- **Zwischen Szenen**: Kommunikation über EventBus. Szenen kennen sich nicht.
|
||||
- **Innerhalb einer Szene**: Zugriff auf Geschwister-Nodes erlaubt.
|
||||
- **Autoloads**: EventBus (Signals), Stats (Entity-Daten), GameState (Szene + Position)
|
||||
- **Gruppen**: "player", "enemies", "portals", "boss", "cooldown_system"
|
||||
- **Resources** für Basiswerte (Stats, Abilities), **Stats Autoload** für Laufzeitwerte
|
||||
|
||||
## Projektstruktur
|
||||
- `scenes/` — .tscn Dateien
|
||||
- `world.tscn` — Hauptszene (100x100m, Taverne in Mitte)
|
||||
- `world.tscn` — Hauptszene (100x100m, Taverne, 10 Systeme)
|
||||
- `player/player.tscn` — Spieler
|
||||
- `enemy/enemy.tscn` — Gegner
|
||||
- `enemy/boss.tscn` — Boss (eigene Szene, erbt von Enemy)
|
||||
- `portal/portal.tscn` — Portal (Gegner-Spawner)
|
||||
- `portal/gate.tscn` — Gate (Teleporter, konfigurierbar: Dungeon-Eingang oder Exit)
|
||||
- `dungeon/dungeon.tscn` — Dungeon (15x90m Schlauch, 4 Gegnergruppen + Boss)
|
||||
- `enemy/boss.tscn` — Boss
|
||||
- `portal/portal.tscn` — Portal
|
||||
- `portal/gate.tscn` — Gate (Teleporter)
|
||||
- `dungeon/dungeon.tscn` — Dungeon (15x90m, 10 Systeme)
|
||||
- `hud/hud.tscn` — HUD
|
||||
- `scripts/systems/` — Zentrale Systeme (health, shield, respawn, ability, cooldown, damage, buff, aggro, enemy_ai, spawn)
|
||||
- `scripts/systems/` — 10 Systeme (health, shield, damage, ability, cooldown, aggro, enemy_ai, respawn, spawn, buff)
|
||||
- `scripts/player/` — Spieler-Skripte (player, camera, movement, combat, targeting, role, hud)
|
||||
- `scripts/enemy/` — Gegner-Skripte (enemy, enemy_movement, boss)
|
||||
- `scripts/portal/` — Portal + Gate (portal, gate)
|
||||
- `scripts/dungeon/` — Dungeon-Logik (dungeon_manager)
|
||||
- `scripts/components/` — Wiederverwendbare Komponenten (health, shield, healthbar)
|
||||
- `scripts/abilities/` — Ability-System (ability, ability_set)
|
||||
- `scripts/resources/` — Resource-Klassen (entity_stats)
|
||||
- `scripts/components/` — Healthbar (healthbar)
|
||||
- `scripts/abilities/` — Ability-Daten (ability, ability_set)
|
||||
- `scripts/resources/` — Resource-Klassen (base_stats, player_stats, enemy_stats, boss_stats, portal_stats)
|
||||
- `scripts/event_bus.gd` — Globale Signals
|
||||
- `scripts/game_state.gd` — Spielerzustand zwischen Szenenwechseln
|
||||
- `scripts/stats.gd` — Zentrale Entity-Datenhaltung
|
||||
- `scripts/game_state.gd` — Szene + Position zwischen Szenenwechseln
|
||||
- `scripts/world/portal_spawner.gd` — Portal-Spawning
|
||||
- `resources/stats/` — Stats .tres (player_stats, enemy_stats, portal_stats, boss_stats)
|
||||
- `resources/abilities/` — Ability .tres pro Rolle (single_attack, tank_single, healer_single, etc.)
|
||||
- `resources/abilities/` — Ability .tres pro Rolle
|
||||
- `resources/ability_sets/` — AbilitySet .tres pro Rolle (tank_set, damage_set, healer_set)
|
||||
|
||||
## Planungsdokument
|
||||
@@ -81,11 +85,11 @@ Unter `~/Documents/2026/projekte/mmo/infosammlung/` liegen die originalen Design
|
||||
- Heiler: Heilt statt schadet (Single, AOE, Ult), Heal-Passive, AOE macht Schaden
|
||||
|
||||
## Szenenwechsel
|
||||
- GameState Autoload speichert Spielerzustand (HP, Shield, Rolle) zwischen Szenen
|
||||
- Stats Autoload cached Spieler-Werte automatisch bei Szenenwechsel
|
||||
- GameState speichert Rolle + Position
|
||||
- Gate (Eingang): save_player → Dungeon laden
|
||||
- Gate (Exit): save_player, returning_from_dungeon → Welt laden, Spieler bei Gate-Position
|
||||
- Boss-Tod: dungeon_cleared → Welt laden, Spieler bei Taverne, Gates weg
|
||||
- PortalSpawner stellt Gate wieder her wenn portal_position gesetzt und Boss noch lebt
|
||||
- Gate (Exit): returning_from_dungeon → Welt laden, Spieler bei Gate-Position
|
||||
- Boss-Tod: dungeon_cleared → Welt laden, Cache geleert, Spieler bei Taverne mit vollen HP
|
||||
|
||||
## Workflow mit dem User
|
||||
- **plan.md ist zentral** — User will Änderungen zuerst in plan.md dokumentiert haben, dann implementieren
|
||||
|
||||
Reference in New Issue
Block a user