refactor
This commit is contained in:
58
plan.md
58
plan.md
@@ -22,12 +22,12 @@ scenes/ — Darstellung + Input
|
||||
healthbar_status.gd — Target-Border + Aggro-Farbwechsel
|
||||
healthbar_effects.gd — Effekt-Icons auf Healthbar
|
||||
player/ — Spieler + player_stats
|
||||
role/ — Rollenwechsel + Ability/AbilitySet-Klassen
|
||||
damage/ — set.tres + abilities/
|
||||
tank/ — set.tres + abilities/
|
||||
healer/ — set.tres + abilities/
|
||||
role/ — Rollenwechsel + Ability/AbilitySet-Klassen
|
||||
damage/ — set.tres + abilities/
|
||||
tank/ — set.tres + abilities/
|
||||
healer/ — set.tres + abilities/
|
||||
enemy/ — Gegner + enemy_stats
|
||||
boss/ — Boss + boss_stats
|
||||
boss/ — Boss + boss_stats
|
||||
portal/ — Portal + Gate + portal_stats
|
||||
dungeon/ — Dungeon + dungeon_manager
|
||||
hud/ — HUD (4 Skripte: vitals, respawn, abilities, effects)
|
||||
@@ -49,7 +49,7 @@ autoloads/ — Globaler Zustand
|
||||
- Taverne
|
||||
- Player
|
||||
- Portale (dynamisch)
|
||||
- Gegner
|
||||
- Gegner
|
||||
- HUD
|
||||
|
||||
## Architektur
|
||||
@@ -254,14 +254,14 @@ autoloads/ — Globaler Zustand
|
||||
- world.tscn — Hauptszene (100x100m)
|
||||
- Systems (alle Systeme als Child-Nodes, siehe Systeme-Sektion)
|
||||
- NavigationRegion3D
|
||||
- Boden (MeshInstance3D, 100x100m PlaneMesh)
|
||||
- Boden (MeshInstance3D, 100x100m PlaneMesh)
|
||||
- Kollision (StaticBody3D, WorldBoundaryShape3D)
|
||||
- Licht (DirectionalLight3D, 45°, Schatten)
|
||||
- Taverne (StaticBody3D, BoxMesh, Mitte der Karte)
|
||||
- Gruppe (tavern)
|
||||
- HitArea (Area3D) — nimmt Invasions-Schaden entgegen
|
||||
- Healthbar (Sprite3D + SubViewport, groß, nur Health — kein Schild)
|
||||
- Registriert bei Stats mit TavernStats Resource
|
||||
- Gruppe (tavern)
|
||||
- HitArea (Area3D) — nimmt Invasions-Schaden entgegen
|
||||
- Healthbar (Sprite3D + SubViewport, groß, nur Health — kein Schild)
|
||||
- Registriert bei Stats mit TavernStats Resource
|
||||
- Spieler (Instanz von player.tscn)
|
||||
- HUD (Instanz von hud.tscn)
|
||||
- PortalSpawner (Node, portal_spawner.gd)
|
||||
@@ -272,7 +272,7 @@ autoloads/ — Globaler Zustand
|
||||
- Kollision (CapsuleShape3D, 1.8m x 0.3m)
|
||||
- Mesh (CapsuleMesh)
|
||||
- CameraPivot (Node3D, camera.gd)
|
||||
- Camera3D
|
||||
- Camera3D
|
||||
- Movement (Node, movement.gd) — WASD + Springen, liest Werte von Stats
|
||||
- Ability (Node, ability.gd) — Input-Handler 1/2/3/4, emittiert ability_use_requested
|
||||
- Role (Node, role/role.gd) — Rollenwechsel ALT+1/2/3, emittiert role_changed (auch bei _ready)
|
||||
@@ -291,25 +291,25 @@ autoloads/ — Globaler Zustand
|
||||
- NavigationAgent3D
|
||||
- Bewegung wird vom AI-System (ai_system.gd) gesteuert — Enemy hat keinen eigenen Movement-Node
|
||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd) — Health-Anzeige
|
||||
- HealthbarShield (Node, healthbar_shield.gd) — Shield-Anzeige
|
||||
- HealthbarStatus (Node, healthbar_status.gd) — Target-Border + Aggro-Farbe
|
||||
- HealthbarEffects (Node, healthbar_effects.gd) — Effekt-Icons
|
||||
- HealthbarShield (Node, healthbar_shield.gd) — Shield-Anzeige
|
||||
- HealthbarStatus (Node, healthbar_status.gd) — Target-Border + Aggro-Farbe
|
||||
- HealthbarEffects (Node, healthbar_effects.gd) — Effekt-Icons
|
||||
- init.gd — Registriert bei Stats mit EnemyStats Resource, Detection-Area Signal
|
||||
- Aggro-Regeln (Werte in AggroConfig Resource):
|
||||
- Aufbau:
|
||||
- Schaden = Aggro (1:1), Tank 2x Multiplikator
|
||||
- Heilung = 0.5x Aggro auf alle Gegner die Heiler kennen
|
||||
- Aggro-Spread: 50% des Aggro an Gegner im alert_radius (10m)
|
||||
- Detection-Area (10m): +1 Aggro, Alert an Nachbarn im alert_radius
|
||||
- Schaden = Aggro (1:1), Tank 2x Multiplikator
|
||||
- Heilung = 0.5x Aggro auf alle Gegner die Heiler kennen
|
||||
- Aggro-Spread: 50% des Aggro an Gegner im alert_radius (10m)
|
||||
- Detection-Area (10m): +1 Aggro, Alert an Nachbarn im alert_radius
|
||||
- Kampfstatus:
|
||||
- Spieler in DetectionArea → immer im Kampf (kein Decay)
|
||||
- Spieler verlässt DetectionArea → 5s Combat-Timeout, dann Decay
|
||||
- Schaden verursachen setzt Combat-Timer zurück
|
||||
- Spieler in DetectionArea → immer im Kampf (kein Decay)
|
||||
- Spieler verlässt DetectionArea → 5s Combat-Timeout, dann Decay
|
||||
- Schaden verursachen setzt Combat-Timer zurück
|
||||
- Abbau (nach Combat-Timeout):
|
||||
- Basis: -aggro_decay/s (default 1.0)
|
||||
- Exponentieller Decay basierend auf Zeit seit Kampfende (1%·2^sekunden)
|
||||
- Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert
|
||||
- Bei Spieler-Tod → Aggro auf 0
|
||||
- Basis: -aggro_decay/s (default 1.0)
|
||||
- Exponentieller Decay basierend auf Zeit seit Kampfende (1%·2^sekunden)
|
||||
- Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert
|
||||
- Bei Spieler-Tod → Aggro auf 0
|
||||
|
||||
## Boss (enemy/)
|
||||
- boss.tscn — wie enemy.tscn aber größer (Mesh lila, 1.5x)
|
||||
@@ -324,9 +324,9 @@ autoloads/ — Globaler Zustand
|
||||
- HitArea (Area3D)
|
||||
- DetectionArea (Area3D, Auto-Targeting bei Betreten)
|
||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
||||
- HealthbarShield (Node, healthbar_shield.gd)
|
||||
- HealthbarStatus (Node, healthbar_status.gd)
|
||||
- HealthbarEffects (Node, healthbar_effects.gd)
|
||||
- HealthbarShield (Node, healthbar_shield.gd)
|
||||
- HealthbarStatus (Node, healthbar_status.gd)
|
||||
- HealthbarEffects (Node, healthbar_effects.gd)
|
||||
- init.gd — Registriert bei Stats mit PortalStats Resource
|
||||
- Spawnt Gegner bei HP-Schwellen (→ SpawnSystem)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user