Eevee (Evelyn Woods)
ebe848ec99
Fix trap timing on Lynx
...
CC2's goofy `on_stand` on arrival behavior made them extra extra fast,
which is too fast.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
9bf418258f
Convert several uses of on_begin to on_ready
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
fd590f8353
Slightly reduce memory usage (?) for undoing transmutation
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
f417162f6f
Refactor bombs to use on_stand instead of on_begin
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
25cb6f2f05
Outdent the messy push-handling block in can_actor_enter_cell
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
f422b4b395
Add a compat flag for pushing a sliding block
...
The default is now what I /think/ is the Lynx behavior: try to push the
block first, and only give it a pending direction if the push fails.
CC2 always uses the pending mechanism.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
80edfa1ae9
Clear the pending flags in more sensible places
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
64ca8f008c
Restore standing on arrival
...
A few CC2LP1 replays desynced, so, I guess this is right actually.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
2ee86b50d2
Remove slide_automatically
...
Since sliding happens either on cell arrival or in the actor's idle
phase, the actor will always have a pending slide by the end of a tic,
so this code doesn't actually do anything.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
f140804713
Don't on_stand() on arrival; fix the CC1 force-floor compat flag
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
a1f357f317
Make sliding be the tiles' responsibility
...
This seems to simplify things and also explain the CC2 semantics: force
floors activate while being stood on (which happens, I guess, during
idle), so it applies to objects that start the level on force floors.
This was probably done to make force floor flipping work, too. On the
other hand, ice still only activates when being stepped on.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
7ba261c7d9
Fix some style nits; add some comments
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
7a9e3a6eb1
Check forced movement when stepping on a cell, not during movement
...
This does simplify things a bit, and it also fixes the replay for CC2LP1
level 160, Sneak Around. It breaks three Voting replays, unfortunately,
but doesn't break anything else, so I'm inclined to call it better.
2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
15a8be1c15
Play sounds very near the player at full volume, but spatialize chip pickups
2021-12-22 23:58:14 -07:00
Eevee (Evelyn Woods)
1e02c6aa6f
Complete the pgchip ice block emulation ( fixes #34 )
2021-12-22 22:30:59 -07:00
Eevee (Evelyn Woods)
c8de4edfff
Add spatial audio and sound effect captions
2021-12-22 20:55:15 -07:00
Eevee (Evelyn Woods)
77afca5799
Fix handling of blocked diagonal movement ( fixes #86 )
...
I had it mostly right based on experimentation, but had the conditions
inside-out, which allowed this case to slip through the cracks. This
makes the Settlement of Arrakis replay sync.
2021-12-03 07:16:59 -07:00
Timothy Stiles
8feb732a8f
boulders are pushed in the movement not facing direction ( fixes #81 )
2021-11-18 20:53:56 +11:00
Timothy Stiles
a87db67d84
lexy w/ skates and cerise now crack but don't slide on cracked ice ( fixes #82 )
2021-11-18 20:22:00 +11:00
Timothy Stiles
d675cddafb
spaceify
2021-11-18 18:40:15 +11:00
Timothy Stiles
2df4dc5829
fix 'blowing up electric floors doesn't remove the wiring' regression
2021-11-18 18:39:46 +11:00
Eevee (Evelyn Woods)
ae8b42e0c9
Merge Lexy/Lynx loops; add compat for separated teleport phase
2021-05-17 19:12:04 -06:00
Eevee (Evelyn Woods)
7ed3d38489
Implement monsters not hurting you at decision time in Lynx
2021-05-11 18:31:16 -06:00
Eevee (Evelyn Woods)
3c00e0ba36
Fix rolling a second RFF direction under Lynx
2021-05-11 17:09:25 -06:00
Eevee (Evelyn Woods)
c9a2897bc2
Consolidate Lynx-style player death with CC2
2021-05-11 16:40:00 -06:00
Eevee (Evelyn Woods)
fc1f85dac9
Fix Lynx force floor compat switch; ensure monsters can't turn in traps
2021-05-11 16:31:28 -06:00
Eevee (Evelyn Woods)
9369b2b167
Partially restore Lynx force floor behavior
2021-05-10 20:46:19 -06:00
Eevee (Evelyn Woods)
08c86c6129
Refactor sliding handling
...
Eliminates a number of annoying little hacks by getting rid of
`slide_mode` and instead trusting the terrain, live, like CC2 seems to
do (and Lynx definitely does).
2021-05-10 20:23:02 -06:00
Eevee (Evelyn Woods)
dfc8798ff6
Fix turtle splashes erasing dropped dynamite
2021-05-08 17:51:46 -06:00
Eevee (Evelyn Woods)
eebe8b9581
Emulate an obscure CC2 bug when selecting a green teleport destination
2021-05-08 17:13:48 -06:00
Eevee (Evelyn Woods)
8efa3a572a
Partially consolidate slide overriding on force floors vs teleports
2021-05-07 23:44:05 -06:00
Eevee (Evelyn Woods)
642c977df3
Prevent monsters killing you after you teleported
2021-05-07 22:39:54 -06:00
Eevee (Evelyn Woods)
b7e352a4a3
Switch to Lynx's delayed green button effect
2021-05-07 22:39:31 -06:00
Eevee (Evelyn Woods)
87d7952960
Fix lilypad splash duration being slightly longer than expected
2021-05-07 18:54:56 -06:00
Eevee (Evelyn Woods)
9883dcf4ef
Bring death and spring mining more into line with CC2
...
- Players and monsters do, in fact, block each other. The helmet only
prevents death.
- Death happens during collision check, which is the entire reason items
don't save you: you're collided with first! This allows removing
several special cases.
- Spring mining is prevented almost incidentally, by virtue of collision
being checked both at decision time and movement time. It /can/
happen to actors other than the player, but seemingly not blocks.
- Some monsters, whose movement is essentially forced anyway, skip the
decision time collision check. This includes doppelgangers, which is
why they always spring mine.
2021-05-07 17:51:11 -06:00
Eevee (Evelyn Woods)
24a55d7c88
Move the hairy Cell collision methods into Level
2021-05-06 12:44:29 -06:00
Eevee (Evelyn Woods)
eff62a9765
Merge trap/cloner connections; round-trip them through C2M; stub out connect tool
2021-04-28 22:05:01 -06:00
Eevee (Evelyn Woods)
f2366be039
Move diamond iteration to algorithms so the editor can (eventually) use it
2021-04-26 15:57:13 -06:00
Eevee (Evelyn Woods)
d251955684
Make red teleporters count as wired if they neighbor a logic gate
2021-03-13 18:05:29 -07:00
Eevee (Evelyn Woods)
3020e3b038
Count chips in C2Ms on level start, not on parse (so editing updates the chip count)
2021-03-10 22:19:47 -07:00
Eevee (Evelyn Woods)
63609ba77e
Fix a few more Lynx compat issues
2021-03-08 23:53:52 -07:00
Eevee (Evelyn Woods)
1e5160b40d
Use kill_actor when appropriate; fix some bowling ball behavior
2021-03-08 20:02:23 -07:00
Eevee (Evelyn Woods)
cf2f399371
Fix some subtle issues caused by 60 FPS updating
2021-03-08 18:53:11 -07:00
Eevee (Evelyn Woods)
a36862e65b
Revamp the halo into an ankh
2021-03-07 19:36:48 -07:00
Eevee (Evelyn Woods)
db34ca72f9
Make turntables slide actors out of them and toggle on edge flip
...
Also fix the default display of unpowered tiles while I'm in here.
2021-03-07 18:05:55 -07:00
Eevee (Evelyn Woods)
e5fd2b67da
Make turntables eject their contents
2021-03-07 00:42:19 -07:00
Eevee (Evelyn Woods)
0be59c21eb
Make the glass block shatter on spikes and work with the transmogrifier
2021-03-07 00:23:40 -07:00
Eevee (Evelyn Woods)
ada36e8d61
Implement sokoban blocks
2021-03-07 00:07:18 -07:00
Eevee (Evelyn Woods)
bf8b55a9c9
Clear swap_player1 more aggressively
2021-03-06 22:52:03 -07:00
Eevee (Evelyn Woods)
4a5f0e36c6
Run Steam mode at 60 FPS; fix turn-based mode, again ( fixes #17 , fixes #54 )
2021-03-06 22:20:46 -07:00