One issue that has arisen during the private test is that in the course of Thrower -> Shrugger, there is no terrain check performed to see if the lemming is still standing on terrain. This leads to a scenario where, either by grenading close to a wall or by having another lemming remove terrain, you can have a Thrower suspended in midair, and assign a skill - including another throwing skill (and repeat this infinitely) - to him when he becomes a shrugger.
After some thought, the solution I would like to propose here is that, on every frame after the projectile leaves the lemming's hand but while the lemming remains a Thrower, including the frame on which it would otherwise become a shrugger; a terrain check is performed, and if there is no ground under the Thrower, he becomes a faller.
The advantages to this are:
- Doesn't change the Shrugger behavior, as it addresses the situation before the lemming becomes a shrugger. Therefore, it does not risk breaking existing replays.
- The "can hover while actually doing something, but can't stay there" is, while unrealistic, a bit more consistent with other constructive / destructive skills.
- The point of the Shrugger time is to allow assigning another skill, including another projectile skill. Alternative options require either introducing a new state, or else having the Thrower's ability to receive skills dependant on how far along in the throwing animation it is. This avoids that problem.
The one disadvantage is that it's a little bit inconsistent that a builder or platformer can become a shrugger while in midair, while a thrower cannot. However, the key difference is that it's not directly "thrower cannot become shrugger in midair", but rather, "midair thrower becomes faller" (before it has a chance to become shrugger) - so this is only indirectly inconsistent, and I think this is okay.
However, other suggestions / feedback are welcome.