update
This commit is contained in:
84
plan.md
84
plan.md
@@ -103,42 +103,14 @@
|
|||||||
- player.gd — Kern, verbindet Komponenten, Sichtbarkeit bei Tod/Respawn
|
- player.gd — Kern, verbindet Komponenten, Sichtbarkeit bei Tod/Respawn
|
||||||
- camera.gd — LMB freies Umsehen, RMB Kamera + Laufrichtung anpassen
|
- camera.gd — LMB freies Umsehen, RMB Kamera + Laufrichtung anpassen
|
||||||
- movement.gd — Bewegung (WASD relativ zur Kamera), Springen, Schwerkraft
|
- movement.gd — Bewegung (WASD relativ zur Kamera), Springen, Schwerkraft
|
||||||
|
- Stats: player_stats.tres (→ Resources)
|
||||||
- player_stats.tres — health=100, regen=1/s, shield=50, delay=3s, regen_time=5s
|
|
||||||
|
|
||||||
## Kampf
|
## Kampf
|
||||||
- combat.gd — Input-Handler: emittiert ability_use_requested, auto_attack_tick (Logik → CombatSystem)
|
- combat.gd — Input-Handler: emittiert ability_use_requested, auto_attack_tick (Logik → CombatSystem)
|
||||||
- targeting.gd — Raycast/Klick/TAB: emittiert target_requested, speichert Ziel aus Events (Logik → AggroSystem)
|
- targeting.gd — Raycast/Klick/TAB: emittiert target_requested, speichert Ziel aus Events (Logik → AggroSystem)
|
||||||
- role.gd — Rollenwechsel ALT+1 bis ALT+3 (Tank/Schaden/Heiler), tauscht AbilitySet
|
- role.gd — Rollenwechsel ALT+1 bis ALT+3 (Tank/Schaden/Heiler), tauscht AbilitySet
|
||||||
|
|
||||||
## Abilities
|
|
||||||
- ability.gd (Resource) — Reine Daten: name, type, damage, range, cooldown, uses_gcd (execute → CombatSystem)
|
|
||||||
- ability_set.gd (Resource) — Set von 5 Abilities pro Rolle
|
|
||||||
- ability_modifier.gd (Resource) — Verändert Ability (Element, Beruf, Prestige)
|
|
||||||
- Typen: Single, AOE, Utility, Ult, Passive
|
|
||||||
- Auto-Attack: Automatisch bei anvisiertem Gegner im Kampf
|
- Auto-Attack: Automatisch bei anvisiertem Gegner im Kampf
|
||||||
- Schadens-Klasse:
|
- Jede Rolle hat ein eigenes AbilitySet (→ Resources)
|
||||||
- AA: 10 Schaden, 10m
|
|
||||||
- 1 Single: 30 Schaden, 20m Range, 2s CD, GCD
|
|
||||||
- 2 AOE: 20 Schaden, 5m Range, 3s CD, GCD
|
|
||||||
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
|
||||||
- 4 Ult: 5x Single (50 Schaden) + 2x AOE 3m (20 Schaden), 20m Range, 15s CD, GCD
|
|
||||||
- 5 Passive: 50% mehr Schaden Aura, 50m (permanent aktiv, kein CD)
|
|
||||||
- Tank-Klasse:
|
|
||||||
- AA: 5 Schaden, 3m
|
|
||||||
- 1 Single: 15 Schaden, 3m Range, 2s CD, GCD
|
|
||||||
- 2 AOE: 10 Schaden, 10m Range, 3s CD, GCD
|
|
||||||
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
|
||||||
- 4 Ult: Schild 300%, 20s CD, GCD
|
|
||||||
- 5 Passive: 50% mehr Schild Aura, 50m (permanent aktiv, kein CD)
|
|
||||||
- Heiler-Klasse: Kein Autotarget, Anvisierter Spieler wird geheilt, ist keiner anvisiert dann Selfheal
|
|
||||||
- AA: 1 Heilung, 20m
|
|
||||||
- 1 Single: 15 Heilung, 20m Range, 2s CD, GCD
|
|
||||||
- 2 AOE: 10 Heilung, 20m Range, 3s CD, GCD
|
|
||||||
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
|
||||||
- 4 Ult: 25 Heal Single + 10 AOE Heal 3m radius, 20m Range, 15s CD, GCD
|
|
||||||
- 5 Passive: 50% mehr Heal Aura, 50m (permanent aktiv, kein CD)
|
|
||||||
- Jede Rolle hat ein eigenes AbilitySet
|
|
||||||
- Beim Rollenwechsel wird das AbilitySet getauscht
|
- Beim Rollenwechsel wird das AbilitySet getauscht
|
||||||
- Elemente und Modifikatoren verändern Abilities nachträglich
|
- Elemente und Modifikatoren verändern Abilities nachträglich
|
||||||
|
|
||||||
@@ -162,7 +134,7 @@
|
|||||||
- ShieldBar (ProgressBar, blau)
|
- ShieldBar (ProgressBar, blau)
|
||||||
- enemy.gd — Daten-Holder (state, target, spawn_position, portal), Detection-Area → enemy_detected, Gruppe "enemies" (State Machine → EnemyAISystem)
|
- enemy.gd — Daten-Holder (state, target, spawn_position, portal), Detection-Area → enemy_detected, Gruppe "enemies" (State Machine → EnemyAISystem)
|
||||||
- enemy_movement.gd — Empfängt Bewegungsbefehle, führt NavAgent + move_and_slide aus (Entscheidungen → EnemyAISystem)
|
- enemy_movement.gd — Empfängt Bewegungsbefehle, führt NavAgent + move_and_slide aus (Entscheidungen → EnemyAISystem)
|
||||||
- enemy_stats.tres — health=100, regen=0, shield=50, delay=3s, regen_time=5s
|
- Stats: enemy_stats.tres (→ Resources)
|
||||||
- Aggro-Regeln:
|
- Aggro-Regeln:
|
||||||
- Schaden = Aggro (1:1)
|
- Schaden = Aggro (1:1)
|
||||||
- Heilung = Aggro (0.5x)
|
- Heilung = Aggro (0.5x)
|
||||||
@@ -185,8 +157,7 @@
|
|||||||
- CollisionShape3D (SphereShape3D)
|
- CollisionShape3D (SphereShape3D)
|
||||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
||||||
- portal.gd — Gruppe "portals", Detection-Area Signal (Death-Handling → SpawnSystem)
|
- portal.gd — Gruppe "portals", Detection-Area Signal (Death-Handling → SpawnSystem)
|
||||||
|
- Stats: portal_stats.tres (→ Resources)
|
||||||
- portal_stats.tres — health=500, regen=1%/s, shield=0
|
|
||||||
- Phase 1: Angreifbar, HP-Bar, spawnt 3 Gegner bei 85%/70%/55%/40%/25%/10% Leben
|
- Phase 1: Angreifbar, HP-Bar, spawnt 3 Gegner bei 85%/70%/55%/40%/25%/10% Leben
|
||||||
- Portal = Spawnpunkt, 10m Aggro-Radius
|
- Portal = Spawnpunkt, 10m Aggro-Radius
|
||||||
|
|
||||||
@@ -219,12 +190,12 @@
|
|||||||
- Gruppe (enemies, boss)
|
- Gruppe (enemies, boss)
|
||||||
- Kollision (CapsuleShape3D, größer als Enemy)
|
- Kollision (CapsuleShape3D, größer als Enemy)
|
||||||
- Mesh (SphereMesh, lila, 1.5x Größe)
|
- Mesh (SphereMesh, lila, 1.5x Größe)
|
||||||
- Health (Node, health.gd, boss_stats.tres)
|
- Health (Node, health.gd)
|
||||||
- Shield (Node, shield.gd, boss_stats.tres)
|
- Shield (Node, shield.gd)
|
||||||
- HitArea, DetectionArea, NavigationAgent3D, EnemyMovement
|
- HitArea, DetectionArea, NavigationAgent3D, EnemyMovement
|
||||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
||||||
- boss.gd — Erbt von enemy.gd, Gruppe "boss"
|
- boss.gd — Erbt von enemy.gd, Gruppe "boss"
|
||||||
- boss_stats.tres — health=500, regen=0, shield=100, delay=5s, regen_time=8s
|
- Stats: boss_stats.tres (→ Resources)
|
||||||
|
|
||||||
## GameState
|
## GameState
|
||||||
- game_state.gd — Autoload, speichert Spielerzustand zwischen Szenenwechseln
|
- game_state.gd — Autoload, speichert Spielerzustand zwischen Szenenwechseln
|
||||||
@@ -237,7 +208,46 @@
|
|||||||
- health.gd — Registriert Entity beim HealthSystem mit EntityStats, deregistriert bei _exit_tree
|
- health.gd — Registriert Entity beim HealthSystem mit EntityStats, deregistriert bei _exit_tree
|
||||||
- shield.gd — Registriert Entity beim HealthSystem mit EntityStats, deregistriert bei _exit_tree
|
- shield.gd — Registriert Entity beim HealthSystem mit EntityStats, deregistriert bei _exit_tree
|
||||||
- healthbar.gd — Liest Health/Shield (optional) vom Parent, gelber Rand bei Anvisierung, blauer Lebensbalken wenn Spieler Ziel ist (nur bei Gegnern)
|
- healthbar.gd — Liest Health/Shield (optional) vom Parent, gelber Rand bei Anvisierung, blauer Lebensbalken wenn Spieler Ziel ist (nur bei Gegnern)
|
||||||
- entity_stats.gd (Resource) — max_health, health_regen, max_shield, shield_regen_delay, shield_regen_time
|
|
||||||
|
## Resources
|
||||||
|
### EntityStats (entity_stats.gd)
|
||||||
|
- Felder: max_health, health_regen, max_shield, shield_regen_delay, shield_regen_time
|
||||||
|
- player_stats.tres → Player — health=100, regen=1/s, shield=50, delay=3s, regen_time=5s
|
||||||
|
- enemy_stats.tres → Enemy — health=100, regen=0, shield=50, delay=3s, regen_time=5s
|
||||||
|
- boss_stats.tres → Boss — health=500, regen=0, shield=100, delay=5s, regen_time=8s
|
||||||
|
- portal_stats.tres → Portal — health=500, regen=0, shield=0
|
||||||
|
|
||||||
|
### Ability (ability.gd)
|
||||||
|
- Felder: ability_name, type, damage, ability_range, cooldown, uses_gcd, aoe_radius, is_heal, passive_stat
|
||||||
|
- Typen: Single, AOE, Utility, Ult, Passive
|
||||||
|
- ability_modifier.gd — Verändert Ability (Element, Beruf, Prestige)
|
||||||
|
- Schadens-Klasse:
|
||||||
|
- AA: 25 Schaden, 10m
|
||||||
|
- 1 Single: 30 Schaden, 20m Range, 2s CD, GCD
|
||||||
|
- 2 AOE: 20 Schaden, 5m Range, 3s CD, GCD
|
||||||
|
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
||||||
|
- 4 Ult: 5x Single (50 Schaden) + 2x AOE 3m (20 Schaden), 20m Range, 15s CD, GCD
|
||||||
|
- 5 Passive: 50% mehr Schaden Aura (permanent aktiv, kein CD)
|
||||||
|
- Tank-Klasse:
|
||||||
|
- AA: 5 Schaden, 3m
|
||||||
|
- 1 Single: 15 Schaden, 3m Range, 2s CD, GCD
|
||||||
|
- 2 AOE: 10 Schaden, 10m Range, 3s CD, GCD
|
||||||
|
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
||||||
|
- 4 Ult: Schild 300%, 20s CD, GCD
|
||||||
|
- 5 Passive: 50% mehr Schild Aura (permanent aktiv, kein CD)
|
||||||
|
- Heiler-Klasse: Kein Autotarget, Selfheal wenn kein Spieler anvisiert
|
||||||
|
- AA: 1 Heilung, 20m
|
||||||
|
- 1 Single: 15 Heilung, 20m Range, 2s CD, GCD
|
||||||
|
- 2 AOE: 10 Heilung, 20m Range, 3s CD, GCD
|
||||||
|
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
||||||
|
- 4 Ult: 25 Heal Single + 10 AOE Heal 3m radius, 20m Range, 15s CD, GCD
|
||||||
|
- 5 Passive: 50% mehr Heal Aura (permanent aktiv, kein CD)
|
||||||
|
|
||||||
|
### AbilitySet (ability_set.gd)
|
||||||
|
- Felder: abilities (Array[Ability]), aa_damage, aa_range, aa_is_heal
|
||||||
|
- damage_set.tres → Rolle Damage
|
||||||
|
- tank_set.tres → Rolle Tank
|
||||||
|
- healer_set.tres → Rolle Healer
|
||||||
|
|
||||||
## HUD
|
## HUD
|
||||||
- hud.tscn — CanvasLayer (hud.gd)
|
- hud.tscn — CanvasLayer (hud.gd)
|
||||||
|
|||||||
Reference in New Issue
Block a user