eevee / lexys-labyrinth

Chip's Challenge 2 emulator that runs in a browser
https://c.eev.ee/lexys-labyrinth/
Other
75 stars 12 forks source link

Ghost inventory behaviour not consistent with CC2 #43

Open idarob opened 3 years ago

idarob commented 3 years ago

A ghost that picks up first a bowling ball and then 4 other items will drop the bowling ball. It will then, in most cases, "trip" over the recently dropped bowling ball, and die. An edge case is when the 4th item after the bowling ball is next to a steel wall in the direction the ghost is travelling. In LL, the ghost picks up the item but doesn't die to the bowling ball (the ball is destroyed to the steel wall?). In CC2, however, the ghost does not pick up the item, but still seems to loose the bowling ball as it can pick up another item later on without dropping anything.

See this example level (in CC2, the gravel boot will be left by the wall and only suction boot will be dropped.) https://c.eev.ee/lexys-labyrinth/?level=Q0MyTQIAAAA3AE9QVE4DAAAAAAAAUEFDSzgAAAANBAMgIAH_AQMBAVCgIA1ZAT0BPgE8AQFoAYsDuUcFATsBARaaP4X_AZDz__9z__L_______-P_0tFWSAQAAAAAAAAAAAAAAAAAAAAAAAAAEVORCAAAAAA

idarob commented 3 years ago

Ghost CC2 Ghost LL

eevee commented 6 months ago

ok. ok. i think i have a guess about this.

if you have four tools already and step onto a tool, you have a slight problem. the rules of the game say that you pick up the new tool and drop your oldest tool. but at no point during that process do you want to have five items in your inventory, or two items in the same cell. so what LL does is:

i think what cc2 might be doing here is:

this is just kind of ridiculous because the only real "failure" state is a bowling ball that's blocked, but that also means the bowling ball immediately explodes, so there's no problem and we can keep taking the item.

it wouldn't be hard to emulate this; i think my main question is whether to consider it a bug or not. i'm willing to bet the same thing happens to the player, so there are gameplay implications unfortunately