Regretfully, we won't be getting the Swimmer-Blocker after all.
I've run into far too many problems with it and have got to the point where the difficulty in implementation is outweighing the potential benefit of the feature.
In case I ever decide to revisit it in the future, the two main problems are these:
a) It doesn't seem possible to check for water at the actual rendering stage - this can only be done in LemGame (post-rendering). So, any Swimmer that's assigned a Blocker anywhere in the level (not just in water) is given the replacement "SwimBlocker" sprite. Since it's necessary to do the sprite-swap at the rendering stage, I currently can't see any way around this.
b) Pre-assigned Swimmer-Blockers transition immediately to Faller, and then Swimmer, no matter
what I try. I've looked at every thread I can find that directly affects Swimmers and Blockers, and I've tried changing the order of priority for pre-assigned skills. No luck, sadly.
Note to self: LemGame's AddPreplacedLemmings and LemRendering's RenderWorld might be the key to unlocking this one - they may need to be mutually co-ordinatedIt is still technically possible to assign Blockers in water, but it doesn't seem worth having this behaviour without the sprite to go with it. I even tried giving the SwimBlocker its own method independent of a regular Blocker, but since both states need to be tied to all the same various points-of-assignment (i.e. Skill Panel button, Replay event, Pre-placed lem, etc), it starts to get very wonky very quickly, and is extremely bug-prone.
So, for now, we'll have to let this idea go.
We can still use double-stacked Freezers to Block lems in water, with the added bonus that these are also Zombie-proof!
Meanwhile, we will still be getting Jumper and Shimmier assignability as of SuperLemmix 2.5
I'm excited about this change because I believe it will make the Swimmer skill a bit more versatile and a bit more valuable. I look forward to seeing these interactions in people's levels!