Commit Graph

403 Commits

Author SHA1 Message Date
Eevee (Evelyn Woods)
8ff0bd803a Use a ring buffer for undo; don't pause when running out of undo during rewind 2020-11-03 11:57:16 -07:00
Eevee (Evelyn Woods)
350ac08d4d Shrink size of undo buffer by 40%
Using simple maps of changed properties, rather than a big pile of
closures, takes up significantly less space.
2020-11-03 11:48:51 -07:00
Eevee (Evelyn Woods)
84840d2b02 Consider turn-based mode to be aid; switch back to realtime correctly 2020-11-03 10:32:25 -07:00
Eevee (Evelyn Woods)
e7e02281a2 Clean up turn-based code
Mostly style nits, but also:

- Renamed some stuff in anticipation of removing GameEnded.

- Actor decisions are independent, so there's no need to do most of them
  in the first part of a tic and the player in the second part; they can
  all happen together in the second part.

- waiting_for_input was merged into turn_based, which I think makes it
  easier to follow what's going on between tics.  Although I just
  realized it introduces a bug, so, better fix that next.

- The canvas didn't need to know if we were waiting or not if we just
  force the tic offset to 1 while waiting.  This also fixed some slight
  jitter with force floors.
2020-11-03 09:50:37 -07:00
Eevee (Evelyn Woods)
83a1dd23ff Merge branch 'master' of github.com:eevee/lexys-labyrinth 2020-11-02 15:40:09 -07:00
Eevee (Evelyn Woods)
49ff0d9723 Clean up wiring drawing and logic (zero gates is now a no-op!); begin implementing logic gates 2020-11-01 11:36:17 -07:00
Eevee (Evelyn Woods)
060dfdc7d7 Implement drawing and correctly pushing directional blocks 2020-10-28 00:17:41 -06:00
Timothy Stiles
f670224460 forgot to change a continue to a return 2020-10-26 16:08:29 +11:00
Timothy Stiles
32b4399683 Merge remote-tracking branch 'upstream/master' 2020-10-26 16:05:34 +11:00
Eevee (Evelyn Woods)
dedaa45d07 Fix pushing sliding blocks 2020-10-24 22:30:18 -06:00
Eevee (Evelyn Woods)
368e4676fd Mostly implement orange buttons and flame jets 2020-10-24 21:33:11 -06:00
Timothy Stiles
509b3ca3b7 Merge remote-tracking branch 'upstream/master' 2020-10-25 14:31:32 +11:00
Eevee (Evelyn Woods)
0c9a7e3d07 Implement all three blob modes and fix up some minor details
This makes the replays from the Steam copies of Blobnet and Nice Day
play back correctly!  Neato!
2020-10-24 20:49:14 -06:00
Eevee (Evelyn Woods)
a07e10218e Monsters always attempt their last candidate direction, even if blocked 2020-10-24 20:32:22 -06:00
Eevee (Evelyn Woods)
f1b040f176 Implement green teleports and the Lynx/CC2 PRNG 2020-10-23 21:09:31 -06:00
Eevee (Evelyn Woods)
603a74a751 Show a hint the player starts on 2020-10-23 17:44:26 -06:00
Eevee (Evelyn Woods)
2820c067c5 Implement the CC2 "no sign" 2020-10-23 17:37:50 -06:00
Timothy Stiles
a0e37422b9 Merge remote-tracking branch 'upstream/master' 2020-10-23 20:26:39 +11:00
Eevee (Evelyn Woods)
8c2f71294f Fix crash caused by last fix dammit (fixes #9) 2020-10-22 14:44:05 -06:00
Timothy Stiles
fedbd200fc Merge remote-tracking branch 'upstream/master' 2020-10-22 18:04:43 +11:00
Eevee (Evelyn Woods)
d03d61516f Fix NaNs sneaking into the save file 2020-10-21 23:34:59 -06:00
Eevee (Evelyn Woods)
09eb03dad6 Iterate actors in reverse order to match Lynx/CC2 (fixes #7) 2020-10-21 21:24:59 -06:00
Eevee (Evelyn Woods)
8073604271 Add... error handling... sort of... for levels at least 2020-10-21 21:07:50 -06:00
Eevee (Evelyn Woods)
edbe32c148 Add support for drag/drop, dir upload, C2G, AND lazy level loading! 2020-10-21 20:47:07 -06:00
Timothy Stiles
9e53aa75a0 I tried 'snappier' and it was a bad idea, so now you don't have to
it basically skips the first frame of each turn-based movement. it's not TERRIBLE but the smooth movement is already really nice, we don't need to change it
2020-10-14 23:13:38 +11:00
Timothy Stiles
4388402850 Merge remote-tracking branch 'upstream/master' 2020-10-14 22:43:35 +11:00
Timothy Stiles
e3de4d59c7 spaceify 2020-10-14 22:34:00 +11:00
Timothy Stiles
f7e83342a0 fix a turn based rewinding visual bug 2020-10-14 22:33:45 +11:00
Timothy Stiles
be5cc7f97f spaceify 2020-10-14 22:23:13 +11:00
Timothy Stiles
e9d542f438 fix a bug when undoing while waiting for input
need to unset it (we used to do this but it got lost in the refactor)
2020-10-14 22:22:27 +11:00
Timothy Stiles
a7c38ae0af fix 'keys held for less than a frame are ignored' bug
this was annoying me!
2020-10-14 22:17:07 +11:00
Timothy Stiles
bb168d7e1e fix force arrows in turn based mode
if you got misaligned in tic_counter then you'd force arrow forever.
also, turn_based is no longer passed in! yay!
2020-10-14 22:07:29 +11:00
Timothy Stiles
e53f00a432 I broke force arrows, in fact!
so much for tooting my own horn
2020-10-14 21:54:13 +11:00
Timothy Stiles
a8ce3bca11 fix bugs
we're back at parity now, it looks like
2020-10-14 21:42:51 +11:00
Timothy Stiles
2e1a87199a code refactor part 1: advance_tic is now two parts
seems to work so far
2020-10-14 21:24:46 +11:00
Eevee (Evelyn Woods)
36b9f2efd7 Make (most) actors pick up blue keys 2020-10-07 15:28:51 -06:00
Eevee (Evelyn Woods)
197113c842 Add two new tracks from jneen 2020-10-07 15:16:20 -06:00
Eevee (Evelyn Woods)
b20e2cac8c Tanks in traps turn around 2020-10-04 09:52:59 -06:00
Eevee (Evelyn Woods)
5c2fc32546 Tanks always decide to move in their given direction, even when blocked 2020-10-04 09:47:03 -06:00
Eevee (Evelyn Woods)
7f8efaa4e0 Fix flicker when moving in sync with a N/W actor at the edge of the viewport 2020-10-04 09:40:52 -06:00
Eevee (Evelyn Woods)
8adb630862 Add partial wiring support 2020-10-01 06:46:07 -06:00
Eevee (Evelyn Woods)
4cd0585d0b Revert the blue wall compat fix and replace them with popwalls instead (fixes #5) 2020-10-01 03:22:49 -06:00
Eevee (Evelyn Woods)
4f5d169d06 Reduce SFX volume in levels with a lot of off-screen button presses 2020-10-01 03:08:54 -06:00
Eevee (Evelyn Woods)
9b873764fb Shim around several compat issues that affect CCLP levels
- CCLP1 #81 requires pushing blocks off of blue walls, which is
  impossible in CC2 but allowed in TW Lynx (unclear if this is a lynx
  behavior or a tw bug)

- CCLP1 #89 has a tank start on a recessed wall and drive off of it,
  expecting the recessed wall to be left alone, but under CC2 rules it
  becomes a wall; such walls are now automatically converted to a new
  tile, the "doubly recessed wall", which restores the expected behavior
  without changing how recessed walls work in general

- CCLP4 #135 expects pressing a blue button to not affect blue tanks
  that are currently in mid-slide

In addition, the behavior of blue buttons now matches the Lynx/Steam
behavior: the press is stored as a flag and queued until the tank is
next able to move.
2020-10-01 03:08:25 -06:00
Eevee (Evelyn Woods)
8326b42bc7 Pad "real time" seconds to two places; allow tied scores without aid to replace scores with aid 2020-09-30 02:37:43 -06:00
Eevee (Evelyn Woods)
f99b9826be Detect trap buttons that are held down when the level begins 2020-09-30 02:20:33 -06:00
Eevee (Evelyn Woods)
f4363b8fda Rewrite how connections work
- Teleporters now connect on the fly, rather than having fixed
  connections (important because dynamite can destroy teleporters!)

- If custom connections are present, red and brown buttons ONLY use
  those, rather than falling back to CC2 connection rules

- Multiple brown buttons connected to the same trap should now work
  correctly
2020-09-30 02:11:17 -06:00
Eevee (Evelyn Woods)
db3af69ff7 Make gray buttons undoable 2020-09-28 20:44:46 -06:00
Eevee (Evelyn Woods)
dfa0fa4a9e Add gray buttons to the C2M implementation 2020-09-28 20:43:22 -06:00
Eevee (Evelyn Woods)
325a06395d Partly implement gray buttons; expose them and green stuff in the editor 2020-09-28 04:09:24 -06:00
Eevee (Evelyn Woods)
76051870b7 Basically finish the camera region editing tool; add save/load support for it 2020-09-28 04:00:55 -06:00
Eevee (Evelyn Woods)
432bb881e6 Split out mouse operations; add camera regions, our first custom feature 2020-09-28 02:58:11 -06:00
Eevee (Evelyn Woods)
8711d87a36 Split the editor into its own module 2020-09-28 00:58:31 -06:00
Eevee (Evelyn Woods)
ade135514b Undo actor animation (fixes #4) 2020-09-28 00:38:24 -06:00
Eevee (Evelyn Woods)
684021f93d Fix typo in drowned player tile 2020-09-27 04:03:15 -06:00
Eevee (Evelyn Woods)
78bb1f2dc1 Populate player 2 state sprites so she can actually be drawn 2020-09-26 20:38:50 -06:00
Eevee (Evelyn Woods)
70d6739465 Ice blocks splash in water 2020-09-26 20:21:00 -06:00
Eevee (Evelyn Woods)
760ca374ce Fall back to webkitAudioContext if necessary, sigh 2020-09-26 19:47:51 -06:00
Timothy Stiles
c8d80dfc63 another spaceify (oops)
I literally tried to change the setting for this in notepad++ but it crashes every time I do

ha ha
2020-09-26 23:48:47 +10:00
Timothy Stiles
ccfd5c30ce fix animation ugliness in turn-based mode
Uguhughugh it looks SO SMOOTH NOW. I can go to bed happy.
2020-09-26 23:45:53 +10:00
Timothy Stiles
e908434a20 only restart on fresh press of spacebar 2020-09-26 23:01:42 +10:00
Timothy Stiles
5b7273e9d9 Turn-Based: add space to wait 2020-09-26 22:40:38 +10:00
Timothy Stiles
e6a4e88935 spaceify previous commit 2020-09-26 22:32:01 +10:00
Timothy Stiles
d2e900dc3a fix a rewind bug in non turn based mode
Was caused by not making these setters undoable.
2020-09-26 22:31:18 +10:00
Timothy Stiles
30a145599c fix a graphical undoing bug in Turn-Based Mode
turns out we were smuggling pending_undo to previous moves. aha!
2020-09-26 22:18:19 +10:00
Timothy Stiles
5c6cd01b39 Implement turn based mode
Seems to work mechanically though I haven't extensively stress tested it yet. Force floors work the way you'd want them to though (you're given control whenever you can make an input and not otherwise).
There are some graphical bugs with rewinding, but there were some without turn based mode anyway...
2020-09-26 22:10:42 +10:00
Eevee (Evelyn Woods)
4a0ba44116 Restore floors under thin walls in CCL maps 2020-09-26 04:49:58 -06:00
Eevee (Evelyn Woods)
967520c1bd Change fake floors to not be blocking; causes bad visual/audio feedback 2020-09-26 03:15:01 -06:00
Eevee (Evelyn Woods)
b40805c02e Take a rough swing at phone support 2020-09-26 02:55:39 -06:00
Eevee (Evelyn Woods)
fb71dd1ff1 Fix conundrum, which I accidentally corrupted a bit 2020-09-26 01:44:06 -06:00
Eevee (Evelyn Woods)
12066072ec Disable the big ol cheat whoops 2020-09-26 00:17:15 -06:00
Eevee (Evelyn Woods)
68de70743f Fix, partially, stopping yourself on force floors 2020-09-25 20:45:01 -06:00
Eevee (Evelyn Woods)
55014fa1ca Use ceil, not floor, when converting the timer to seconds 2020-09-25 20:02:53 -06:00
Eevee (Evelyn Woods)
5e2c8ee65e Add a background; hide some broken stuff 2020-09-25 19:55:34 -06:00
Eevee (Evelyn Woods)
7a6370c9e9 Fix spurious floors in parsed CCL files 2020-09-25 19:09:24 -06:00
Eevee (Evelyn Woods)
f0bfa12083 Clear connections when editing a new level 2020-09-25 05:39:15 -06:00
Eevee (Evelyn Woods)
5c93b5f199 Only let the player pick up keys for now 2020-09-25 05:11:30 -06:00
Eevee (Evelyn Woods)
26f9e917a8 Support the remaining invalid tile, which slipped into CCLXP2 2020-09-25 04:51:59 -06:00
Eevee (Evelyn Woods)
537e011f2a Track scores, including your total score for a pack 2020-09-25 03:47:18 -06:00
Eevee (Evelyn Woods)
ac59f7b15d Add "kinda song", by glip 2020-09-25 01:29:48 -06:00
Eevee (Evelyn Woods)
40aa845e92 Add sound effects! 2020-09-25 01:28:31 -06:00
Eevee (Evelyn Woods)
6aee8ed622 Overhaul the UI to be more good pretty; add CCLP2+4 2020-09-24 20:28:16 -06:00
Eevee (Evelyn Woods)
c231e7fc53 Add the Lexy tileset and make it the default, finally! 2020-09-24 19:20:29 -06:00
Eevee (Evelyn Woods)
19fd4273f1 Add three more songs; make music track deterministic 2020-09-24 17:23:31 -06:00
Eevee (Evelyn Woods)
8adb249925 Steam Teeth pursue the player's image 2020-09-23 23:38:10 -06:00
Eevee (Evelyn Woods)
7817a8ebdd Revert previous commit; auto-eject is Lynx behavior 2020-09-23 22:56:27 -06:00
Eevee (Evelyn Woods)
459120313e Eject actors from open traps immediately 2020-09-23 22:55:12 -06:00
Eevee (Evelyn Woods)
787cd0d3a7 Fix tile rendering with the TW tileset 2020-09-23 22:49:44 -06:00
Eevee (Evelyn Woods)
5e70df77a6 Fix block behavior, again 2020-09-23 22:41:07 -06:00
Eevee (Evelyn Woods)
f583fe3b10 Rewind at 2× speed 2020-09-23 21:43:24 -06:00
Eevee (Evelyn Woods)
a631b0f0e2 Fix demo playback (faucet was being created too early and immediately destroyed) 2020-09-23 21:42:05 -06:00
Eevee (Evelyn Woods)
e859afe0b5 Change hint behavior to match Steam: hint shows as you approach 2020-09-23 21:31:56 -06:00
Eevee (Evelyn Woods)
67504e436e Draw the player's blocked/pushing frame (at last) 2020-09-23 21:09:57 -06:00
Eevee (Evelyn Woods)
b7ceafc5a1 Add a first pass at a soundtrack, with 5 tracks wow! 2020-09-21 02:08:03 -06:00
Eevee (Evelyn Woods)
0535cbc0bf Stub out drawing connections in the editor 2020-09-20 21:17:18 -06:00
Eevee (Evelyn Woods)
8ac70f8ee6 Add some more obits and remove "player" from them 2020-09-20 21:17:01 -06:00
Eevee (Evelyn Woods)
362c18d6e2 Remove ||=, which is also really new! 2020-09-20 01:09:42 -06:00
Eevee (Evelyn Woods)
ad615e5caf Teleporters with an actor on them are blocked 2020-09-20 01:08:47 -06:00
Eevee (Evelyn Woods)
2dc18a98db Finally fix pushing a sliding block 2020-09-20 01:05:24 -06:00
Eevee (Evelyn Woods)
c8a24d0e4b Avoid ??= for now, it's extremely new 2020-09-20 00:30:07 -06:00
Eevee (Evelyn Woods)
72a44429af Animate CC2 force floors 2020-09-20 00:02:08 -06:00
Eevee (Evelyn Woods)
ddfa7f562a Extend the CC2 tile definition with some custom stuff 2020-09-19 23:32:13 -06:00
Eevee (Evelyn Woods)
9e66bc46bb Restore fireballs going through fire 2020-09-19 23:32:00 -06:00
Eevee (Evelyn Woods)
ec8992a0fc Support separate poses for ice and force floors, and spin on ice 2020-09-19 22:59:50 -06:00
Eevee (Evelyn Woods)
582a875c52 Don't use "ignores" to override blocking; it breaks ice corners 2020-09-19 22:53:38 -06:00
Eevee (Evelyn Woods)
16f87bf6e0 Fix hot blocks appearing to move backwards on death 2020-09-19 22:47:04 -06:00
Eevee (Evelyn Woods)
2fc0648333 Slow animations down by half 2020-09-19 22:43:47 -06:00
Eevee (Evelyn Woods)
32be0d0d71 Overhaul inventory: taking items is now undoable; inventory UI is correct, shows key counts 2020-09-19 22:43:04 -06:00
Eevee (Evelyn Woods)
4edc83ae4f Restore bumping solid tiles 2020-09-19 20:35:12 -06:00
Eevee (Evelyn Woods)
fcbd2b17be Fix dirt block direction in DAT; remove clone block, which serves no purpose for us 2020-09-18 22:22:38 -06:00
Eevee (Evelyn Woods)
569a3c0f3d Fix wired drawing of teleports 2020-09-17 00:02:01 -06:00
Eevee (Evelyn Woods)
bc08ec4ceb Lazy-initialize the editor (to keep the TW tileset working in the player) 2020-09-16 23:34:52 -06:00
Eevee (Evelyn Woods)
e0bfb0aadf Standardize visual state, and use it instead of transmuting a dead player 2020-09-16 21:08:43 -06:00
Eevee (Evelyn Woods)
171c52acb5 Fix rewind effect to go up, not down 2020-09-16 19:57:17 -06:00
Eevee (Evelyn Woods)
ede7dbf424 Take inventory into account when auto-scaling the game 2020-09-16 19:46:39 -06:00
Eevee (Evelyn Woods)
063d9f9ef9 Implement rewind, add a key for it, and suggest keys in general 2020-09-16 19:40:38 -06:00
Eevee (Evelyn Woods)
57810da581 Add obituaries, and get them out of the game itself 2020-09-16 19:21:32 -06:00
Eevee (Evelyn Woods)
fe12c599bc Abort the tic and draw a final frame after the game ends; fix dead player appearance 2020-09-16 18:14:06 -06:00
Eevee (Evelyn Woods)
1d809601ae Clumsily add support for the player's swimming sprite 2020-09-16 14:57:29 -06:00
Eevee (Evelyn Woods)
e70e92b931 Move responsibility for drawing out of Tileset and into the renderer 2020-09-16 14:10:10 -06:00
Eevee (Evelyn Woods)
2e0519f802 Get rid of the Level.tic_offset hack and stop passing level to Tileset.draw 2020-09-16 13:29:57 -06:00
Eevee (Evelyn Woods)
529b87ab23 Attempt to support some invalid MSCC tiles 2020-09-16 01:51:38 -06:00
Eevee (Evelyn Woods)
5f6e820b14 Exits block non-players 2020-09-16 01:18:39 -06:00
Eevee (Evelyn Woods)
1dd617bbd0 Fix the editor's cell sort direction 2020-09-16 01:18:14 -06:00
Eevee (Evelyn Woods)
39a7985c1e Add support for map compression; use URL-safe base64 2020-09-16 01:08:08 -06:00
Eevee (Evelyn Woods)
a7f00d6ec4 Get level encoding and URL sharing just barely working! 2020-09-16 00:11:52 -06:00
Eevee (Evelyn Woods)
fed52c42ab Update CCL parser to also use tile templates containing types 2020-09-15 22:48:59 -06:00
Eevee (Evelyn Woods)
cce28c2d7e Rearrange C2M tile definitions to make saving easier
Also, tile templates no longer use name or carry format-specific
modifiers; they have the same properties as real tiles.
2020-09-15 22:45:15 -06:00
Eevee (Evelyn Woods)
325960b609 Allow only players, ice blocks, directional blocks, and rovers to reveal walls 2020-09-15 00:32:24 -06:00
Eevee (Evelyn Woods)
6d26362cb0 Remove the hesitation check from sliding teeth 2020-09-14 22:30:12 -06:00
Eevee (Evelyn Woods)
2ee61634a6 Separate "can enter" from "can push" checks
This fixes several bugs surrounding block pushing (e.g. flicking) and
slapping through thin walls and off of solid things.

It should also fix animation delay when pushing a block off a turtle and
create the CC2 behavior of pushing a block off a popwall and then being
blocked by the resulting wall.
2020-09-14 22:25:28 -06:00
Eevee (Evelyn Woods)
48e03f3225 Restore the splash when pushing a block into water; fix splash/explosion in TW tileset 2020-09-14 21:52:27 -06:00
Eevee (Evelyn Woods)
dee2970ad3 whoops this is important too 2020-09-14 21:52:00 -06:00
Eevee (Evelyn Woods)
67228d89d1 Fix bumping to only happen on departure; add a CC2 input tiebreaker 2020-09-14 21:45:27 -06:00
Eevee (Evelyn Woods)
045bcb5789 Remove blocks' knowledge of their pusher's speed 2020-09-14 21:09:05 -06:00
Eevee (Evelyn Woods)
c214aeb0c6 Blocks pushed onto force floors should move at slide speed 2020-09-14 20:42:28 -06:00
Eevee (Evelyn Woods)
468a1d44ba Get wire rendering correctly, at least for floors 2020-09-14 19:34:48 -06:00
Eevee (Evelyn Woods)
13b4180ab8 Make teleporting undoable 2020-09-14 18:09:13 -06:00
Eevee (Evelyn Woods)
b88d42582c Stub out enough stuff to get CC2 Lesson 5 loading
- Wire is...  well, ignored
- Pink and black buttons load but don't do anything
- Railroad is loaded but doesn't do anything
- Bowling ball, purple toggle wall/floor, rover...  you get the idea
- Railroad sign would work if railroad did, though
2020-09-14 17:25:30 -06:00
Eevee (Evelyn Woods)
ec41139960 Stub out enough to get CC2 Lesson 4 loading
- Gender signs: implemented
- Transmogrifier: basically implemented
- Yellow tank: basically implemented
- Directional blocks: load but don't draw or behave correctly
- Floor mimic: moves at hyperspeed
- Secret eye: no effect
2020-09-14 16:03:35 -06:00
Eevee (Evelyn Woods)
54aaed73a0 Green bombs also count towards the required chip count 2020-09-14 14:15:54 -06:00
Eevee (Evelyn Woods)
c913df5e53 Players can't escape creatures exactly behind them 2020-09-12 21:16:48 -06:00
Eevee (Evelyn Woods)
090ba24062 Allow players to turn in traps 2020-09-12 21:06:06 -06:00
Eevee (Evelyn Woods)
f511e2ecb9 Make cloning undoable 2020-09-12 21:00:50 -06:00
Eevee (Evelyn Woods)
b26820d99b Fix revealing the void under a block hiding an item in CC1 2020-09-12 20:58:28 -06:00
Eevee (Evelyn Woods)
d3dfcba63b Don't remove the player when stepping on a bomb; it breaks things 2020-09-12 20:45:34 -06:00
Eevee (Evelyn Woods)
afa132bd4c Undo GCing the actor list 2020-09-12 20:36:11 -06:00
Eevee (Evelyn Woods)
5ccaad4666 Remember the player's secondary direction earlier 2020-09-12 20:11:14 -06:00
Eevee (Evelyn Woods)
5d39e37ad2 Implement CC2 input handling, bumping, and block slapping 2020-09-12 20:07:26 -06:00
Eevee (Evelyn Woods)
64bd6c49d9 Implement Melinda basics: ignores ice, can't walk on dirt/gravel 2020-09-12 19:03:38 -06:00
Eevee (Evelyn Woods)
ee333ddb7d Always update the previous cell when drawing force floors 2020-09-11 17:42:46 -06:00
Andrew Ekstedt
f0f2259aa1 Improve support for High DPI displays
On high DPI displays, a logical pixel does not necessarily equal a
device pixel. Images and such are scaled up to the logical pixel size;
unfortunately this introduces ugly aliasing. Web pages can take
advantage of high DPI screens by intentionally scaling stuff down to be
displayed at a higher resolution. By carefully canceling out the
automatic scaling of the game canvas we get nice crisp pixels even on
high DPI screens.

See the pull request for before/after screenshots.
2020-09-11 16:17:36 -07:00
Eevee (Evelyn Woods)
d3e60b88fa Stub out enough for CC2's Lesson 3 to load 2020-09-10 21:21:30 -06:00
Eevee (Evelyn Woods)
e8d3adfe8e Fix rotating actors in the editor 2020-09-10 21:06:58 -06:00
Eevee (Evelyn Woods)
6e7790efa6 Fix drawing with the mouse (button and buttons use different ordering) 2020-09-10 20:51:38 -06:00
Eevee (Evelyn Woods)
0c2295dc1d Make the editor grid a bit more rigid; add a few more basic tiles 2020-09-10 20:44:34 -06:00
Eevee (Evelyn Woods)
6bfb5f7896 Add mouse3 panning to the editor 2020-09-10 20:31:01 -06:00
Eevee (Evelyn Woods)
7c9bc92627 Start on editor UI; introduce some tools; implement adjust and force floors 2020-09-10 20:24:20 -06:00
Eevee (Evelyn Woods)
5da3a0f473 Load random force floors from c2m; read the initial direction from replays 2020-09-10 18:22:50 -06:00
Eevee (Evelyn Woods)
55214fad75 Add some visual feedback to the chip, time, and score counters 2020-09-10 18:07:49 -06:00
Eevee (Evelyn Woods)
16bfe22593 Implement score flags and the stopwatches 2020-09-10 17:45:14 -06:00
Eevee (Evelyn Woods)
9b9536d586 Sliding actors don't get to make a decision 2020-09-10 17:13:57 -06:00
Eevee (Evelyn Woods)
dd287284ef Boots block monsters 2020-09-10 17:13:57 -06:00
Andrew Ekstedt
71008d5a20 Avoid lookbehind assertion
The game fails to load under Firefox 77.0 with the very helpful error
message,

    SyntaxError: invalid regexp group   format-c2m.js:1:1

Turns out that it doesn't like the `(?<=^|\n)` lookbehind group in
the CLUE regexp. It seems lookbehind support wasn't added until FF 78,
according to the big table[1]. Switch it to a multiline regexp instead.

[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Browser_compatibility
2020-09-10 15:01:06 -07:00
Eevee (Evelyn Woods)
6fd5759de3 Fix chip sockets 2020-09-10 12:55:15 -06:00
Eevee (Evelyn Woods)
1453f68de5 Split up the actor loop, so actors make decisions in a separate pass
This fixes a lot of subtle issues: creatures hitting you when you push a
block past them, blocks moving jerkily while you push them (not even
sure why on that one), probably implementation of "the stupid glitch"...
2020-09-10 12:39:18 -06:00
Eevee (Evelyn Woods)
549b34ad30 Split out the game proper 2020-09-10 11:05:38 -06:00
Eevee (Evelyn Woods)
1a9c3f619d Fix trying to draw out of bounds 2020-09-10 11:05:24 -06:00
Eevee (Evelyn Woods)
6b5b8b06aa Spruce up the options dialog, though it still doesn't work 2020-09-09 21:39:24 -06:00
Eevee (Evelyn Woods)
57ee13425e Draw actors as they cross the viewport boundary too 2020-09-09 20:54:19 -06:00
Eevee (Evelyn Woods)
e85a896f5c Add CCLP3 2020-09-09 20:45:16 -06:00
Eevee (Evelyn Woods)
51a554286a Fix teeth not moving on levels without a time limit 2020-09-09 20:08:51 -06:00
Eevee (Evelyn Woods)
4d44441983 After a clone, mark the new clone as stuck too 2020-09-09 20:02:15 -06:00
Eevee (Evelyn Woods)
ac053d6c1f Restart the level when switching back from the editor 2020-09-09 18:47:18 -06:00
Eevee (Evelyn Woods)
274fa7c3c5 Only the player can step on thieves 2020-09-09 17:28:19 -06:00
Eevee (Evelyn Woods)
420b497cf2 Only the player can step on hints 2020-09-09 17:18:08 -06:00
Eevee (Evelyn Woods)
a3928b2865 Implement splashes and explosions, at least partially 2020-09-08 15:16:35 -06:00
Eevee (Evelyn Woods)
321641d8d8 Make fire block monsters; cleanup in prep for more CC2 nonsense 2020-09-08 14:52:23 -06:00
Eevee (Evelyn Woods)
8097339886 Implement green bombs/chips, ice blocks, and custom walls/floors 2020-09-08 14:42:38 -06:00
Eevee (Evelyn Woods)
88ec9f89e7 Fix turtles and implement swivels; CC2 LESSON 1 now replays correctly! 2020-09-08 14:23:55 -06:00
Eevee (Evelyn Woods)
214a430e52 Load the CC2 thin walls (and canopy) 2020-09-08 14:11:20 -06:00
Eevee (Evelyn Woods)
d38cbc9294 Add more items to the editor, fix its buttons, do smart drawing 2020-09-08 12:39:06 -06:00
Eevee (Evelyn Woods)
bd25fb02b1 Oops, fix re-trapping actors 2020-09-07 14:48:29 -06:00
Eevee (Evelyn Woods)
646fafc153 Make traps, doors, and the chip socket undoable 2020-09-07 14:43:34 -06:00
Eevee (Evelyn Woods)
bb50189644 Actors who start on traps should start the level trapped 2020-09-07 14:38:31 -06:00
Eevee (Evelyn Woods)
de98ba1a60 Creatures also block blocks 2020-09-07 13:21:28 -06:00
Eevee (Evelyn Woods)
bdf0caf4e7 Force a move on anything released from a trap 2020-09-07 13:14:43 -06:00
Eevee (Evelyn Woods)
2b07254d70 Fix undoing of slide moves 2020-09-05 19:50:09 -06:00
Eevee (Evelyn Woods)
9197061096 Don't stop when hitting a wall on a force floor 2020-09-05 19:41:36 -06:00
Eevee (Evelyn Woods)
136fa432e3 Prevent pushing a block off a cloner 2020-09-05 19:19:08 -06:00
Eevee (Evelyn Woods)
2096c42dbf Add clone blocks to the Tile World layout 2020-09-05 18:43:59 -06:00
Eevee (Evelyn Woods)
5361cff70a Give blocks a speed so they behave correctly when moving on their own (via ice, clone, etc) 2020-09-05 18:20:26 -06:00
Eevee (Evelyn Woods)
3d6dca2440 Fix blocks sliding on ice and also squishing the player 2020-09-05 17:57:48 -06:00
Eevee (Evelyn Woods)
4ccf17120b Fix turning around when hitting a wall on an ice corner 2020-09-05 17:47:33 -06:00
Eevee (Evelyn Woods)
a43b7e1d37 Wire up the "change pack" button 2020-09-05 17:37:11 -06:00
Eevee (Evelyn Woods)
06c4733e3f Make suction boots apply to all-way force floors 2020-09-05 17:31:11 -06:00
Eevee (Evelyn Woods)
077999de57 Fix restart 2020-09-05 17:30:41 -06:00
Eevee (Evelyn Woods)
b01601fab6 Correctly identify DAT files; don't render editor when not in use 2020-09-05 17:17:59 -06:00
Eevee (Evelyn Woods)
bd526059f7 Unbreak opening CCLP1 (oops) 2020-09-05 17:11:34 -06:00
Eevee (Evelyn Woods)
6f6f0fab48 Finally support "uploading" your own levels 2020-09-05 17:10:52 -06:00