Commit Graph

229 Commits

Author SHA1 Message Date
Timothy Stiles
86404dbc5b spontaneously appearing button/buttonable fixes 2021-02-14 22:07:20 +11:00
Timothy Stiles
7d36d09715 terraforming a new button/buttonable now connects it 2021-02-14 21:47:04 +11:00
Timothy Stiles
931f3c19c7 fix lit dynamite crash 2021-02-14 19:27:06 +11:00
Timothy Stiles
e699172b85 update static_on_tic_tiles when we transmute 2021-02-14 19:00:58 +11:00
Timothy Stiles
20dad5c76a Implement Boulder
Similar to a dirt block, but rolls when pushed. Boulders transfer momentum to each other. Has ice block/frame block collision. Turns into gravel in water. Spreads slime.
2021-02-14 18:38:56 +11:00
Timothy Stiles
f64302f324 Implement Cracked Ice
Cracked Ice: Turns into water when something steps off of it (except ghosts).
Also had to implement slide_ignores/item_slide_ignores since I needed a way to ignore static aspects of the tile without preventing its functions from being called. there's probably a better way IDK
2021-02-14 15:48:20 +11:00
Timothy Stiles
5cc5370817 Global Cyclers can cycle actors now too 2021-02-07 23:19:33 +11:00
Timothy Stiles
0100f1e12c spaceify 2021-02-06 16:07:40 +11:00
Timothy Stiles
ba5d6c966c Halo revive sound effect 2021-02-06 12:15:12 +11:00
Timothy Stiles
8ffc6e1127 implement the Halo
Protects the player from death once, destroying the would-be killer in the process.
2021-02-06 12:00:45 +11:00
Eevee (Evelyn Woods)
51acfc4353 Remove a hack for the old Lexy loop that's no longer necessary 2021-01-25 17:22:28 -07:00
Eevee (Evelyn Woods)
bf51cc2e0b Only "mmf" once per attempted move 2021-01-25 17:22:12 -07:00
Eevee (Evelyn Woods)
884d6d9164 Restore manually-saved doppelganger behavior, to make it work with undo 2021-01-25 12:29:18 -07:00
Eevee (Evelyn Woods)
0c774d343e Fix several renderer interpolation bugs 2021-01-22 09:12:02 -07:00
Eevee (Evelyn Woods)
134270e3e3 Add a couple CC1 compat flags 2021-01-20 14:45:30 -07:00
Eevee (Evelyn Woods)
75d7691925 Add some more sound effects 2021-01-20 13:42:27 -07:00
Eevee (Evelyn Woods)
6a2d6d608d Disable animation on inactive red teleporters and transmogrifiers (fixes #28) 2021-01-16 20:53:30 -07:00
Eevee (Evelyn Woods)
5ab45b95c6 Prevent blowing up the same block twice in one tic, take two 2021-01-14 00:51:20 -07:00
Eevee (Evelyn Woods)
6e7338a214 Prevent blowing up the same block twice in one tic 2021-01-14 00:47:44 -07:00
Eevee (Evelyn Woods)
a91e1a831e Track best score/clock/time separately; add a summary row to the level browser 2021-01-13 22:49:34 -07:00
Eevee (Evelyn Woods)
3aec2b1fe6 Spruce up stock pack list with previews, progress bar 2021-01-13 21:49:01 -07:00
Eevee (Evelyn Woods)
62eb4dc4bd Remove the old Lexy-mode hack that only existed to try to make CC1 sync 2021-01-13 02:01:04 -07:00
Eevee (Evelyn Woods)
ed814cbf60 Add a compat flag for the MSCC ice patch behavior 2021-01-13 01:55:04 -07:00
Eevee (Evelyn Woods)
1650a3fc94 Add new, smoother pulling behavior as the Lexy default 2021-01-13 01:46:47 -07:00
Eevee (Evelyn Woods)
b6ed3b6502 Change the Lexy loop to be more Lynx-like
This simplifies the renderer by having movement cooldowns only work one
way, and thus removes the jank from Steam rendering.

This commit also applies cooldowns for animations at decision time, as
Lynx does, which eliminates a weird special case from their spawning.

Also, Lexy mode now explicitly does not allow an actor to get cooled
twice in one tic.  However, this change does make clone machines no
longer be aligned with the thing that pressed the button to clone them,
which is unfortunate.
2021-01-13 01:34:08 -07:00
Eevee (Evelyn Woods)
b4acc74e0a Explicitly allow VFX to erase other VFX (otherwise undo breaks!) 2021-01-10 14:44:23 -07:00
Eevee (Evelyn Woods)
c6594712df Play the floor step sound by default 2021-01-08 16:28:52 -07:00
Eevee (Evelyn Woods)
30c17c0c8b Fix undo failure after being killed by a cloner; ensure the failure reason is assigned to the right player 2021-01-08 15:16:25 -07:00
Eevee (Evelyn Woods)
c162445627 Always play the get-chip sound 2021-01-06 22:58:54 -07:00
Eevee (Evelyn Woods)
0ba112aec5 Don't gripe about VFX erasing each other; that's a feature 2021-01-05 21:04:09 -07:00
Eevee (Evelyn Woods)
04e350b624 Fix released key detection 2021-01-05 21:03:53 -07:00
Eevee (Evelyn Woods)
5c1b2dbd9d Update hint when switching players; parse the keybind placeholders 2021-01-05 20:44:11 -07:00
Eevee (Evelyn Woods)
a72ec8c476 Fix undoing dropping a bowling ball; make bowling balls explode at level edge 2021-01-03 19:31:59 -07:00
Eevee (Evelyn Woods)
6fc4f6b58f Change StoredCell to also be layered, and update the editor to match 2021-01-03 17:44:16 -07:00
Eevee (Evelyn Woods)
323ed3ee18 Refactor to using cells with fixed slots
This better matches CC2 behavior and also makes some very common
operations, like grabbing a cell's actor or terrain, way faster.

It also allows me to efficiently implement CC2's layer order when
checking for collisions; thin walls are checked before terrain, and
actors only afterwards.  The upshot is that bowling balls no longer
destroy stuff on the other side of a thin wall!

I also did some minor optimizing, mostly by turning loops over an entire
cell's contents into checks for a single layer; Chromium now performs a
bulk test about 30% faster.

Downsides of this change:
- All kinds of stuff may have broken!
- It'll be a little difficult to ever emulate MSCC's curious behavior
  when stacking terrain on top of items or other terrain.  But not
  impossible.
- It'll be far more difficult to emulate buggy Lynx (or maybe it's just
  Tile World?) behavior where some combination of cloners and teleports
  allow a ton of monsters to accumulate in a few cells.  I guess I
  wasn't planning on doing that anyway.
