Commit Graph

932 Commits

Author SHA1 Message Date
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
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)
570fad84ab Fix the player not being all the way on the exit when winning 2021-01-13 23:48:24 -07:00
Eevee (Evelyn Woods)
788e4ec3bc Fix spacebar at the end of a level skipping the title screen for the next level 2021-01-13 23:43:54 -07:00
Eevee (Evelyn Woods)
fcab03f1d1 Fix some nits with the level browser header 2021-01-13 22:52:57 -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)
22f78f171c Fix counting of aidless levels; remove total_time 2021-01-13 22:12:53 -07:00
Eevee (Evelyn Woods)
5df34712b6 Plurals 2021-01-13 21:56:34 -07:00
Eevee (Evelyn Woods)
db9ef8e51d Show something useful for old save files 2021-01-13 21:51:25 -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)
bb7c468174 Finish special-ization of tileset defs; add depressed versions of buttons 2021-01-13 03:33:43 -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)
0f6f912055 Fix spacebar being eaten by Vivaldi, and repeated arrow keys causing scrolling 2021-01-11 18:10:34 -07:00
Eevee (Evelyn Woods)
602f16be8c Update auto-scaling to match new DOM; introduce a landscape layout with more vertical space 2021-01-11 18:06:09 -07:00
Eevee (Evelyn Woods)
83f0ac9813 Always update the total levels in a pack when saving scores 2021-01-11 01:34:14 -07:00
Eevee (Evelyn Woods)
73fff50a00 Reduce the amount of mmfing allowed in a row 2021-01-11 01:34:04 -07:00
Eevee (Evelyn Woods)
2f9b0c1154 Add obituaries for CC2 monsters, and give existing causes a few more 2021-01-11 01:33:52 -07:00
Eevee (Evelyn Woods)
dfed3f2db9 Fix copied floated selections being entangled 2021-01-11 01:30:16 -07:00
Eevee (Evelyn Woods)
fbf3cb5ae2 Add a WIP version of Lexy's Lessons as a canon pack 2021-01-11 00:57:50 -07:00
Eevee (Evelyn Woods)
c2ed444ca0 Fix the drawing of copying a floating selection 2021-01-11 00:23:18 -07:00
Eevee (Evelyn Woods)
6a6a3a212e Show time and level count in the splash's list of editor packs 2021-01-11 00:17:40 -07:00
Eevee (Evelyn Woods)
a2ec070a32 Play an explosion sound when a flame jet destroys something 2021-01-10 14:45:00 -07:00
Eevee (Evelyn Woods)
9efe3d00ef Fix perception 2021-01-10 14:44:42 -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)
fb1e749a28 Fix a couple places the editor wasn't redrawing 2021-01-10 14:38:37 -07:00
Eevee (Evelyn Woods)
69296dff67 Make ending more readable, less CPU-heavy 2021-01-09 12:46:43 -07:00
Eevee (Evelyn Woods)
723af175cb Add ending artwork 2021-01-09 03:05:50 -07:00
Eevee (Evelyn Woods)
bfacde7525 Do something vaguely interesting when the game ends 2021-01-08 22:38:48 -07:00
Eevee (Evelyn Woods)
e64a553365 Add a focus trap for overlays, and close them with Esc 2021-01-08 22:00:59 -07:00
Eevee (Evelyn Woods)
246ef468de Fix rendering of tiles above the actor layer 2021-01-08 17:57:04 -07:00
Eevee (Evelyn Woods)
c6594712df Play the floor step sound by default 2021-01-08 16:28:52 -07:00
Eevee (Evelyn Woods)
8f40f575bf Introduce a DrawPacket to consolidate draw arguments; fix blurriness of double-size monsters 2021-01-08 16:28:08 -07:00
Eevee (Evelyn Woods)
c60158cc47 Ensure ghosts can never drown 2021-01-08 15:47:39 -07:00
Eevee (Evelyn Woods)
fc6b7472b6 Fix some subtle issues with changing tilesets twice in one session 2021-01-08 15:31:25 -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)
560fd93c8b Reveal popdown floors when there's an item on them, too 2021-01-08 15:01:30 -07:00
Eevee (Evelyn Woods)
67c53f97dd Show the level title and author (if available) on start 2021-01-07 18:18:51 -07:00
Eevee (Evelyn Woods)
cc48136d94 Fix the editor's force floor tool 2021-01-07 18:00:29 -07:00
Eevee (Evelyn Woods)
7ceab97472 Fix the editor's partial redrawing; place popup editors by bbox, not mouse position 2021-01-07 17:55:11 -07:00
Eevee (Evelyn Woods)
f389f4d027 Fix disabling the next-level button 2021-01-07 14:01:24 -07:00
Eevee (Evelyn Woods)
c162445627 Always play the get-chip sound 2021-01-06 22:58:54 -07:00
Eevee (Evelyn Woods)
f788f7a892 Apply a quick hack to fix ?level URLs being blank 2021-01-06 19:09:57 -07:00
Eevee (Evelyn Woods)
f35da9cc2b Finally populate the options dialog, with volume controls and tileset selection 2021-01-06 19:04:28 -07:00
Eevee (Evelyn Woods)
04940ff42c Finally fix display of long hints 2021-01-05 23:46:00 -07:00
Eevee (Evelyn Woods)
a7310cf59b Fix bad editor state caused by copying a selection 2021-01-05 22:38:05 -07:00
Eevee (Evelyn Woods)
3d0142310e Spawn an explosion when destroying an actor in fire 2021-01-05 22:23:47 -07:00
Eevee (Evelyn Woods)
999467bb1f Ignore spurious kinds of keydown events 2021-01-05 22:07:04 -07:00
Eevee (Evelyn Woods)
b5b7ccbc46 Move lit dynamite to the actor layer so it destroys itself again 2021-01-05 21:04:20 -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)
c6d9eb3271 Fix ctrl-click not working quite right on Macs 2021-01-05 17:18:09 -07:00
Eevee (Evelyn Woods)
05e8f05b41 Correct and fill in a couple editor tile tooltips 2021-01-05 17:16:38 -07:00
Eevee (Evelyn Woods)
aed96c8e41 Add a bunch of minor rendering stuff
- Added the active player background

