From 336124ff83db2f72dd7886664b4bb8e4d37ddb41 Mon Sep 17 00:00:00 2001 From: Marek Lenczewski Date: Wed, 1 Apr 2026 08:57:55 +0200 Subject: [PATCH] update --- plan.md | 84 ++++++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 37 deletions(-) diff --git a/plan.md b/plan.md index f965123..c363c0b 100644 --- a/plan.md +++ b/plan.md @@ -103,42 +103,14 @@ - player.gd — Kern, verbindet Komponenten, Sichtbarkeit bei Tod/Respawn - camera.gd — LMB freies Umsehen, RMB Kamera + Laufrichtung anpassen - movement.gd — Bewegung (WASD relativ zur Kamera), Springen, Schwerkraft - -- player_stats.tres — health=100, regen=1/s, shield=50, delay=3s, regen_time=5s +- Stats: player_stats.tres (→ Resources) ## Kampf - 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) - 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 -- Schadens-Klasse: - - 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 +- Jede Rolle hat ein eigenes AbilitySet (→ Resources) - Beim Rollenwechsel wird das AbilitySet getauscht - Elemente und Modifikatoren verändern Abilities nachträglich @@ -162,7 +134,7 @@ - ShieldBar (ProgressBar, blau) - 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_stats.tres — health=100, regen=0, shield=50, delay=3s, regen_time=5s +- Stats: enemy_stats.tres (→ Resources) - Aggro-Regeln: - Schaden = Aggro (1:1) - Heilung = Aggro (0.5x) @@ -185,8 +157,7 @@ - CollisionShape3D (SphereShape3D) - Healthbar (Sprite3D + SubViewport, healthbar.gd) - portal.gd — Gruppe "portals", Detection-Area Signal (Death-Handling → SpawnSystem) - -- portal_stats.tres — health=500, regen=1%/s, shield=0 +- Stats: portal_stats.tres (→ Resources) - Phase 1: Angreifbar, HP-Bar, spawnt 3 Gegner bei 85%/70%/55%/40%/25%/10% Leben - Portal = Spawnpunkt, 10m Aggro-Radius @@ -219,12 +190,12 @@ - Gruppe (enemies, boss) - Kollision (CapsuleShape3D, größer als Enemy) - Mesh (SphereMesh, lila, 1.5x Größe) - - Health (Node, health.gd, boss_stats.tres) - - Shield (Node, shield.gd, boss_stats.tres) + - Health (Node, health.gd) + - Shield (Node, shield.gd) - HitArea, DetectionArea, NavigationAgent3D, EnemyMovement - Healthbar (Sprite3D + SubViewport, healthbar.gd) - 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 - game_state.gd — Autoload, speichert Spielerzustand zwischen Szenenwechseln @@ -237,7 +208,46 @@ - health.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) -- 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.tscn — CanvasLayer (hud.gd)