2021-01-03 17:19:27 -07:00
Eevee (Evelyn Woods)
cff756597c Fix a few places where two tiles on the same layer could coexist in a cell 2021-01-03 15:18:53 -07:00
Eevee (Evelyn Woods)
fe7731efe7 Fix minor issues: ghosts don't affect popwalls, voodoo tiles shouldn't crash, on_bump is unused 2021-01-03 14:06:41 -07:00
Eevee (Evelyn Woods)
c6c3ff2d71 Fix losing slide mode when teleporting on a yellow teleport you just dropped 2021-01-03 14:06:04 -07:00
Eevee (Evelyn Woods)
0e1bd91075 Add a bunch more sound effects 2021-01-03 13:07:15 -07:00
Eevee (Evelyn Woods)
6446a4654b Fix the order of operations for slide mode, again
This fixes an obscure bug where you could redirect a block that was in
the process of sliding off of ice onto floor, because its slide mode had
not yet been cleared.
2021-01-02 23:47:49 -07:00
Eevee (Evelyn Woods)
656d124c89 Fix a crash when blowing up a pink button 2021-01-02 17:42:07 -07:00
Eevee (Evelyn Woods)
4454970564 Split up the Steam loop into begin/finish parts to match what turn-based mode expects 2020-12-31 18:01:40 -07:00
Eevee
f0cd4d3c5a
Merge pull request #22 from Patashu/master
fix turn-based mode
2020-12-31 17:23:24 -07:00
Eevee (Evelyn Woods)
d700561c0f Add a cursor to the editor 2020-12-30 11:52:27 -07:00
Timothy Stiles
f6a79456e9 fix turn-based mode 2020-12-30 13:01:01 +11:00
Eevee (Evelyn Woods)
6b0bb9cb3d Prevent pushing a block that's already moving due to a slide push 2020-12-29 12:30:08 -07:00
Eevee (Evelyn Woods)
c475500bdb Add in a single-tic delay after a failed teleport 2020-12-29 11:42:41 -07:00
Eevee (Evelyn Woods)
819a2e2203 Make actors bonk on ice even if they weren't already sliding 2020-12-29 10:16:10 -07:00
Eevee (Evelyn Woods)
6c99752f37 Allow the hook to block monster movement at decision time 2020-12-29 09:03:40 -07:00
Eevee (Evelyn Woods)
41ab804f79 Prevent blocks from pushing sliding blocks, except frame blocks pushing dirt blocks 2020-12-29 08:30:55 -07:00