Commit Graph

713 Commits

Author SHA1 Message Date
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
Eevee (Evelyn Woods)
fa47c28136 Fix some omissions with saving stats for custom level packs 2020-12-28 10:20:08 -07:00
Eevee (Evelyn Woods)
dee46b77df Fix black buttons to /always/ separate horizontal and vertical wires 2020-12-28 06:53:19 -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)
d10cba7935 Make bowling balls not detonate if bumped by an actor who can't enter the cell 2020-12-27 09:33:02 -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)
8211da6cc3 Make gravel and dirt also block doppelganger Cerise 2020-12-27 07:28:38 -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)
934a2ec1fa Switch railroad tracks when an actor with the RR sign makes a legal move 2020-12-27 07:08:23 -07:00
Eevee (Evelyn Woods)
d4fab4fba2 Restart a "waiting" level when changing compat mode; adjust player state when navigating with debug panel 2020-12-27 07:07:55 -07:00
Eevee (Evelyn Woods)
46a84e80b8 Fix some visual bugs with tracks in the editor 2020-12-27 07:07:23 -07:00
Eevee (Evelyn Woods)
f798bd2c9c Move blobs' slime-spreading to happen instantly, not on arrival (and fix some typos) 2020-12-27 06:17:52 -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)
8fbd454059 Fix rendering in CC2 mode 2020-12-26 04:08:54 -07:00
Eevee (Evelyn Woods)
30b4b89a95 Change traps to not eject their contents when opened by wire 2020-12-26 03:59:21 -07:00
Eevee (Evelyn Woods)
a45a0138b9 Fix flipping force floors with something on them
Using `this` here doesn't work because the type just changed!
2020-12-26 03:58:40 -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)
09c1976608 Make the bulk tester more aggressive (any more shows no further time gain) 2020-12-26 02:02:24 -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)
a0b34217b4 Implement the goofy CC2 "open trap" tile 2020-12-24 09:44:29 -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)
7b54f88981 Let dynamite blow up even wired floor 2020-12-24 09:20:14 -07:00
Eevee (Evelyn Woods)
d3067173d6 Don't search for an exit direction from the red teleporter you entered 2020-12-24 08:01:43 -07:00
Eevee (Evelyn Woods)
afe68e1b20 Fix fire to not kill ghosts, again 2020-12-24 07:57:18 -07:00
Eevee (Evelyn Woods)
1727df4e38 Allow ghosts to pass through chip sockets at any time 2020-12-24 07:08:12 -07:00
Eevee (Evelyn Woods)
effa166c67 Prevent bestowal of red keys 2020-12-24 07:06:04 -07:00
Eevee (Evelyn Woods)
0e1e577281 Allow doppelgangers to also erase animations 2020-12-24 07:03:26 -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)
1968420027 Improve the pack handling experience somewhat
- Include links for the stock packs

- Show completion amount and total time for played packs

- Expose a list of all other packs the player has played

- Allow forgetting a pack

- Jump to the current level when reopening a pack

- Highlight the current level in the level browser, and scroll to it
2020-12-24 05:36:57 -07:00
Eevee (Evelyn Woods)
a8800838d4 Add a loading and error screen; also include compat CSS oops 2020-12-24 03:38:13 -07:00
Eevee (Evelyn Woods)
756a563135 Add a (working!) compatibility dialog, and a ruleset dropdown to the bulk tester 2020-12-24 01:51:27 -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)
077a809168 Possibly fix update rate to be more consistent 2020-12-20 20:23:59 -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)
99af6025ee Fix ice blocks to play an animation when destroyed by fire 2020-12-19 19:50:20 -07:00
Eevee (Evelyn Woods)
53838cbdd5 Fix ghosts to ignore force floors too 2020-12-19 19:44:57 -07:00
Eevee (Evelyn Woods)
a413d1afc2 Fix bowling balls to start rolling immediately 2020-12-19 19:25:32 -07:00
Eevee (Evelyn Woods)
296d1a356b Fix wired cloner rotation to be permanent 2020-12-19 19:17:14 -07:00
Eevee (Evelyn Woods)
9391052011 Fix a typo and make Cerise block players 2020-12-19 18:48:45 -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)
78800214d0 Rovers can pick up items and push blocks 2020-12-19 17:39:20 -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)
2fa35336cb Allow running in debug mode automatically when run from localhost 2020-12-17 14:47:30 -07:00
Andrew Ekstedt
cf90c7ac67 Minor quality of life improvements for the bulk tester
- Jump to result by clicking on the progress bar

