Commit Graph

369 Commits

Author SHA1 Message Date
Eevee (Evelyn Woods)
e11a5956bd Make hearts and mines transmogrify into each other 2024-04-17 03:51:47 -06:00
Eevee (Evelyn Woods)
618f292ec9 Add an xray view and a "matching button" sprite for the sokoban blocks 2024-04-17 03:51:11 -06:00
Eevee (Evelyn Woods)
849010fc75 Add some saturation to the palette
Opinions are mixed, but not mine.  I like this.
2024-04-17 03:50:19 -06:00
Eevee (Evelyn Woods)
e1e99e73e7 Fix circuit blocks; distinguish floor wiring from black button wiring 2024-04-16 21:09:46 -06:00
Eevee (Evelyn Woods)
3802b10956 Visually indicate when a floor is in an odd wiring state
This distinguished a regular crossed floor from what you get when
blowing up e.g. a blue or red teleporter.

Fixes #60.
2024-04-16 20:48:50 -06:00
Eevee (Evelyn Woods)
933d20d559 Factor out the list of pushable tiles 2024-04-13 22:06:00 -06:00
Eevee (Evelyn Woods)
52bc2bdf8e Show the entire blast radius of dynamite 2024-04-12 01:08:16 -06:00
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)
65664bba7b Simplify dynamite spawn code 2024-04-11 02:24:34 -06:00
Eevee (Evelyn Woods)
d7e1b969e8 Fix this errant comma and shame myself 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)
f896e1bdfd Fix Lynx's no-backwards-overriding; remove the force-floor-on-arrive flag
Not sure the latter one is even correct at all; it completely breaks
ICEHOUSE, for one.  I guess it made more sense with the previous hacky
implementation of force floors applying at the start of the game.
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)
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)
2c95c7eacd Update MS compat so bugs and walkers still avoid fire (fixes #69) (nice) 2021-12-22 22:09:13 -07:00
Eevee (Evelyn Woods)
6d580af817 Use the inactive tile for electrified floors by default (fixes #67) 2021-12-22 21:25:01 -07:00
Eevee (Evelyn Woods)
4ebe5c1149 Preserve the color of sokoban blocks on cloning 2021-11-28 22:47:20 -07:00
Timothy Stiles
6f27332cce Cerise doesn't break cracked tiles (because she's dainty)
Teal Knight suggestion. It's a purely backwards compatible way to distinguish the two characters a little more, and fits her theme, but it's up to you.
2021-11-28 18:26:18 +11:00
Timothy Stiles
71abc13330 let any actor with a key unlock gates (unlike doors) 2021-11-20 12:57:58 +11: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
Timothy Stiles
42d543b235 fix an electric floor visual bug (fixes #80) 2021-11-18 18:35:06 +11:00
Timothy Stiles
94a7ec5a2c dropping 2 ankhs in a row shouldn't crash (fixes #79) 2021-11-18 18:27:28 +11:00
Eevee (Evelyn Woods)
51bc3dfe83 Add support for TW large tilesets, real MS tilesets, better tileset detection, and an attempted fix for CC1 thin wall tiles 2021-06-03 02:15:45 -06:00
Eevee (Evelyn Woods)
ca1a48c0fe Fix sokoban buttons to count being pressed at level start 2021-05-26 22:49:29 -06:00
Eevee (Evelyn Woods)
3752902663 Move gates to the canopy layer 2021-05-25 17:42:13 -06:00
Eevee (Evelyn Woods)
e8cb95a60b Fix double-ejecting from traps in Lynx 2021-05-11 17:39:19 -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)
af66a53b2b Fix ghosts switching railroad tracks 2021-05-08 17:51:56 -06:00
Eevee (Evelyn Woods)
172a8e8a6b Stick the buggy CC2 green teleport behavior behind a compat flag 2021-05-08 17:31:47 -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)
e45a580d1a Restore the template's facing after a failed wired clone
Also remove a hack for an edge case that's been fixed with the recent
changes to death handling.
2021-05-07 22:40:30 -06:00
Eevee (Evelyn Woods)
2b488b2d89 Disable lilypad/popwall effects when activating dynamite 2021-05-07 22:40:21 -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)
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)
49b691adde Allow yellow tanks into fire and rovers into more tiles 2021-05-03 21:38:42 -06:00
Eevee (Evelyn Woods)
5384561413 Add a new tile, the one-way thin wall 2021-03-13 18:05:13 -07:00
Eevee (Evelyn Woods)
3b257df8d3 Add sound effects for time items and early exit 2021-03-13 17:55:10 -07:00
Eevee (Evelyn Woods)
0b957cfeb1 Preserve wires when drawing a wireable tile in the editor; light switches don't propagate 2021-03-10 23:20:00 -07:00