I’ve had two occasions of problems related to reaction fire, and I suppose they might be related.
-
Alien nest mission. Crabman with machine gun arm comes into view, deploys shield. My turn, I target his leg to kill it, fail to do so, it reaction fires, my guy almost dies, I reload. Try a different approach, aim at crabman’s arm to prevent him from using his gun; I miss but destroy his machine gun (game displays “destroyed: machine gun” message), I think “yay, same difference!”, but crabman THEN REACTION FIRES USING THE MACHINE GUN I JUST DESTROYED. I reload, shoot him dead with a sniper, problem solved for now.
-
Alien nest mission, one of my soldiers explores, I put him in overwatch at the end of the turn.
Apparently I ventured a little bit too far, because a mindfragger egg hatches.
Oh no!
Mindfragger advances.
Oh Nooo!
Soldier overwatch-fires at mindfragger!
Yay!
Soldier hits mindfragger!
Yay!
Soldier fails to kill mindfragger!
Nooooooo!
Game informs me “Disabled: Head” - Mindfragger head was disabled! It can’t use its mindfragging ability!
Yay!
Mindfragger advances further, fires its head at my soldier and mindfrags him.
Whaaat??
The head-projectile of the mindfragger was even graphically displayed as disabled, using the dark/mottled texture.
I think both events are made possible by a logic error. Apparently, some actions are decided at certain points and queued for later, and the game fails to take into account other things that happen between now and then in the event chain that make those actions impossible.
Like this:
A fires - game decides that B will reaction fire - “something happens” - B reaction fires
or
A performs an attack that consists of “moving somewhere and doing something” - “something happens” - attack takes place even though it shouldn’t
Now that I think of it, I’ve seen a third related event. A crabman tried to reaction fire at one of my guys that he did not even see. The crabman was partially behind an obstacle, one of my soldiers had seen it, but a different soldier (who did not even see the crabman) lobbed a grenade behind the wall. The crabman reaction fired in the direction of the soldier that damaged him, even though it would never have been able to hit him, and hit the wall instead.
In all of three of these instances the game fails to perform a second check and instead executes an action queue that should have been aborted.