Commit Graph

859 Commits

Author SHA1 Message Date
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
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)
56611958f7 Draw actor facing directions in the editor (fixes #38) 2021-03-10 20:47:07 -07:00
Eevee (Evelyn Woods)
28a26cdc14 Add modification tracking to the editor and wire it into undo/redo 2021-03-10 20:28:26 -07:00
Eevee (Evelyn Woods)
9c5b241cae Add editor keyboard shortcuts for select all and deselect all 2021-03-10 19:27:49 -07:00
Eevee (Evelyn Woods)
58deed916c Add editor keyboard shortcuts for undo and selecting (some) tools 2021-03-10 19:19:08 -07:00
Eevee (Evelyn Woods)
a0f282fb8e Add mouse preview to the editor; implement the fill tool 2021-03-10 19:08:19 -07:00
Eevee (Evelyn Woods)
14d9c8ade9 Intercept and report syntax errors 2021-03-10 16:37:16 -07:00
Eevee (Evelyn Woods)
63609ba77e Fix a few more Lynx compat issues 2021-03-08 23:53:52 -07:00
Eevee (Evelyn Woods)
2dcd73d44a Fix loading of initial RFF direction from Tile World solutions 2021-03-08 21:33:03 -07:00
Eevee (Evelyn Woods)
dd10236b22 Implement "hide logic", and actually save options (fixes #52) 2021-03-08 21:04:23 -07:00
Eevee (Evelyn Woods)
028fc016b0 Add an ankh description in the editor 2021-03-08 20:16:14 -07:00
Eevee (Evelyn Woods)
48806a3dfd Fix canopies being indestructible 2021-03-08 20:15:55 -07:00
Eevee (Evelyn Woods)
e8f82d885f Add a compat flag for the cloned bowling ball change 2021-03-08 20:06:02 -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)
2cf6afa590 Slow down force floors and animated chips slightly 2021-03-08 18:53:36 -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)
c6c904ca68 Abandon the .mjs naming scheme
Browsers refuse to load a JS module if the mimetype is wrong, and even
Python's http.server doesn't recognize this extension yet.
2021-03-07 18:06:42 -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)
59d26e6a00 Add a vfx for falling into a hole 2021-03-07 00:56:11 -07:00
Eevee (Evelyn Woods)
662787c287 Add palette support for sokoban tiles 2021-03-07 00:46:01 -07:00
Eevee (Evelyn Woods)
e69ac492c7 Remove the item lock tile 2021-03-07 00:43:56 -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)
f8e4b5e707 Fix rendering jump when reaching the exit; fix debug teleport drawing 2021-03-06 22:33:58 -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
Eevee (Evelyn Woods)
fbe10e90a2 Fix p >= 1 in steam-strict, again 2021-03-06 19:01:45 -07:00
Eevee (Evelyn Woods)
26c66d6857 Make animations explicit, and fix almost every rendering problem
- `Tileset.animation_slowdown` is gone!
- Actors are now free to animate every move or every two moves, and have
  been configured to do so appropriately.  This fixes the appearance of
  blobs, most noticeably.  (Also fixes #36.)
- Actors that are always animated in CC2 are now always animated in LL.
- Lilypads/turtles now bob randomly.  More randomly than CC2, even.
- Players no longer appear to be swimming when stepping off of lilypads.
- Invisible walls no longer temporarily reveal themselves when you have
  the x-ray glasses (secret eye).
- There's a new option for using the CC2 animation timing, though god
  knows why you would want to.
2021-03-06 18:41:49 -07:00
Eevee (Evelyn Woods)
8533eac5db Fix the name of the compat mode on page load 2021-03-06 14:38:27 -07:00
Eevee (Evelyn Woods)
55a3daa649 Quiet distant sound effects much more aggressively 2021-03-06 14:34:03 -07:00
Eevee (Evelyn Woods)
1f2a58d21c Add support for headless bulk testing 2021-03-06 12:39:16 -07:00
Eevee (Evelyn Woods)
4c9afe5a9f Fix some typos in the new LL tile layout 2021-03-05 13:55:07 -07:00
Eevee (Evelyn Woods)
be275d380d Add a bunch of Lynx compat options 2021-03-05 13:54:38 -07:00
Eevee (Evelyn Woods)
a750a569ab Fix my fix for ?., which broke a couple levels 2021-03-04 14:58:10 -07:00
Eevee (Evelyn Woods)
fae19ab37b Allow monsters to pass through chips in order to kill a player 2021-03-04 13:50:19 -07:00
Eevee (Evelyn Woods)
b7e05f2eb9 Fix backwards trap tiles 2021-03-04 13:38:40 -07:00
Eevee (Evelyn Woods)
459e71e632 Allow using a custom LL tileset 2021-03-02 21:47:27 -07:00
Eevee (Evelyn Woods)
821bc4201f Unhardcode the placement of counter numbers on the tilesheet 2021-03-02 21:46:57 -07:00
Eevee (Evelyn Woods)
4cb2afcc74 Avoid the very new ?. syntax (fixes #56) 2021-03-02 21:38:31 -07:00
Eevee (Evelyn Woods)
5443514583 Revert handling of negative animation time, which should never happen 2021-03-02 21:34:28 -07:00
Eevee (Evelyn Woods)
e3443b73d8 Correctly erase the background when loading a custom CC2 tileset 2021-03-02 21:33:42 -07:00
Eevee (Evelyn Woods)
751b6b92c3 Rearrange the Lexy tileset 2021-03-02 21:33:42 -07:00
Timothy.Stiles
e4ce9d0bcc glass block-with-item can't move onto a tile with an item in it 2021-03-03 14:15:17 +11:00
Timothy.Stiles
6971eb4d54 dynamite vs electrified floor, holes and cracked floor (60 partial fix) 2021-03-03 14:10:44 +11:00
Timothy.Stiles
ee718323cd glass block blown up by dynamite/halo drops its item (fixes #62) 2021-03-03 13:51:25 +11:00
Timothy.Stiles
094e94a69c for fun, let glass blocks pick up chips; let's see what happens? 2021-03-03 13:33:13 +11:00
Timothy.Stiles
7c35782079 fix glass blocks vs mines and pseudo-items (fixes #63, 59) 2021-03-03 13:25:46 +11:00
Timothy.Stiles
4037cdf86b don't crash in _draw_standard if p < 0 (fixes #58) 2021-03-03 13:04:55 +11:00
Eevee (Evelyn Woods)
406243d490 Fix green teleporter selection behavior 2021-03-01 21:09:10 -07:00
Eevee (Evelyn Woods)
d5b9a2a307 Change flame jet activation to be actor-based
This fixes CC2LP1's Waterfall, and allows me to remove `on_tic`.
2021-03-01 20:21:59 -07:00
Eevee (Evelyn Woods)
5fcce3f453 Delay black buttons by a frame, like switches (fixes #48) 2021-03-01 18:46:27 -07:00
Eevee (Evelyn Woods)
0119f45d54 Name compat flags more consistently; add a couple; flip sliding blue tank behavior 2021-03-01 18:04:23 -07:00
Eevee (Evelyn Woods)
3359c21387 Consolidate some repeated tile properties 2021-03-01 14:28:56 -07:00
Eevee (Evelyn Woods)
a294338080 Implement some more properties of lit dynamite 2021-03-01 14:06:21 -07:00
Eevee (Evelyn Woods)
0d59ffef85 Implement item priority (fixes #37 #50 #51)
Also expand the blue key MS compat flag to make keys never block
monsters; allow rovers to pass through score flags; and allow
doppelgängers to pause the clock.
2021-03-01 13:13:01 -07:00
Eevee (Evelyn Woods)
fbd256c876 Fix playing the wall bump sound repeatedly in steam mode (fixes #49) 2021-02-28 18:52:51 -07:00
Eevee (Evelyn Woods)
3bc6aa9c7d Fix a crash with slide_ignores when using the CC1 inventory 2021-02-28 18:36:59 -07:00
Eevee (Evelyn Woods)
0ca0467192 Perform bonking for normal force floors as well, which fixes several subtle block pushing issues 2021-02-28 18:31:08 -07:00
Eevee
e8a6ae4a27
Merge pull request #41 from Patashu/custom-tiles
Custom tiles: Terraformer and Global Cycler
2021-02-25 20:45:22 -07:00
Timothy Stiles
b74ce300e5 fix ice block/fireball interaction 2021-02-21 10:23:38 +11:00
Timothy Stiles
ac008e9564 fix a speed boots regression 2021-02-21 10:13:30 +11:00
Timothy Stiles
4ee724030c Implement Glass block
Similar to a dirt block, but stores the first item it moves over, dropping it when destroyed and cloning it in a cloning machine. Has ice block/frame block collision. Turns into floor in water. Doesn't have dirt block immunities.
2021-02-19 18:21:29 +11:00
Timothy Stiles
e30fd1e5fd remove some other terraformer remnants 2021-02-19 09:25:53 +11:00
Timothy Stiles
c463b83ce1 oops one more fire_sticks mention 2021-02-19 08:54:11 +11:00
Timothy Stiles
c7af08b694 nix global cycler, terraformer and dormant lava 2021-02-19 08:48:21 +11:00
Eevee (Evelyn Woods)
3946880156 Add slide_mode to debug actor tooltip 2021-02-18 11:37:20 -07:00
Timothy Stiles
3ea7a045da revamp electric floor, perf improvement for circuitry recalculation
Now reads:
Conducts power (like a 4-way wire). While powered, destroys anything not wearing lightning boots (except dirt blocks)
And when you step on it with lightning boots it conducts power
And it's not on by default if it's just sitting on its own somewhere
2021-02-16 17:18:49 +11:00
Timothy Stiles
e866710af6 turntables can have wires run to them like blue teles 2021-02-16 16:44:38 +11:00
Timothy Stiles
5551e546de oops fix crash 2021-02-16 16:29:43 +11:00
Timothy Stiles
62a3ed99aa Implement Blue teleporter exit
A blue teleporter for all intents and purposes except it can only be exited, not entered.
2021-02-16 16:21:12 +11:00
Timothy Stiles
b7cedc2426 refactor speed shoes so they stack with dash floor/sand instead of overriding 2021-02-16 15:59:34 +11:00
Timothy Stiles
e0004fb840 Implement Dash Floor
Anything walking on it moves at double speed.
2021-02-16 15:10:05 +11:00
Timothy Stiles
3d21277593 spaceify 2021-02-16 13:09:17 +11:00
Timothy Stiles
4943759cd3 wireables wire/unwire whenever circuitry recalculates
e.g.
move a circuit block pointing to a transmogrifier: the transmogrifier stops moving unless it's powered
move it away: it goes back to always-on behaviour
2021-02-16 13:06:45 +11:00
Timothy Stiles
946a889159 terraformers terraforming extended terrain properties 2021-02-16 12:52:07 +11:00
Timothy Stiles
e60423e8c0 oh add_press_ready can happen before OR after on_begin, that's annoying
I'll just have to make it so transmuting a trap to non-trap then back to trap might leave it in a weird amount-of-presses state if you do Shenanigans until I can think of a better solution
2021-02-16 12:31:52 +11:00
Timothy Stiles
64e51d6a62 creating a powerable recalculates circuitry 2021-02-16 12:21:27 +11:00
Timothy Stiles
a73c34e576 traps remember their prior press count through transmutes 2021-02-15 21:39:33 +11:00
Timothy Stiles
8cbba99c0c Implement Item Lock
When placed atop an item, you must have that item to enter the tile. When you do, pay the item and destroy the item lock. Also can be placed on top of a bonus, and you must pay that amount of bonus to enter.
2021-02-15 21:27:56 +11:00
Timothy Stiles
9e2575cae4 handle circuit block undoing pretty well 2021-02-15 15:59:28 +11:00
Timothy Stiles
1bd165ad35 fix various Circuit Block cases 2021-02-15 15:37:03 +11:00
Timothy Stiles
3c6bff77d6 re-arrange experimental tab in a more natural order 2021-02-15 14:25:08 +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
dddde89b03 fix a transmute-to-force-floor time travel bug 2021-02-14 22:15:05 +11:00
Timothy Stiles
456ebc334b circuit blocks make wired floor in water 2021-02-14 22:10:30 +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
11747f0d6e Implement Diode
Emits power only when receiving power. (Effectively, this delays power by one frame.)

Also I made it so circuit blocks clone properly
2021-02-14 19:54:53 +11:00
Timothy Stiles
931f3c19c7 fix lit dynamite crash 2021-02-14 19:27:06 +11:00
Timothy Stiles
d6e43a70ca fix ice skates/ice corners regression 2021-02-14 19:13:55 +11:00
Timothy Stiles
e699172b85 update static_on_tic_tiles when we transmute 2021-02-14 19:00:58 +11:00
Timothy Stiles
42560626bf fix Global Cycler / Frame Block bug 2021-02-14 18:45:42 +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
7bcb1ac018 Implement Spikes
Stops players (and doppelgangers) unless they have hiking boots. Everything else can pass.
2021-02-14 17:04:21 +11:00
Timothy Stiles
dece34f365 implement x5 Bonus
also make it so bonuses of 1mil+ are rendered reasonably in-game
(100bil+ starts breaking the results screen but I think that's lower priority)
2021-02-14 16:43:59 +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
c27af789cb Implement Hole and Cracked Floor
Hole: A bottomless pit. Destroys everything (except ghosts).
Cracked Floor: Turns into a hole when something steps off of it (except ghosts).
2021-02-14 15:12:21 +11:00
Timothy Stiles
1f6c86c146 Implement Electrified Floor
Conducts power (like a blue teleporter). While powered, destroys anything not wearing lightning boots (except dirt blocks).
2021-02-14 14:22:28 +11:00
Timothy Stiles
5cc5370817 Global Cyclers can cycle actors now too 2021-02-07 23:19:33 +11:00
Timothy Stiles
f79a8cc259 no idea how this was even working still lmao 2021-02-07 21:58:10 +11:00
Timothy Stiles
1040646393 implement the Turntable
Rotates anything entering this tile (counter)clockwise. Frame blocks are rotated too. If connected to wire, only functions while receiving power.
2021-02-07 21:47:52 +11:00
Timothy Stiles
76c34007a2 global cyclers don't attempt to turn terrain into global cyclers 2021-02-07 11:25:19 +11:00
Timothy Stiles
7c306e2234 make global cyclers immune to cycling too 2021-02-07 10:52:18 +11:00
Timothy Stiles
19354bf5cf global cycler no longer wraps 2021-02-07 10:37:42 +11:00
Timothy Stiles
bd2364cbff flip a boolean 2021-02-07 10:26:27 +11:00
Timothy Stiles
e63544ec55 fix saving 2021-02-07 10:14:18 +11:00
Timothy Stiles
477cf804af terraformer no longer overrides items 2021-02-07 10:02:53 +11:00
Timothy Stiles
4f0ff2b346 Terraformer alt behaviour when it has an item on top
When activated, if there's an item on its tile, copies the item to the tile in front of it. Otherwise, copies the item AND terrain BEHIND it to the tile in front of it.
2021-02-06 23:08:39 +11:00
Timothy Stiles
0100f1e12c spaceify 2021-02-06 16:07:40 +11:00
Timothy Stiles
e134b4cbd9 Implement the Dormant Lava
Acts like dirt. However, fireballs will enter it and turn it into Fire in the process.
2021-02-06 16:07:10 +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
Timothy Stiles
4b63b4f65f global cyclers don't cycle ANY global cycler's surrounding tiles 2021-02-05 16:15:53 +11:00
Timothy Stiles
81fd712adc global cyclers don't cycle their surrounding tiles, just everythng else 2021-02-05 15:49:42 +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
Timothy Stiles
bddde32325 implement the Global Cycler
When activated, every terrain/item on the surrounding four tiles in the entire level becomes the terrain/item one clockwise. Adjacent tiles with a 'no sign' on them are ignored. Two of the same tile in a row mean that tile will not be transformed and will stay as-is.
2021-02-05 15:26:00 +11: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
Timothy Stiles
9b76c6b9ce implement the Terraformer
The Terraformer is like a clone machine for everything that isn't an actor. It copies the terrain (and item) behind it to in front of it when powered.
2021-02-05 14:41:11 +11:00
Eevee (Evelyn Woods)
c7012f2565 Allow simple item bestowal when facing the level edge, too 2021-02-04 20:34:53 -07:00
Eevee (Evelyn Woods)
d5fd7b546d Fix ghosts to not detonate green mines 2021-02-01 22:46:08 -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)
b87ce730f2 Don't blow up players that start on mines by default; fixes CCLP4 #38 2021-01-25 16:54:09 -07:00
Eevee (Evelyn Woods)
acfad66974 Add undo/redo support to the editor 2021-01-25 15:26:56 -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)
0b6ea68a7b Fix rendering of crossed wires 2021-01-22 09:30:12 -07:00
Eevee (Evelyn Woods)
0c774d343e Fix several renderer interpolation bugs 2021-01-22 09:12:02 -07:00
Eevee (Evelyn Woods)
69a344595c Fix hints lingering forever 2021-01-22 08:46:23 -07:00
Eevee (Evelyn Woods)
54823f62bf Add some more actor inspection to debug mode 2021-01-22 08:37:14 -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)
652e7e8108 Show time improvement on the level tally 2021-01-20 12:36:02 -07:00
Eevee (Evelyn Woods)
d21bfd4601 Fix a typo when moving levels 2021-01-20 12:00:47 -07:00
Eevee (Evelyn Woods)
7cb2d949db Clarify flame jet tooltips 2021-01-20 12:00:37 -07:00
Eevee (Evelyn Woods)
ff33c42cc2 Keep the editor's level browser dialog around, and render previews faster
It's kind of annoying to watch the previews flicker into existence anew
every time you open the dialog, if you're working on several levels at a
time.
2021-01-20 11:59:29 -07:00
Eevee (Evelyn Woods)
1e38ccdc30 Fix door collision to act like dirt and not check has_inventory (fixes #29) 2021-01-17 23:21:12 -07:00
Eevee (Evelyn Woods)
32a5bc31bb Fix dynamite leaving fire under actors beneath canopies (fixes #27) 2021-01-16 20:56:16 -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)
5653fc9c12 Change the "more" link text to bypass Vivaldi's fast forward feature 2021-01-16 02:58:11 -07:00
Eevee (Evelyn Woods)
b9037c1ce1 Remember last opened level in editor; prevent deleting the current level 2021-01-16 02:50:52 -07:00
Eevee (Evelyn Woods)
ac9b702eaa Add controls for rearranging, duplicating, and deleting levels 2021-01-16 01:45:57 -07:00
Eevee (Evelyn Woods)
f89cccedb2 Pin the fflate version; 0.5.3 is unusable 2021-01-14 04:35:08 -07:00
Eevee (Evelyn Woods)
cf72daacbe Checkpoint some minor editor bits 2021-01-14 00:53:54 -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