Eevee (Evelyn Woods)
df14b62b94
Auto-grow the map save buffer when necessary; do less slicing
2020-12-13 16:09:04 -07:00
Eevee (Evelyn Woods)
5e6784c235
Fix encoding and decoding of swivels
2020-12-13 15:56:24 -07:00
Eevee (Evelyn Woods)
0f5b8098f6
Split teleporting into its own pass, like Lynx
2020-12-13 02:23:14 -07:00
Eevee (Evelyn Woods)
93954135d2
Set splash delay back to 6; is correct after all I guess
2020-12-13 01:54:52 -07:00
Eevee (Evelyn Woods)
90008c3a89
Make the player push blocks at decision time
...
It turns out the player explores all their decisions in a very physical
way, which is the real source of block slapping and also means the
player can push blocks before anything else can move, regardless of
actor order.
This fixes at least half a dozen CC1 replays, which is just
mindboggling.
2020-12-13 00:39:36 -07:00
Eevee (Evelyn Woods)
bd4c04c1d8
Fix wiring order; relax player/monster collision
2020-12-12 21:00:28 -07:00
Eevee (Evelyn Woods)
f95913b6d8
Teeth chase the player's apparent position
2020-12-12 20:24:28 -07:00
Eevee (Evelyn Woods)
3a04b6276c
Go back to toggling green objects instantly
2020-12-12 19:22:04 -07:00
Eevee (Evelyn Woods)
4d23acb27e
Add on_approach; use it to erase animations and fix popdown floors
2020-12-12 19:00:58 -07:00
Eevee (Evelyn Woods)
077ac65650
Restore turn-based mode
2020-12-12 18:16:52 -07:00
Eevee (Evelyn Woods)
299b1578a7
Mostly revert actor loop reorg
...
I was right the first time, and I've proven it to myself now. I
originally made the change because I couldn't see any other way to fix
the ICEBERG replay from Steam CC1, but now, I do!
2020-12-12 17:57:47 -07:00
Eevee (Evelyn Woods)
413fdce590
Rejigger input parsing to be stateless and better match CC2; syncs SCAVENGER HUNT!
2020-12-12 01:08:08 -07:00
Eevee (Evelyn Woods)
cfdbe0705a
Add even faster playback options; fix some demo decoding bugs
2020-12-12 00:22:51 -07:00
Eevee (Evelyn Woods)
769d424dde
Fix rendering breakage caused by a couple more out-of-turn moves
2020-12-11 22:54:01 -07:00
Eevee (Evelyn Woods)
8671bee08b
Run wiring thrice per tic; recognize some tiles have odd propagation rules
2020-12-11 22:49:23 -07:00
Eevee (Evelyn Woods)
c17169f49d
Rearranged debug panel a bit; added progress bar for replay playback
2020-12-11 22:15:39 -07:00
Eevee (Evelyn Woods)
fde7d9a11c
Remove some old stuff; stub out replay progress bar
2020-12-11 21:40:40 -07:00
Eevee (Evelyn Woods)
fec09c03ba
Support running the game at ludicrous speed
2020-12-11 21:31:07 -07:00
Eevee (Evelyn Woods)
0f0c7437a6
Allow rewinding a replay without desyncing it
2020-12-11 21:14:19 -07:00
Eevee (Evelyn Woods)
410af788fc
Fix teleporters, and more generally out-of-turn movement
2020-12-11 20:58:50 -07:00
Eevee (Evelyn Woods)
a96c089d7f
Move the debug panel to a sidebar
2020-12-11 19:43:22 -07:00
Eevee (Evelyn Woods)
b8dd0ae41e
Add a delay before restarting a failed level by tapping the viewport
2020-12-11 14:39:14 -07:00
Eevee (Evelyn Woods)
75e981335f
Restore the input viewer
2020-12-11 14:25:02 -07:00
Eevee (Evelyn Woods)
6c2afd7e32
Fix flicker when pushing a block across multiple cells
2020-12-11 13:59:23 -07:00
Eevee (Evelyn Woods)
2f130861d6
Remove animation_{progress,speed} and fix interpolation
2020-12-11 13:56:41 -07:00
Eevee (Evelyn Woods)
5572b3e692
Implement viewport size override debug setting
2020-12-10 18:53:23 -07:00
Eevee (Evelyn Woods)
b75253a249
Rearrange actor loop to put movement advancement at the end
...
I don't know why I ever thought this was a separate pass; I think it was
just the easiest way to make smooth scrolling work when I first
implemented it on like day 2. Turns out it wasn't ever correct and has
all manner of subtle implications I'll be sorting out for ages.
This does make the turn-based stuff //way// simpler, though.
2020-12-10 18:51:40 -07:00
Eevee (Evelyn Woods)
831a9392e3
Fix debug icon URL in prod
2020-12-10 13:54:59 -07:00
Eevee (Evelyn Woods)
81f7e7fd64
Add encodings for the gift bow and circuit block
2020-12-10 13:51:15 -07:00
Eevee (Evelyn Woods)
823fe4de37
bestowal_bow => gift_bow, directional_block => frame_block
2020-12-10 13:28:40 -07:00
Eevee (Evelyn Woods)
bd4cc10b16
Implement foil
2020-12-10 12:48:01 -07:00
Eevee (Evelyn Woods)
ef78085e40
Ghosts turn left, not right!
2020-12-10 12:45:15 -07:00
Eevee (Evelyn Woods)
422c702777
Allow blocks to reverse on railroads; partially implement teleporter wiring
2020-12-10 12:25:49 -07:00
Eevee (Evelyn Woods)
6063ea9fba
Wired tracks only switch on pulse; wired red teleports only work when powered
2020-12-09 21:07:14 -07:00
Eevee (Evelyn Woods)
db2a24319d
Fix lightning bolt; implement speed boots
2020-12-09 20:52:58 -07:00
Eevee (Evelyn Woods)
b01d50c7e8
Move replay support into the debug panel
2020-12-09 20:36:13 -07:00
Eevee (Evelyn Woods)
b2ff27f241
New LL tile: circuit block, which overrides any wiring below it
2020-12-09 20:23:27 -07:00
Eevee (Evelyn Woods)
235cc79e8b
Add LL-specific exit poses for Lexy and Cerise
2020-12-09 20:22:35 -07:00
Eevee (Evelyn Woods)
e6d7876679
Fix directional blocks losing their arrows after being cloned
2020-12-08 19:00:50 -07:00
Eevee (Evelyn Woods)
a23afe3d90
Editor: Disallow erasing the floor (!)
2020-12-08 18:58:59 -07:00
Eevee (Evelyn Woods)
ed58cbac6b
Editor: Add a (glitchy) wire tool; add right-click support to existing tools (hurrah)
2020-12-08 18:56:49 -07:00
Eevee (Evelyn Woods)
829184056e
Fix activating debug mode before loading a level
2020-12-08 17:54:21 -07:00
Eevee (Evelyn Woods)
35bbac9c99
Change the debug trigger to something more accessible
2020-12-08 17:46:48 -07:00
Eevee (Evelyn Woods)
a44ed295a2
Fix ball animation
2020-12-08 17:23:27 -07:00
Eevee (Evelyn Woods)
90b583df44
In CC2 (and Lynx, for different reasons), clones are immediately nudged out of the cloner
2020-12-08 17:22:20 -07:00
Eevee (Evelyn Woods)
f521bd6d2d
New debug options: disable interpolation, show actor bboxes
2020-12-08 16:40:35 -07:00
Eevee (Evelyn Woods)
4ee56fad01
Briefly reveal invisible walls, as in CC2
2020-12-08 12:48:25 -07:00
Eevee (Evelyn Woods)
9735ef93e9
Fix being unable to click the CC2 action buttons more than once
2020-12-08 11:24:59 -07:00
Eevee (Evelyn Woods)
6d39fd3831
Allow "rotating" a counter tile to alter its value
2020-12-07 22:07:20 -07:00
Eevee (Evelyn Woods)
35f040c8d7
Implement saving of logic gates and directional blocks
2020-12-07 21:15:18 -07:00
Eevee (Evelyn Woods)
2849260672
Add swivels and stopwatches to the palette
2020-12-07 12:50:03 -07:00
Eevee (Evelyn Woods)
f462ae3394
Add some more complex tiles to the palette; add ,/. shortcuts
2020-12-07 12:45:21 -07:00
Eevee (Evelyn Woods)
c4bb1f3df1
Editor: Add a dedicated level browser with previews, and a button to add a new level
2020-12-06 20:57:02 -07:00
Eevee (Evelyn Woods)
e754e483ec
Update the pack name when changing it in the editor
2020-12-06 19:23:19 -07:00
Eevee (Evelyn Woods)
aeac5c285b
Finally add and wire up most of the debug panel
2020-12-06 18:51:12 -07:00
Eevee (Evelyn Woods)
c1ba299e9f
Fix collision for socket and exit
2020-12-06 17:01:47 -07:00
Eevee (Evelyn Woods)
90b6498ff9
Make wires and gray buttons affect swivel doors
2020-12-06 16:57:07 -07:00
Eevee (Evelyn Woods)
30261a106f
Mostly implement rover
2020-12-06 16:51:24 -07:00
Eevee (Evelyn Woods)
8428572def
Step in reverse order; allow pushing blocks on railroads; gliders ignore turtles
2020-12-06 16:29:07 -07:00
Eevee (Evelyn Woods)
4838bb189b
Fix keys accumulating while paused
2020-12-06 16:23:43 -07:00
Eevee (Evelyn Woods)
54381370c0
Add timid teeth; move movement decisions onto tile types; improve doppelganger behavior
2020-12-06 16:16:04 -07:00
Eevee (Evelyn Woods)
d981a0a4be
Fix some interactions that differ between players/doppelgangers; add Cerise doppelganger movement
2020-12-06 14:59:54 -07:00
Eevee (Evelyn Woods)
076aa9133a
Improve splash page slightly; add pack saving in editor
2020-12-06 14:03:36 -07:00
Eevee (Evelyn Woods)
70df85187f
Toggle force floors when powered
2020-12-06 11:13:37 -07:00
Eevee (Evelyn Woods)
f7080a2697
Editor: Fix shift-pencilling a tile with properties
2020-12-03 22:51:07 -07:00
Eevee (Evelyn Woods)
cb62786470
Fix yellow teleport behavior (you pick up even if it itself is not blocked); play pickup sound
2020-12-03 22:43:24 -07:00
Eevee (Evelyn Woods)
caf4906176
Fix a crash when trying to drop from an empty inventory
2020-12-03 22:21:44 -07:00
Eevee (Evelyn Woods)
564d247657
Play the thief sound even if you only lost bonus points
2020-12-03 21:58:45 -07:00
Eevee (Evelyn Woods)
30062485ab
Fix hint saving
2020-12-03 21:38:39 -07:00
Eevee (Evelyn Woods)
87ac6f94a3
Editor: More tiles; more metadata; save hints, more or less
2020-12-03 21:19:47 -07:00
Eevee (Evelyn Woods)
700d3898ab
Add a half-baked notion of perception level to tile rendering
2020-12-03 21:18:46 -07:00
Eevee (Evelyn Woods)
8505b132bb
Fix some minor bugs introduced into turn-based mode
2020-12-03 21:17:50 -07:00
Eevee (Evelyn Woods)
b97aaa81a9
Slime doesn't kill blobs; implement bribe; fix player size on level restart
2020-12-03 20:52:43 -07:00
Eevee (Evelyn Woods)
0cd1ea342d
Implement yellow teleport pickup behavior
2020-12-03 20:52:00 -07:00
Eevee (Evelyn Woods)
3c43b8d7cd
Respect a level's intended viewport size
2020-12-03 17:49:02 -07:00
Eevee (Evelyn Woods)
0885bfc9d2
Make hook load, canopy work, and force floors reverse with gray button
2020-12-03 17:48:24 -07:00
Eevee (Evelyn Woods)
411005eaa6
Editor: Stub out support for actually saving levels
2020-12-03 15:40:44 -07:00
Eevee (Evelyn Woods)
89ae9aa4a3
Fix C2M compression occasionally losing the last byte
2020-12-03 15:39:11 -07:00
Eevee (Evelyn Woods)
c1452e005f
Disable action buttons when appropriate; add inv overflow; partial CC1 support
2020-12-02 17:23:55 -07:00
Eevee (Evelyn Woods)
e51665b612
Add basic support for drop/cycle/swap
2020-12-02 17:18:54 -07:00
Eevee (Evelyn Woods)
8d197ce479
Add a basic implementation of doppelgangers
2020-12-02 15:03:13 -07:00
Eevee (Evelyn Woods)
f0680ce0c4
Cleaned up several tile properties; added railroad adjusting
2020-12-02 13:54:32 -07:00
Eevee (Evelyn Woods)
72cba627a8
Add a prototype railroad track tool
2020-12-02 12:23:09 -07:00
Eevee (Evelyn Woods)
aa41336b90
Add more tiles and more kinds of adjustment
2020-12-02 11:54:15 -07:00
Eevee (Evelyn Woods)
ec5d9f7b12
Editor: Add selected tile, tool help, and hint editing; clean up toolbar style
2020-12-02 11:34:46 -07:00
Eevee (Evelyn Woods)
0d376e003e
Editor: Teach the adjust tool to edit individual tiles
2020-12-02 09:05:20 -07:00
Eevee (Evelyn Woods)
560a89cfd3
Fix using the wrong tile for the railroad switch
2020-11-30 09:09:21 -07:00
Eevee (Evelyn Woods)
e7c9bbe846
Implement most of the railroad behavior
2020-11-30 09:08:55 -07:00
Eevee (Evelyn Woods)
8d26de6915
Implement railroad rendering
2020-11-28 12:56:08 -07:00
Eevee (Evelyn Woods)
14061dec0e
Fix the editor's viewport size to match the level
2020-11-28 12:36:35 -07:00
Eevee (Evelyn Woods)
4218657c28
Use consistent drawing behavior in the editor; add shift, ctrl pencil modifiers
2020-11-28 11:59:57 -07:00
Eevee (Evelyn Woods)
dff3081194
Editor: center/pad the level, fix some bugs with pencil drawing
2020-11-28 11:07:02 -07:00
Eevee (Evelyn Woods)
349af15e05
Fix being stuck in rewind mode forever when using the button
2020-11-25 03:59:57 -07:00
Eevee (Evelyn Woods)
50c81c5c96
Add directed blob + walker sprites and a custom slime splash (btw slime now destroys stuff)
2020-11-25 03:37:58 -07:00
Eevee (Evelyn Woods)
3a454d77f5
Implement the remaining logic gates and /most/ of their rendering!
2020-11-25 03:14:06 -07:00
Eevee (Evelyn Woods)
ac6e33bb6c
Simplify blitting; fix arrow blitting; impl light switch; load more items
2020-11-25 01:14:15 -07:00
Eevee (Evelyn Woods)
6c6ce8f344
Fix fireballs being blocked by fire
2020-11-24 23:13:25 -07:00
Eevee (Evelyn Woods)
4b6a8e49ae
Fix errors when drawing outside the level in the editor
2020-11-24 01:31:09 -07:00
Eevee (Evelyn Woods)
5cb29c8f7d
Overhaul collision
...
Collision now uses bits and masks. The main upshot is that ghost and
ice/directional blocks collide much more correctly, now. And turtles
block fireballs.
Also, monsters can now move over "no" signs, and can trample the player
if she's standing on top of an item.
While I was at it, I finished implementing the "bestowal bow", an item
mod (same layer as the "no" sign) that allows any actor to pick up the
item in that tile.
2020-11-23 23:41:32 -07:00
Eevee (Evelyn Woods)
fb301b3b3e
Initialize direction when placing actor tiles in the editor
2020-11-23 22:18:40 -07:00
Eevee (Evelyn Woods)
ca4eaa86cb
Fix some minor aesthetic issues with the editor
2020-11-23 21:54:53 -07:00
Eevee (Evelyn Woods)
39d463932b
Remove the "stuck" flag and fix all the repercussions of that
2020-11-23 21:35:28 -07:00
Eevee (Evelyn Woods)
e803af2fd2
Handle actors starting on force floors; partially implement item bestowal
2020-11-23 19:22:59 -07:00
Eevee (Evelyn Woods)
37072fa003
Add three new music tracks from notchris
2020-11-03 14:07:25 -07:00
Eevee (Evelyn Woods)
81c7f97d72
Improve behavior on mobile
...
- Hide the key hints in portrait mode
- Make auto-scaling more robust; it now handles when the player root is
wider than the actual play area, it better understands the inventory
behavior in portrait mode, and it recognizes when it needs to shrink;
with these changes, the game actually fills the screen on both Firefox
and Chrome on my phone!
- Replace the text buttons with SVG icons
- Add a little more contrast to button edges
- Fix alignment of the heart/time/score counters in portrait mode
- Detect movement based on where the touch is relative to the level
viewport, not the entire play area (oof)
2020-11-03 13:50:34 -07:00
Eevee (Evelyn Woods)
1b6bd68879
Bump undo buffer size to 30 seconds
2020-11-03 12:09:12 -07:00
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