Zum Hauptinhalt springen

Kampf

Kampf-Engine

Ein einzelnes Stellarch-Match löst sich in deterministischen Phasen auf. Sobald Teams validiert sind und Vorrunden-Fähigkeiten angewendet wurden, führt die Engine bis zu 50 Runden aus. Jede Runde durchläuft jeden lebenden Kämpfer in Aktionsreihenfolge, löst einen Angriff aus, durchläuft die Trefferpipeline, wendet Schaden an und behandelt dann Tod und Reflexionen.

Kampfpipeline

Jeder Kampf durchläuft diese Phasen in dieser Reihenfolge. Die Engine ist eine dünne Hülle um fünf reine Funktions-Engines (SeededRng, Targeting, AttackResolver, DeathResolver, RoundResolver).

  battle_start
       |
       v
  pre_battle_phase    -- rulesets first, then abilities
       |
       v
  combat_loop  ------>+
       |              |
       |              v
       |        round_start
       |              |
       |              v
       |        per_turn ability hooks   (Heal, TankHeal)
       |              |
       |              v
       |        RoundResolver            (Targeting, AttackResolver,
       |              |                   DeathResolver per actor)
       |              v
       |        end_of_round rulesets    (Earthquake)
       |              |
       |              v
       |        poison_tick + cleanup
       |              |
       |              v
       |        round_end_summary  ------+
       |                                 |
       |   <--  exit when one side hits 0 alive
       v
  compute_result
       |
       v
  battle_end
  1. battle_start — beide Teams validieren und den Eröffnungsstand aufzeichnen.
  2. pre_battle_phase — Regelwerk-Hooks (Armored Up, Earthquake-Marker) anwenden, dann Fähigkeits-Hooks (Rally-Cry, Bulwark, Reinforce).
  3. combat_loop — bis zu 50 Runden. Jede Runde: round_start → Hooks pro Zug → RoundResolver → Rundenende-Regelwerke → Gift-Tick → Cleanup.
  4. compute_result — Sieger ist das Team mit lebenden Kämpfern. Rundenlimit-Fallback bricht Unentschieden anhand der Gesamt-HP.
  5. battle_end — Sieger, Grund und gespielte Runden aufzeichnen.

Aktionsreihenfolge

In jeder Runde handeln lebende Kämpfer nach folgender Priorität:

  1. Primär: Geschwindigkeit absteigend — schneller handelt zuerst.
  2. Sekundär: Seltenheit absteigend — Legendär > Episch > Selten > Gewöhnlich bei Geschwindigkeitsgleichheit.
  3. Tertiär: deterministischer RNG-Jitter — derselbe Seed + dieselben Teams ergibt jedes Mal dieselbe Reihenfolge.

Eignungsleiter

Ob ein Kämpfer überhaupt angreifen kann, hängt von seiner EFFEKTIVEN Position (sein 1-basierter Rang unter lebenden Teamkollegen) und seinem Angriffstyp ab. Wenn der vorderste Kämpfer stirbt, rückt der nächste auf und übernimmt Position 1.

Position Magie Fernkampf Nahkampf
1 (vorne) Ja Nein Ja
2 Ja Ja Nur mit Spearline
3+ Ja Ja Nein

Melee Mayhem überschreibt diese gesamte Leiter — jeder Nahkampf-Kämpfer ist unabhängig von der Position kampfberechtigt.

Die 5-stufige Trefferpipeline

Jeder Angriff durchläuft diese Stufen in dieser Reihenfolge. Die Pipeline mutiert ausschließlich Ziel-HP/Rüstung und (bei Reflexionen) Angreifer-HP. Die zurückgegebene Ereignisliste ist eingefroren — Replay-Tools deserialisieren sie byteweise.

  1. 1. Trefferwurf — zweistufige Leiter

    Phase 1 (Geschwindigkeitsdifferenz): Basischance startet bei 1.0. Ist das Ziel schneller, subtrahiere (Ziel.Speed − Angreifer.Speed) × 0.10. Boden bei 0.50. Geschwindigkeitsmathe allein erzeugt nie eine Chance unter 50 %.

    Phase 2 (Fähigkeitsausweichen): Ausgehend vom Phase-1-Bodenwert, subtrahiere je 0.25 für Lift-Drive (gegen nicht-fliegende Physische), Slipstream (gegen Nah-/Fernkampf) und Phase (gegen Magie). Dieser Stapel KANN die Endchance unter 0.50 drücken. True Strike springt vor Phase 1 direkt auf 1.0.

  2. 2. Klassenminderung

    Plate halbiert physischen Schaden (Nah + Fern), Minimum 1. Null-Field halbiert magischen Schaden, Minimum 1. Aegis Bubble nullifiziert den ersten Treffer vollständig, bricht danach.

  3. 3. Rüstungsabsorption

    Nah- und Fernkampf werden standardmäßig durch Rüstung absorbiert. Magie umgeht Rüstung — außer Void Armor leitet Magie ebenfalls durch die Rüstungsspur.

  4. 4. HP-Anwendung

    Restschaden trifft HP. Das damage_applied-Event feuert auch, wenn der Restschaden 0 ist.

  5. 5. Reflexionen

    Nur wenn Schaden > 0 die HP getroffen hat UND der Angreifer noch lebt. Recoil-Plate reflektiert feste 2 gegen Nahkampf. Return Fire reflektiert ceil(roh / 2) gegen Fernkampf. Magic Reflect reflektiert ceil(roh / 2) gegen Magie. Reflexionen verwenden den rohen Vorminderungsschaden als Basis.

Tod + On-Death-Auslöser

Wenn die HP eines Kämpfers auf 0 fallen, kippt der DeathResolver sein Alive-Flag, sendet pro On-Death-Fähigkeit ein on_death_trigger-Event und prüft, ob das Restteam Final Defiance aktivieren sollte.

  1. died — Kämpfer wird aus der Aktionsreihenfolge entfernt.
  2. on_death_trigger — Fähigkeiten wie Killstreak (Kill-Bonus) und Overrun (Kettenangriff) feuern hier.
  3. last_stand_activated — bleibt nach dem Tod ein einziger lebender Teamkollege mit Final Defiance übrig, skalieren seine Werte für den Rest des Kampfes auf das 1,5-fache.

Rundenende

Nachdem jeder Kämpfer gehandelt hat, läuft die Engine:

  1. Rundenende-Regelwerks-Hooks — Earthquake verursacht 2 wahren Schaden bei jedem nicht-fliegenden Kämpfer.
  2. Adergift-Tick — jeder vergiftete Kämpfer nimmt 2 Schaden. Einmal pro Runde auf Typ-Ebene aufgelöst (nicht pro Träger).
  3. Solo-Survivor-Sweep — bestätigt Letzter-Stand-Aktivierungen durch Mitten-Runde-Tode.
  4. Rundenende-Zusammenfassung — lebende Zähler in beiden Teams. Erreicht eine Seite 0, verlässt die Schleife.

Sicherheit

Determinismus ist der Vertrag. Gleicher Seed + gleiche Teams = byteidentische Events. Siehe die Sicherheitsseite, um eine Wiederholung gegen den Quell-Seed zu verifizieren.

Sicherheit