Internals

Major refactoring of the top level game control and the playfield drawing (which was poorly organized so far). This has become necessary in order to seamlessly integrate some planned features that require different transitions after winning/losing a battle. The top-level game control is now managed by three independent classes:

  • BattlefieldManager
    • runs the top-level logic (pool-updating, wave control, victory/loss detection)
    • fires events that are relevant for scene drawing or battle data administration
  • BattleScreen
    • organizes drawing components
    • passes controller input to hero controllers
    • manages screen transitions
  • BattleAdministration
    • keeps track of relevant top-level data (e.g. wave progress)
    • also keeps track of mid-/low-level stuff, i.e. whatever happens during a battle (quite a lot, indeed)