IMO thatâs not a good way of addressing that problem. Instead of addressing the root cause, it just alleviates the symptom at a cost to the game.
The problem arises from the discrepancy of using a turn-based model of a conceptually continuous behavior - you want the wanderers to act as if theyâre sweeping out a continuous path, and anyone caught by them at any moment is spooked; whereas the game model is more that everyone essentially teleports one (or more) steps each turn. But rather than modeling the concept of âanybody touched by a wanderer at any moment at all triggers the spookingâ more precisely, youâre fixing it by making some kind of weird hybrid between a plain-turn-based and simultaneous-turn-based game.
Some are games that are âplain turn-basedâ (e.g. vanilla DnD combat), in that each actor makes a decision given a game state, and then the decision is resolved immediately using the known game state, and the next actor makes a decision based on this new state. These work because when you are making a decision, you know exactly what state it will apply to, so you can reason about what the effect of your action will be.
Some games are âsimultaneous turn-basedâ, in that all actors make a decision using the same game state as each other, and then all decisions are resolved together. These work because when you are making a decision, you know exactly what state the other actors see when they make a decision, so you can reason about what they might do (or in the case of âdeterministicâ actors, what they will do).
What you have doesnât have either of those two benefits, so itâs kind of the worst of both worlds.
Two better fixes, off the top of my head, would have been:
a) when resolving whom (if anybody) the wanderer will spook, and at which cell, consider all cells that the wanderer has gone through this turn (which is at most 2 cells), in order that he went through them. Stop when heâs actually spooked someone and disappeared. This would make it more like actual collision detection, which is really sort of what youâre going for.
(this would of course only apply to wanderers, not slashers spooking, since their effect is conceptually point-based rather than continuous sweep)
b) check for spooking multiple times throughout the turn - easiest would be after each game state update - for all minions who might currently be in a position to spook (e.g. not rushing slasher pre-actual-jump).
IMO either of these would have produced behavior thatâs much easier to interpret and debug.
As it stands, this loses a huge part of the gameâs appeal to me, since I was basing many of my algorithms on the assumption that minion actions are predictable, and the fun was in figuring out which parts I could model deterministically (with the information given to me).