- Include level titles in the progress bar hover text

Makes it a little easier to navigate lengthy test results.
2020-12-16 21:51:14 -08:00
Eevee (Evelyn Woods)
afec553961 Flame jets only kill actors that aren't moving 2020-12-16 21:25:01 -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
Eevee (Evelyn Woods)
4d5c1b4332 Flame jets destroy anything on them when turned on 2020-12-16 21:01:47 -07:00
Eevee (Evelyn Woods)
cace6d4180 Allow CC2 actions anytime the player can move, including on force floors 2020-12-16 20:53:42 -07:00
Eevee (Evelyn Woods)
c3889399fd Add support for wired transmogrifiers 2020-12-16 20:19:38 -07:00
Eevee (Evelyn Woods)
d4da572940 Fix rovers once and for all; make helmet work more often; rename some stuff; simplify attempt_step 2020-12-16 20:05:36 -07:00
Eevee (Evelyn Woods)
7cf92f7841 Set slide mode twice, to handle the obscure case of grabbing cleats on ice 2020-12-16 14:59:40 -07:00
Eevee (Evelyn Woods)
408e4cd9f6 Yellow tanks give up if blocked 2020-12-16 14:28:11 -07:00
Eevee (Evelyn Woods)
2eb7c4cff9 Fix some bugs in rover collision (and let them go on dirt/gravel); very very close now 2020-12-16 14:18:00 -07:00
Eevee (Evelyn Woods)
b42b091181 Fix yellow tank timing; make ghosts go through doors, not stamp dirt 2020-12-16 14:15:32 -07:00
Eevee (Evelyn Woods)
6587cbf7f0 Fix detecting presses of action keys, again 2020-12-16 01:39:17 -07:00
Eevee (Evelyn Woods)
af7d2c741b Give the bulk tester a category for early exit 2020-12-16 01:38:45 -07:00
Eevee (Evelyn Woods)
a91d7f24a1 Fix when we remember the player's move 2020-12-16 01:14:49 -07:00
Eevee (Evelyn Woods)
1021f30fb8 Partially fix rendering of crossed wires 2020-12-16 00:21:28 -07:00
Eevee (Evelyn Woods)
f0e702e397 Fix display of errored levels in bulk tester 2020-12-16 00:12:43 -07:00
Eevee (Evelyn Woods)
e48c2ed457 Doppelgangers block other doppelgangers, and cannot exit 2020-12-16 00:09:45 -07:00
Eevee (Evelyn Woods)
1273843f26 Add CC2's single-frame delay after a light switch is pressed 2020-12-15 23:43:21 -07:00
Eevee
341296dc3f
Merge pull request #11 from magical/grade
Add grade report to the bulk tester
2020-12-15 23:00:56 -07:00
Eevee (Evelyn Woods)
55f0d51e1c Borrow some comments from magical's PR that they did at the same time 2020-12-15 23:00:22 -07:00
Eevee (Evelyn Woods)
62eb1a86e4 Fix some minor wire bugs: NOT/counter/pink button power drawing, circuit block motion, nested wire tunnels 2020-12-15 22:57:32 -07:00
Eevee (Evelyn Woods)
3790e0f07e Allow wired cloners to try other directions 2020-12-15 21:27:58 -07:00
Eevee (Evelyn Woods)
daa3581be0 Fix pressing CC2 actions while moving 2020-12-15 21:14:38 -07:00
Andrew Ekstedt
55bf250c63 Add grade report to the bulk tester 2020-12-15 20:08:35 -08:00
Eevee (Evelyn Woods)
eec7ab2e1a Fix rover behavior at last; lesson 5 now syncs 2020-12-15 17:50:13 -07:00
Eevee (Evelyn Woods)
25b4b32f94 Add teleport overriding and seriously clean up teleport code 2020-12-15 16:44:37 -07:00
Eevee (Evelyn Woods)
7c82a4cdf9 Only do CC2 actions per press, not per held tic 2020-12-15 01:07:02 -07:00
Eevee (Evelyn Woods)
0f02e270f2 Catch level parse errors in the bulk test dialog 2020-12-15 00:55:40 -07:00
Eevee (Evelyn Woods)
07c9a83f75 Fix crash with teeth and Cerise 2020-12-15 00:48:28 -07:00
Eevee (Evelyn Woods)
bf81738e19 Partly implement helmet; get rover very close to correct (?) 2020-12-15 00:44:07 -07:00
Eevee (Evelyn Woods)
55abe8b53a Allow the bowling ball to slide normally 2020-12-15 00:26:00 -07:00
Eevee (Evelyn Woods)
f858668ca8 Clumsily teach bowling balls to destroy actors 2020-12-15 00:10:23 -07:00
Eevee (Evelyn Woods)
2d7df413ee Allow ghosts to pass through thin walls 2020-12-14 23:59:38 -07:00
Eevee (Evelyn Woods)
dae66de160 Thieves will, however, take bribes from anyone 2020-12-14 23:49:47 -07:00
Eevee (Evelyn Woods)
8b60a44b09 Fix loading of the initial entry direction for railroads 2020-12-14 23:39:07 -07:00
Eevee (Evelyn Woods)
2103c649f6 Implement a few quirks of ghost movement 2020-12-14 23:35:11 -07:00
Eevee (Evelyn Woods)
6d4326fe5b Thieves only steal from the player 2020-12-14 23:29:05 -07:00
Eevee (Evelyn Woods)
3e18e38f15 Add rough implementations of dynamite and bowling ball 2020-12-14 23:25:48 -07:00
Eevee (Evelyn Woods)
9ade84c6fe Generally only lose if the real player dies, not a doppelganger 2020-12-14 23:20:46 -07:00
Eevee (Evelyn Woods)
bf3c501353 Fix yellow tank behavior to be faux simultaneous 2020-12-14 23:14:31 -07:00
Eevee (Evelyn Woods)
a529414e42 Cycle an RFF after a failed override; move slide turnaround to move phase 2020-12-14 22:06:42 -07:00
Eevee (Evelyn Woods)
e4ab7dde86 Fix loading custom floors with junk in their modifier's high nybble 2020-12-14 22:06:01 -07:00
Eevee (Evelyn Woods)
a865647eae Non-players move instantly while sliding 2020-12-14 17:52:59 -07:00
Eevee (Evelyn Woods)
f02fa1a9bb Split up the wiring updates 2020-12-14 17:42:31 -07:00
Eevee (Evelyn Woods)
fea93aa9ec Fix wire tool only working in the upper-left quadrant 2020-12-14 17:32:48 -07:00
Eevee (Evelyn Woods)
00ac94ac8c Add a further hack atop the cooldown delay hack to fix adjacent trap release 2020-12-14 17:25:15 -07:00
Eevee (Evelyn Woods)
c34aaadf06 Attempt, unsuccessfully, to implement ice block melting 2020-12-14 17:07:35 -07:00
Eevee (Evelyn Woods)
efd25294ac Restore the notion of an out-of-turn move
This fixes a lot of replay sync issues with cloners; in CC2, actors
advance only one frame (1/3 tic) at a time, so when a cloned object
happens to get a turn later in the same tic that it was cloned, it only
ends up 1 frame ahead of everything else.  Since actors can only begin
moves on tic-aligned frames, even though it does get where it was going
sooner, it has to wait for a frame before moving, so the advantage
doesn't change anything.

The problem is that LL counts movement in tics, not frames, so that kind
of bonus turn puts the clone an entire tic ahead which can gum things
up.

This is still not perfect, but it's much closer.
2020-12-14 17:05:01 -07:00
Eevee (Evelyn Woods)
beb5a5c743 Change the debug mode trigger to a regular click 2020-12-14 17:02:14 -07:00
Eevee (Evelyn Woods)
f3f73a5e41 Move input handling into Level and clean it up a ton; add a bulk test gizmo 2020-12-14 17:02:14 -07:00
Eevee (Evelyn Woods)
189ab96e3c C2G strings can be empty 2020-12-13 23:56:13 -07:00