[BUG][PLAYER] The swimmer assigner allows lemmings to fall through the water

Started by Armani, July 26, 2024, 05:48:25 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Armani



The ohnoer in the gif above fall through water without drowning. He should have drown but the swimmer assigner made him survive the water.
We already made lemmings lose their swimmer skill(or permanent skills in general) upon becoming an ohnoer and you cannot assign a swimmer to a (ohnoer->)drowner.(You still can assign a swimmer to a normal drowner though)
So the cleanest solution in my opinion is to make an ohnoer immune to any skill assigners.
My newest NeoLemmix level pack : Lemmings Halloween 2023 8-)

My NeoLemmix level packs(in chronological order):
  Lemmings Uncharted [Medium~Extreme]
  Xmas Lemmings 2021 [Easy~Very Hard]
  Lemmings Halloween 2023 [Easy-Very Hard]

WillLem

Quote from: Armani on July 26, 2024, 05:48:25 AM
the cleanest solution in my opinion is to make an ohnoer immune to any skill assigners.

Would the oh-noer then drown? If so, would the skill assigner then make them a Swimmer, effectively cancelling the oh-no state?

namida

Lemmings lose permanent skills upon becoming an ohnoer and can no longer receive new ones after that. Assignees are currently ignoring this rule, which is the bug here.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

WillLem

Quote from: namida on July 27, 2024, 10:28:08 AM
Assignees are currently ignoring this rule

If that's the case, why don't they begin Swimming once the assignment has been applied?

namida

Quote from: WillLem on July 29, 2024, 12:01:36 AM
Quote from: namida on July 27, 2024, 10:28:08 AM
Assignees are currently ignoring this rule

If that's the case, why don't they begin Swimming once the assignment has been applied?

My guess is that in general, if an Assigner gives them a Swimmer skill, no check is done to handle "if already drowning, transition to swimming" (and thus if you could set this up without the ohnoer being involved, you'd still get the same result).

As far as I can tell, in order to trigger this (once their interaction with ohnoers is fixed) you'd need an extremely specific setup: A teleporter overlapping water, with a receiver that overlaps an assigner. Send one lemming through the teleporter while a second slips past at the last moment, just enough so to start drowning before the teleporter catches him. Now with that being said, I would argue that the logical behavior here is not "prevent the assignment", it's "make the assignment rescue him from drowning, as it would with a manual assignment".
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Both issues (assigners working on lemmings that have been ohnoers, and Swimmer assigners failing to save drowners - although this setup appears to be impossible in practice, as drowners don't teleport and there's no other situation where the lemming would move after having begun to drown) fixed in commit 2981c0f.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)