[FIXED] Walkers allow passing wrong One-Way-Fields/Blockers [BUG] [PLAYER]

Started by Nepster, April 04, 2016, 04:00:35 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

The following glitch happens both in V1.43 and the experimental version:
Assume a one-way-field faces left and let a lemming walk into it facing right. On the first frame the lemming turned around and faces left, assign a walker. In the next frame, the lemming will have moved one pixel to the right, though facing still left! So we can assign another walker to move him another pixel to the right, and so on...
The same happens when a lemming meets a blocker (though one has to be careful not to assign the walker to the blocker).

I am not yet sure about the best was to fix this. Here are a few possibilities:
1) Disallow assignment of walkers in one-way-fields or blocker fields.
2) If a walker is assigned inside a one-way-field or blocker field, the lemming just doesn't move at all for this frame (but will still end up facing into the direction of the field, nevermind that a walker was assigned).
3) Let one-way-fields and blocker fields push lemmings one pixel outwards. This can be abused to speed up the walker speed and will likely break lots of replays, because all lemmings hitting blockers will be affected.

IchoTolot

Definitely Option 2).

It is a little extra rule, but it stops the little glitch and is replay friendly. :)   Also the player most likely will see nothing of this and won't be affected.


1) is a restriction which can be felt by the player in some circumstances, so it has too big of an impact to the gameplay for just a little thing.

I don't have to tell why I would never choose 3) here ;P

namida

I would assume that the first rule applies only to assigning the walker skill to a lemming who is already a walker (so for example, you could still use a walker inside a one-way field to, eg. cancel a builder). If this is the case, this is the one I would be in favor of. (or alternatively, making it do nothing in this case)

However, with that being said, I'm not entirely sure (based simply on quick thinking and the description here, rather than any actual testing / examining of code) that #1 would actually fix the problem completely. Although it would prevent passing through altogether, it would not prevent going somewhat inside it, because the first such walker would be assigned one pixel outside of the field (the next one would then be inside it, and prevented). This could still essentially be used as a delay tactic, or to squeeze one pixel extra distance for the starting point of the next skill you use. Of course, this could be sorted out with a special rule that checks at the new position too.
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)

Nepster

In all NeoLemmix versions walkers (and all other skills) already go one pixel into one-way-fields and turn around once they are inside. Only for going deeper inside the one-way-field one needs the walkers. So the possible starting positions for skills would not change at all.

IchoTolot

As this is still undecided due to Nepsters post in the Experimental topic, I still want to vote for Option 2.

This won't restrict the player as with Option 1 (which would be my 2nd choice here)
+ It won't mess up a huge amount of stuff as Option 3 (which I consider a 100% no-go  :devil:)


namida

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)