- Added bomb fuses (though LL doesn't use them)

- Added CC2-style double-size blob and walker (though LL doesn't use them)

- Added the rover's directional overlay

- Added custom push animations

- Added custom bouncing heart animations

- Added a puff when opening a door or socket, or revealing a fake floor

- Fixed the rover's animations being a bit mixed up

- Fixed player walk animations occasionally being glitchy

- Touched up the fake floor x-ray tile

- Touched up the canopy x-ray tile

- Touched up the purple ball's shadows

- Touched up the transmogrifier and transmogrify flash
2021-01-05 17:10:21 -07:00
Eevee (Evelyn Woods)
31a1049655 Fix x-ray glasses breaking the renderer 2021-01-04 17:59:24 -07:00
Eevee (Evelyn Woods)
fda1c6c66e Fix drag and drop with directories; improve drop zone 2021-01-04 12:56:30 -07:00
Eevee (Evelyn Woods)
f03144ba91 Fix editing wire tunnels 2021-01-03 19:45:34 -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)
a4c1aa869b LAYER => LAYERS, oops 2021-01-03 19:15:38 -07:00
Eevee (Evelyn Woods)
683ab6a2c9 Fix some fallout from all that editor rendering stuff 2021-01-03 18:43:24 -07:00
Eevee (Evelyn Woods)
1ce704864c Teach the editor to do partial redraws 2021-01-03 18:21:52 -07:00
Eevee (Evelyn Woods)
90fa352a50 Split out editor drawing and slightly speed up normal drawing 2021-01-03 18:03:58 -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)
0f1afbb877 Teach format_duration to handle negative durations 2021-01-03 13:48:23 -07:00
Eevee (Evelyn Woods)
9cf2b82c8e Change the bulk test results into a (slightly more compact) table 2021-01-03 13:48:11 -07:00
Eevee (Evelyn Woods)
d1646532d5 Draw the countdown frames for the time bomb, and improve its artwork 2021-01-03 13:20:28 -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)
b08750696e Implement replay-compatible blob transmogrifying 2021-01-02 19:50:03 -07:00
Eevee (Evelyn Woods)
ed6a98392d Fix the fix for bowling balls destroying players 2021-01-02 17:42:39 -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)
6c2602246e Allow rovers to enter popwalls and fake walls 2021-01-02 17:16:27 -07:00
Eevee (Evelyn Woods)
c9bcc92bdf Prevent ghosts from toggling swivels 2021-01-02 16:59:20 -07:00
Eevee (Evelyn Woods)
6d519cfa0a Handle a player blowing themselves up with dynamite 2021-01-02 12:23:53 -07:00
Eevee (Evelyn Woods)
69d62f8266 Fix collision masks for dynamite and bowling balls 2021-01-02 12:19:52 -07:00
Eevee (Evelyn Woods)
a657682035 Disable zlibbed level URLs since they'll break gliderbot 2021-01-01 22:26:29 -07:00
Eevee (Evelyn Woods)
29df283f80 Add support for zlib-compressed levels in URLs 2021-01-01 22:09:49 -07:00
Eevee (Evelyn Woods)
e277a1363e Add a transmogrify sparkle 2021-01-01 21:27:10 -07:00
Eevee (Evelyn Woods)
a41baee3fc Fix this fix to player fixing whatever 2021-01-01 20:18:03 -07:00
Eevee (Evelyn Woods)
2673f7f9f8 Don't switch players when a non-active player exits 2021-01-01 20:10:00 -07:00
Eevee (Evelyn Woods)
d77b25c7c1 Wildly guess about how blob transmogrification might use the PRNG 2021-01-01 20:09:44 -07:00
Eevee (Evelyn Woods)
c55a415099 Support drag and drop with a single CCL or ZIP 2021-01-01 18:25:20 -07:00
Eevee (Evelyn Woods)
1b55e82061 Add CC2LP1; streamline the splash page, moving most of the text to the GitHub wiki 2021-01-01 18:18:50 -07:00
Eevee (Evelyn Woods)
1b48c291c9 Implement the pgchip clone block ice cloning hack 2021-01-01 17:30:50 -07:00
Eevee (Evelyn Woods)
aac1e09c72 Add support for pgchip's magic number and ice block encoding 2021-01-01 17:11:11 -07:00
Eevee (Evelyn Woods)
0d35274d6a Add support for loading CC2 ZIPs, and parse out C2G game titles 2021-01-01 15:26:33 -07:00
Eevee (Evelyn Woods)
f5b1b4a83d Make multi-hints readable by CC2 2021-01-01 14:46:05 -07:00
Eevee (Evelyn Woods)
044c08c3fc Add support for downloading an entire pack as a zipped C2G 2021-01-01 14:44:48 -07:00
Eevee (Evelyn Woods)
83793603d3 Improve interactions between turn-based mode and tic navigation 2021-01-01 13:10:48 -07:00
Eevee (Evelyn Woods)
adac6774a4 Remove duplicate code in Tileset drawing 2021-01-01 12:47:54 -07:00
Eevee (Evelyn Woods)
c8686f9d66 Copy a level's title to the right places in the editor so it shows in the level browser 2021-01-01 12:44:20 -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)
18b9fd6d4d Add support for a floating selection 2020-12-31 14:49:37 -07:00
Eevee (Evelyn Woods)
2183e7de3c Fix some copy/paste errors in editor tooltips 2020-12-30 18:50:17 -07:00
Eevee (Evelyn Woods)
130b917c81 Lazily load the level in the player and editor, so an unplayable level doesn't break the editor too 2020-12-30 18:21:21 -07:00
Eevee (Evelyn Woods)
93d77ea297 Add support for "rotating" through letter tiles. Fixes #21 2020-12-30 17:57:07 -07:00
Eevee (Evelyn Woods)
2109e4f4fa Fix paths to rotation buttons 2020-12-30 17:50:34 -07:00
Eevee (Evelyn Woods)
15a37457de Add physical rotation buttons 2020-12-30 17:47:29 -07:00
Eevee (Evelyn Woods)
fb2f79823c Stub out a selection tool for the editor 2020-12-30 17:28:41 -07:00
Eevee (Evelyn Woods)
d700561c0f Add a cursor to the editor 2020-12-30 11:52:27 -07:00
Eevee (Evelyn Woods)
09d220b2a3 Improve ergonomics of the level props dialog a bit 2020-12-30 11:30:50 -07:00
Eevee (Evelyn Woods)
48803b1483 Add tooltip help for most tiles in the editor 2020-12-30 11:08:38 -07:00
Eevee (Evelyn Woods)
de53582d47 Fix perception and use it to implement the xray eye 2020-12-29 20:42:53 -07:00
Eevee (Evelyn Woods)
746300a514 Add support for encoding thin walls/canopies; add them to the editor; add support for additive drawing 2020-12-29 20:12:54 -07:00
Eevee (Evelyn Woods)
b9a311a18c Merge thin walls into a single tile; split "overlay" layer into correct CC2 parts 2020-12-29 19:29:22 -07:00
Timothy Stiles
f6a79456e9 fix turn-based mode 2020-12-30 13:01:01 +11:00
Eevee (Evelyn Woods)
1c5f63b61b Add a new experimental tile: sand 2020-12-29 17:08:51 -07: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)
be769b7dc8 Clean up doppelganger collision; monsters block doppelgangers, but players and dopps don't block each other 2020-12-29 11:34:51 -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)
a32b29976e Fix occasionally displaying times as 1:010 2020-12-29 10:15:57 -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)
f54edf8692 Fix the way force floors alter actors' movement when flipping under CC2 rules 2020-12-28 15:03:25 -07:00
Eevee (Evelyn Woods)
f6f83a45f1 Add a teleport flash 2020-12-28 14:21:28 -07:00
Eevee (Evelyn Woods)
1e79704f70 Add more experimental tiles: gates and a skeleton key (also some tileset touchups) 2020-12-28 14:00:47 -07:00