Right now a bunch of events are handled fully in the GameplayScene, while some are handled partially by the ActionSystem. It's a bit unclear as to who does what.
On paper it's fine because the ActionSystem has two responsibilities:
Handling the mechanical consequences of events
Raising further events in some cases (e.g. raising ActorDied after ActorKilled)
The GameplayScene should mostly handle these events in order to communicate with the other game systems, so stuff like:
Updating the UI
Playing sounds/animations
Finally, scripts are where more specific event handlers are implemented. For example the script that implements the behavior for bombs will specify its own ActorTurnStarted handler to manage ticking and exploding.
The refactor needs to separate these concerns more clearly essentially.
Right now a bunch of events are handled fully in the GameplayScene, while some are handled partially by the ActionSystem. It's a bit unclear as to who does what.
On paper it's fine because the ActionSystem has two responsibilities:
The GameplayScene should mostly handle these events in order to communicate with the other game systems, so stuff like:
Finally, scripts are where more specific event handlers are implemented. For example the script that implements the behavior for bombs will specify its own ActorTurnStarted handler to manage ticking and exploding.
The refactor needs to separate these concerns more clearly essentially.