update
This commit is contained in:
38
plan.md
38
plan.md
@@ -8,11 +8,12 @@ portal/ — Portal + Gate (.tscn + .gd)
|
||||
dungeon/ — Dungeon (.tscn + .gd)
|
||||
hud/ — HUD (.tscn + .gd)
|
||||
world/ — Hauptszene (.tscn + .gd)
|
||||
systems/ — 10 Gameplay-Systeme (.gd)
|
||||
systems/ — 9 Gameplay-Systeme (.gd)
|
||||
aggro/ — AggroSystem (aggro_system, aggro_tracker, aggro_decay, aggro_events)
|
||||
autoload/ — EventBus, Stats, GameState (.gd)
|
||||
components/ — Shared UI: healthbar (.gd)
|
||||
resources/
|
||||
stats/ — Stats-Klassen (.gd) + Daten (.tres)
|
||||
stats/ — Stats-Klassen (.gd) + Daten (.tres) + AggroConfig
|
||||
roles/ — Ability/AbilitySet-Klassen (.gd) + Rollen-Daten
|
||||
damage/ — set.tres + abilities/
|
||||
tank/ — set.tres + abilities/
|
||||
@@ -137,9 +138,12 @@ resources/
|
||||
- Event: cooldown_tick
|
||||
### DamageSystem (damage_system.gd)
|
||||
- Reserviert für spätere Schadensberechnung (aktuell leer)
|
||||
### AggroSystem (aggro_system.gd)
|
||||
- Aggro-Tabellen, Decay, Zielwahl, Nearby-Alerting
|
||||
- Listener: damage_dealt, heal_requested, entity_died, enemy_detected
|
||||
### AggroSystem (systems/aggro/)
|
||||
- Systemweite Werte in AggroConfig Resource (resources/stats/aggro_config.tres)
|
||||
- aggro_system.gd — Parent, Config halten, Children verdrahten
|
||||
- aggro_tracker.gd — Aggro-Tabellen, Players-in-Range, Zielwahl, Radius-Helper
|
||||
- aggro_decay.gd — Combat-Timer, Decay-Berechnung, Spread, Alert
|
||||
- aggro_events.gd — Signal-Handler (damage_dealt, heal_requested, entity_died, enemy_detected, enemy_lost)
|
||||
- Event: enemy_engaged
|
||||
### EnemyAISystem (enemy_ai_system.gd)
|
||||
- ATTACK-State: Range-Check, Timer, Schaden
|
||||
@@ -193,15 +197,21 @@ resources/
|
||||
- EnemyMovement (Node, enemy_movement.gd) — Empfängt Bewegungsbefehle
|
||||
- Healthbar (Sprite3D + SubViewport, healthbar.gd) — liest HP/Shield von Stats
|
||||
- enemy.gd — Registriert bei Stats mit EnemyStats Resource, Detection-Area Signal
|
||||
- Aggro-Regeln:
|
||||
- Schaden = Aggro (1:1)
|
||||
- Heilung = Aggro (0.5x)
|
||||
- Tank = Aggro-Multiplikator (2x)
|
||||
- Aggro verfällt -1/s
|
||||
- Spieler im Portal-Radius: Aggro bleibt bei mindestens 1
|
||||
- Außerhalb Portal-Radius: Aggro verfällt exponentiell (1%, 2%, 4%, 8%, ...)
|
||||
- Ohne Aggro: Gegner kehrt zum Portal zurück, regeneriert
|
||||
- Bei Spieler-Tod → Aggro auf 0
|
||||
- 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
|
||||
- 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
|
||||
- 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
|
||||
|
||||
## Boss (enemy/)
|
||||
- boss.tscn — wie enemy.tscn aber größer (Mesh lila, 1.5x)
|
||||
|
||||
Reference in New Issue
Block a user