Timothy Stiles
1bd165ad35
fix various Circuit Block cases
2021-02-15 15:37:03 +11:00
Timothy Stiles
dfb31207ba
remove 'transmuted connectable connects buttons to it' mechanic
2021-02-15 14:22:13 +11:00
Timothy Stiles
4097aa6e84
runtime circuit updates - Circuit Block works once more
2021-02-14 23:02:23 +11:00
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)
b97f99cbaf
Fix Lexy loop to update wiring thrice per tic, not twice
2021-02-04 21:43:31 -07:00
Eevee (Evelyn Woods)
54d38527f2
Disallow taking yellow teleporters if the level only started with one ( fixes #30 )
2021-02-04 21:09:01 -07:00
Eevee (Evelyn Woods)
d8ac50efa9
Implement the CC1 inventory
2021-02-01 22:06:34 -07: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
Eevee (Evelyn Woods)
63f09283ea
Make actors explode when starting the level on a bomb
2020-12-29 07:21:18 -07:00
Eevee (Evelyn Woods)
0561e15d0a
Move hooking to decision time while fixing the swivel following problem
2020-12-29 07:04:55 -07:00
Eevee (Evelyn Woods)
2c1d047f4b
Don't let animations block actors with helmets
2020-12-28 15:03:40 -07:00
Eevee (Evelyn Woods)
f6f83a45f1
Add a teleport flash
2020-12-28 14:21:28 -07:00
Eevee (Evelyn Woods)
b72e20a4a5
Round the bonus down when halving it
2020-12-27 18:26:49 -07:00
Eevee (Evelyn Woods)
a2914cc291
In Lynx update mode, only tick an actor's cooldown after an extra move if that move succeeded
2020-12-27 17:32:55 -07:00
Eevee (Evelyn Woods)
2c9fbbba50
Make ghosts bonk on ice corners too
2020-12-27 09:32:37 -07:00
Eevee (Evelyn Woods)
b9f31b4170
Attempt to fix the swap button flickering like mad
2020-12-27 08:51:12 -07:00
Eevee (Evelyn Woods)
1fc8e35843
Run on_ready in reverse order, mostly so initial RFF directions are correct
2020-12-27 08:33:03 -07:00
Eevee (Evelyn Woods)
66ca5f5fff
Prevent pickup up a fifth tool when unable to drop one (because it's a yellow teleport and you're not on floor)
2020-12-27 08:05:38 -07:00
Eevee (Evelyn Woods)
f30b9b34dd
Prevent bumping tiles in a cell that's blocked by thin walls
2020-12-27 08:05:03 -07:00
Eevee (Evelyn Woods)
bf952433f1
Allow anything to pull blocks with the hook
2020-12-27 07:41:11 -07:00
Eevee (Evelyn Woods)
6ab3ff9b0b
Fix treating a tile as wired if it had an adjacent wire with a tunnel running under it
2020-12-27 07:32:28 -07:00
Eevee (Evelyn Woods)
4e5b2f02d9
Make yellow tanks remember a yellow button press made while they were sliding
2020-12-27 07:20:33 -07:00
Eevee (Evelyn Woods)
6470575a7b
Populate movement_cooldown for lit dynamite; guard against NaNs; check for moving blocks in bump mode
2020-12-27 05:41:03 -07:00
Eevee (Evelyn Woods)
c7815ba841
Move teleporter overriding to decision time; treat teleporting as a kind of slide; decouple speed from sliding
2020-12-27 05:40:06 -07:00
Eevee (Evelyn Woods)
adb0c4c869
Fix the search radius for orange buttons
2020-12-26 04:34:24 -07:00
Eevee (Evelyn Woods)
059a523347
Make ghosts erase fire even if they just got the boots from the same cell
2020-12-26 04:23:23 -07:00
Eevee (Evelyn Woods)
ab22c6ff3f
Fix actors trying to reverse when bonking on normal force floors
2020-12-26 03:41:58 -07:00
Eevee (Evelyn Woods)
9c2809be29
Fix interpolation after the tic -> frame change
2020-12-26 03:41:35 -07:00
Eevee (Evelyn Woods)
0500518537
Move sliding back to arrive time, but force floor bonking to movement time
2020-12-26 03:15:00 -07:00
Eevee (Evelyn Woods)
0bb3f78a33
Give flame jets their own mini-pass
2020-12-26 02:03:39 -07:00
Eevee (Evelyn Woods)
86bf90ee89
Don't let the last player walk back out of the exit
2020-12-24 10:18:45 -07:00
Eevee (Evelyn Woods)
019f6a78bc
Move hook-pulling code to fix several ordering issues
2020-12-24 09:29:25 -07:00
Eevee (Evelyn Woods)
d567a2553e
Disallow pulling unpushable blocks; play a sound on bowling ball collision
2020-12-24 06:55:50 -07:00
Eevee (Evelyn Woods)
1a7dc3e737
Implement a couple more compat flags and fix some typos with the dialog
2020-12-24 06:30:22 -07:00
Eevee (Evelyn Woods)
2381bd38b9
Add compat switches for using the CC2 timing and update order
...
Other gameplay changes/fixes that crept in:
- Ghosts no longer pick up red keys
- Doppelgangers now read their movement directly from players, so no
intermediate variables are necessary
- Spring mining is no longer possible
- Push recursion is detected and prevented
- Bowling balls will also blow up anything that runs into them
2020-12-23 04:30:10 -07:00
Eevee (Evelyn Woods)
1aa406fc7b
Move sliding effects to decision time
2020-12-21 03:50:03 -07:00
Eevee (Evelyn Woods)
bf743caee5
Fix regression with dropping items on force floors
2020-12-21 00:34:31 -07:00
Eevee (Evelyn Woods)
6ea46c238c
Fix doppelganger moves lingering after a player switch/transmog
2020-12-21 00:29:14 -07:00
Eevee (Evelyn Woods)
42dd4b9ce6
Make ghosts with fire boots erase fire and blobs not move between canopies
2020-12-21 00:21:32 -07:00
Eevee (Evelyn Woods)
151f66a0fb
Make blobs spread slime onto floor
2020-12-21 00:05:12 -07:00
Eevee (Evelyn Woods)
b0aeee6ff0
Allow swapping and cycling even while sliding
2020-12-21 00:04:51 -07:00
Eevee (Evelyn Woods)
74eaab3fde
Allow disabling undo for circuitry, too
2020-12-19 21:21:28 -07:00
Andrew Ekstedt
8986a497fd
Disable undo during bulk testing
...
Undo generates a lot of garbage. Faster not to.
CC1 bulk test on my laptop:
Firefox 77 speeds up from 61s to 41s
Chrome barely moves, from 34s to 28s
2020-12-19 19:12:28 -08:00
Eevee (Evelyn Woods)
a413d1afc2
Fix bowling balls to start rolling immediately
2020-12-19 19:25:32 -07:00
Eevee (Evelyn Woods)
86c4561647
Add a basic implementation of the hook
2020-12-19 18:43:30 -07:00
Eevee (Evelyn Woods)
f6bf33274f
Fix some collision issues with ghosts and timing of dynamite
2020-12-19 18:24:30 -07:00
Eevee (Evelyn Woods)
aa0bb5cbc2
Bowling balls still blow up actors when sliding
2020-12-19 17:33:26 -07:00
Eevee (Evelyn Woods)
148beb7d74
Implement all-players-exit behavior; touch up locks, buttons, logic gates; fix demo saving
2020-12-19 17:16:50 -07:00
Eevee (Evelyn Woods)
78f59b38c1
Rewrite wiring code and fix basically all issues with it; faster, undoable, etc.
2020-12-18 19:58:12 -07:00
Eevee (Evelyn Woods)
48f085d0df
Remove Level.cells in favor of linear_cells
2020-12-17 15:51:57 -07:00
Eevee (Evelyn Woods)
7e262feeb6
Delete some old code
2020-12-16 21:24:03 -07:00
Eevee (Evelyn Woods)
6aed1fa38e
Improve rotation of frame blocks on railroads
2020-12-16 21:23:37 -07:00