Es gibt einen MaxWert an ATB-Speed basierend auf der Anzahl der Teilnehmer. Nach einem Zug wird der Wert angenähert, das wäre eine Beschleunigung. Wenn sich ein ATB-Balken seinem Ende nähert, wird proportional auf 20% des Wertes runtergebremst.
Während der Züge ist der Wert auf 1, ich tracke zu dem "onAction"-Events und setze mit denen eine Slotdown-Zeit auf einige Frames, wobei die Eventverarbeitung buggt wenn man den AtbSpeed ganz auf 0 setzt. Um Events ordnungsgemäß ablaufen zu lassen, also um überhaupt irgend etwas Erstrebenswertes mit dem 2k3 zu bauen, müssen die Eventseiten sauber durchlaufen ohne, dass ein neuer Held oder ein Monster dazwischenhaut.
Beobachtungen:
Der Maker füllt die ATB-Leisten abwechselnd. Zumindest erhöhen sich die Werte bei den Helden gefühlt nie im selben Frame. Daher wohl auch der Effekt, dass mit jedem Kampfteilnehmer das ganze System langsamer wird. So machen sie aber auch, dass quasi in einem Tick nur ein Teilnehmer die volle Leiste erreicht.
Ich würde in einem eigenen Atb-System alle im selben Tick bearbeiten und dann die Teilnehmer mit vollem Atb anhand einer Prioritätsliste sortiert nach Agi und dann Helden vor Monstern nach aufsteigender ID drankommen lassen. Das Atb-Füllen wird dabei so lange komplett pausiert bis ein Teilnehmer seinen ganzen Zug mit Eventverarbeitung durchgezogen hat.
Hinweis noch:
In der Entverarbeitung gibt es zwei Zeitpunkte, die wichtig sind. Zwischen Kommando und Aktion, das wären dann die "Hero does X Command"-Seiten UND noch wichtiger, nach der Handlung. Diese Seiten schaltet man durch ein Switch, dass in "Hero does X Command" gesetzt und nach Bearbeitung zurückgesetzt wird.