Was seit dem letzten Aufruf passiert ist: unit.appeared / unit.died / unit.removed / unit.damaged / order.changed /
hero.levelup / owner.changed / item.appeared / item.removed / game.started (aus dem Vergleich der Veröffentlichungen, Genauigkeit = Veröffentlichungsperiode 50 ms),
dazu damage / killed auf Engine-Ebene (die Runtime zeichnet sie sofort im Spiel-Thread auf, daher gibt es einen für **jeden einzelnen Treffer**):
damage: handle = der Getroffene, .source_addr = der Angreifer (mit snapshot().unit_by_addr zur Einheit), .value = tatsächlicher TP-Verlust,
.raw_damage = Schaden vor Rüstung, .attack_type (normal/pierce/siege/magic/chaos/hero/spell), .damage_type
killed: dieser Treffer hat die Einheit getötet, .source_addr = Killer
dazu production.done, abgeleitet aus der von der Runtime verfolgten Produktionstabelle (Genauigkeit = Veröffentlichungsperiode): Einheit = Gebäude, .done_code = Vier-Zeichen-Code des Fertiggestellten,
.done_kind = 'training' (Einheit/Held/Wiederbelebung) / 'research' / 'construction' (Gebäude fertig) / 'upgrade' (Tier-up/Turm-Upgrade), .value = benötigte Spielsekunden
Seit 09-25 ergänzt:
spell.cast: Einheit = Zaubernder, .spell Vier-Zeichen-Code der Fähigkeit, b Stufe, value Abklingzeit in Sekunden, x,y Zielpunkt (erkannt, wenn die Abklingzeit startet, Genauigkeit = Veröffentlichungsperiode)
player.left: .player = Nummer des Spielers, der gegangen ist / als besiegt entfernt wurde; game.ended: Partie verlassen
selection.changed: Die Auswahl des lokalen Spielers hat sich geändert (Einheiten mit g.selection() holen)
message: eine Zeile in einem Nachrichtenfeld auf dem Bildschirm (Spielhinweis, Chat, System): .text voller Text, .frame Nummer des Nachrichtenfelds,
.chat = {'channel', 'sender', 'text'} (bei Chat-Nachrichten; was der Spieler ins Chatfeld tippt, liest du hier)
ui.click / ui.hover / hotkey / mouse.world: Oberfläche & Eingabe (g.ui), .key ist der Canvas-key / die Hotkey-Schreibweise
Jedes ist ein Event(seq, kind, clock, addr, handle, type, owner, a, b, x, y, value, extra).
Im Fair-Modus (fair=True) nur: Events eigener Einheiten, Events von Einheiten, die gerade sichtbar sind (oder vor bis zu 1 Sekunde noch sichtbar waren), Schaden gegen uns/durch uns,
sowie die lokalen Oberflächen-, Nachrichten- und Partie-Events.
Mechanismus Event-Ring Local\War3Events_<pid> (Veröffentlichungsvergleich + von der Runtime erfasste Schadens-Events)