update
This commit is contained in:
30
plan.md
30
plan.md
@@ -2,7 +2,8 @@
|
||||
## Szenenbaum
|
||||
- Welt
|
||||
- Player
|
||||
- Gegner
|
||||
- Portal
|
||||
- Gegner
|
||||
- HUD
|
||||
|
||||
## Architektur
|
||||
@@ -16,6 +17,7 @@
|
||||
- Kollision (StaticBody3D, WorldBoundaryShape3D)
|
||||
- Licht (DirectionalLight3D, 45°, Schatten)
|
||||
- Spieler (Instanz von player.tscn)
|
||||
- Portal (Instanz von portal.tscn)
|
||||
- HUD (Instanz von hud.tscn)
|
||||
|
||||
- player.tscn — Spieler
|
||||
@@ -41,6 +43,19 @@
|
||||
- ClassIcon (Label, Klassen-Symbol: T=Tank, D=Schaden, H=Heiler)
|
||||
- Ability 1-5
|
||||
|
||||
- portal.tscn — Portal (Gegner-Spawner, anvisierbar, Gruppe "targetable")
|
||||
- StaticBody3D (portal.gd)
|
||||
- Kollision (CylinderShape3D)
|
||||
- Mesh (CylinderMesh, Platzhalter)
|
||||
- Health (Node, health.gd)
|
||||
- HitArea (Area3D, Trefferbereich)
|
||||
- CollisionShape3D
|
||||
- PortalSpawner (Node, portal_spawner.gd)
|
||||
- Spawnt 3 Gegner bei 85%, 70%, 55%, 40%, 25%, 10% Leben (einmalig)
|
||||
- Portal = Spawnpunkt der Gegner
|
||||
- 10m Aggro-Radius um das Portal
|
||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd)
|
||||
|
||||
- enemy.tscn — Gegner
|
||||
- CharacterBody3D (enemy.gd)
|
||||
- Kollision (CapsuleShape3D)
|
||||
@@ -55,7 +70,7 @@
|
||||
- EnemyMovement (Node, enemy_movement.gd)
|
||||
- EnemyCombat (Node, enemy_combat.gd)
|
||||
- EnemyAggro (Node, enemy_aggro.gd)
|
||||
- Healthbar (Sprite3D + SubViewport, über dem Gegner, enemy_healthbar.gd)
|
||||
- Healthbar (Sprite3D + SubViewport, über dem Gegner, healthbar.gd)
|
||||
- SubViewport
|
||||
- Border (ColorRect, gelb, sichtbar bei Anvisierung)
|
||||
- HealthBar (ProgressBar, grün)
|
||||
@@ -71,9 +86,11 @@
|
||||
- 3 Utility: Schild sofort auf 100%, 5s CD, kein GCD
|
||||
- 4 Ult: 4x Single + 2x AOE um Ziel, 30s CD, GCD
|
||||
- 5 Passive: 50% mehr Schaden (permanent aktiv, kein CD)
|
||||
- targeting.gd — Klick/TAB anvisieren, Kampfmodus bei Gegner-Angriff, Auto-Targeting auf nächsten Gegner
|
||||
- targeting.gd — Klick/TAB anvisieren (Gruppe "targetable"), Kampfmodus bei Gegner-Angriff, Auto-Targeting auf nächsten Gegner
|
||||
- event_bus.gd — Autoload-Singleton, globale Signals
|
||||
- enemy.gd — Gegner-Kern, State Machine (Idle, Verfolgen, Angreifen, Zurückkehren), alarmiert Gegner in 3m
|
||||
- portal.gd — Portal-Kern, Gruppe "targetable", kein Kampf/Aggro/State
|
||||
- portal_spawner.gd — Spawnt Gegner bei Lebensschwellen, setzt Portal als Spawnpunkt
|
||||
- enemy.gd — Gegner-Kern, State Machine (Idle, Verfolgen, Angreifen, Zurückkehren), alarmiert Gegner in 3m, Gruppe "enemies" + "targetable"
|
||||
- enemy_movement.gd — Navigation zum Ziel/Spawnpunkt
|
||||
- enemy_combat.gd — Angriff über Event (damage_requested)
|
||||
- enemy_aggro.gd — Aggro-Tabelle (Spieler → Wert), wählt Ziel mit höchstem Aggro
|
||||
@@ -81,13 +98,15 @@
|
||||
- Heilung = Aggro (0.5x)
|
||||
- Tank = Aggro-Multiplikator (2x)
|
||||
- Aggro verfällt -1/s
|
||||
- Außerhalb 10m Portal-Radius: Aggro verfällt 1% * 2 je s (1%, 2%, 4%, 8%, ...)
|
||||
- Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert 10% Leben/s bis 100%, dann 1%/s
|
||||
- Bei Spieler-Tod → Aggro auf 0
|
||||
- health.gd — Leben, 1/s Regeneration, Tod bei 0 (wiederverwendbar)
|
||||
- shield.gd — Schild, regeneriert nach 3s ohne Schaden, in 5s voll (wiederverwendbar)
|
||||
- player_class.gd — Klassenwechsel ALT+1 bis ALT+3 (Tank/Schaden/Heiler), tauscht AbilitySet
|
||||
- respawn.gd — Bei Tod: Spieler deaktivieren, 3s Timer, Respawn am Startpunkt, Leben/Schild voll
|
||||
- hud.gd — Reagiert auf Events, aktualisiert HealthBar/ShieldBar/AbilityBar/RespawnTimer
|
||||
- enemy_healthbar.gd — Liest Health/Shield vom Gegner, aktualisiert Balken über dem Gegner, gelber Rand bei Anvisierung, blauer Lebensbalken wenn Spieler Ziel ist
|
||||
- healthbar.gd — Liest Health/Shield (optional) vom Parent, gelber Rand bei Anvisierung, blauer Lebensbalken wenn Spieler Ziel ist (nur bei Gegnern)
|
||||
|
||||
## Abilities (Resources)
|
||||
- ability.gd (Resource) — name, type, damage, range, cooldown, uses_gcd, execute()
|
||||
@@ -113,3 +132,4 @@
|
||||
- respawn_tick(timer) — Respawn-Countdown Update
|
||||
- enemy_engaged(enemy, target) — Gegner hat Spieler anvisiert
|
||||
- cooldown_tick(cooldowns, max_cooldowns, gcd_timer) — Cooldown-Update für HUD
|
||||
- portal_spawn(portal, enemies) — Portal hat Gegner gespawnt
|
||||
|
||||
Reference in New Issue
Block a user