Can Orion miss?

That sounds like a pretty weird handling.

Well… think about it like this… in any event-driven system, like Gems of War combat, the game simply reacts to a series of events, some from the player, some from the AI, some from the board. Imagine that we had a queue of events that looked like this after the AI player matched 4 skulls:

  • APPLY DAMAGE
  • WAIT FOR BOARD TO STOP CASCADING
  • TAKE ANOTHER TURN
  • DECIDE WHAT TO DO (it decides for Orion to cast a spell)
  • PICK ORION SPELL TARGET
  • CAST ORION’S SPELL

Now suppose that the very first step kills a troop… Ideally it should add a priority event “REMOVE DEAD TROOP” into the system to remove that troop, so now the queue looks like this

  • APPLY DAMAGE (completed)
  • REMOVE DEAD TROOP
  • WAIT FOR BOARD TO STOP CASCADING
  • TAKE ANOTHER TURN
  • DECIDE WHAT TO DO (it decides for Orion to cast a spell)
  • PICK ORION SPELL TARGET
  • CAST ORION’S SPELL

But suppose because things moved through too quickly in the queue, when it inserted that event to remove the troop, lots of other stuff had been resolved… we’d now have

  • APPLY DAMAGE (completed)
  • WAIT FOR BOARD TO STOP CASCADING (completed)
  • TAKE ANOTHER TURN (completed)
  • DECIDE WHAT TO DO (it decides for Orion to cast a spell) (completed)
  • PICK ORION SPELL TARGET (completed)
  • REMOVE DEAD TROOP
  • CAST ORION’S SPELL

As you can see… the targeting event could now select the dead troop.

That’s just the kind of error you sometimes see in event driven systems… it means the Finite State Machine that runs the system has a flaw in it that has allowed a game-state to advance, when it should have been been waiting for something to resolve. Not saying that is the case with this one, just that it’s something that sprang to mind

4 Likes