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
Eevee (Evelyn Woods)
dea7a7b754
Add a splash screen and the beginning of an editor
2020-09-05 16:21:31 -06:00
Eevee (Evelyn Woods)
25989fc75b
Limit the undo stack to 200 tics
2020-09-03 13:55:19 -06:00
Eevee (Evelyn Woods)
8384b8d268
Auto-pause when losing focus
2020-09-03 13:53:22 -06:00
Eevee (Evelyn Woods)
ea31abe7a6
Change the viewport default size back to 9x9
2020-09-03 13:50:59 -06:00
Eevee (Evelyn Woods)
caf695acfe
Put thin walls on the terrain layer for now
2020-09-03 10:44:19 -06:00
Eevee (Evelyn Woods)
8309b80342
Fix draw order of tiles in a cell once and for all
2020-09-03 10:39:19 -06:00
Eevee (Evelyn Woods)
15d3d43b76
Let's just guarantee that tic_offset is never 1
2020-09-03 10:31:46 -06:00
Eevee (Evelyn Woods)
bd57f686c7
Fix walk animation speed; fix occasional camera hiccups
2020-09-03 10:28:34 -06:00
Eevee (Evelyn Woods)
041d0223c7
Make ignoring work on sliding tiles again
2020-09-03 10:28:17 -06:00
Eevee (Evelyn Woods)
4972b0bc82
Fix teeth behavior to match CC2
2020-09-03 10:11:26 -06:00
Eevee (Evelyn Woods)
2df8607243
Fixed several issues with animation and movement; quick stab at replay UI
...
- Animation now has its own timer and isn't linked to movement cooldown,
which is good for blocks since they don't have movement cooldown
- Destroyed actors don't crash the game again (oops)
- Slide and cooldown handling was reshuffled to better support the CC2
approach of landing on tiles with a delay; in particular, you move at
double speed on sliding tiles again!
- Demo playback got some rough UI so I don't have to keep editing the
source code to decide whether to play a demo
2020-09-03 09:46:37 -06:00
Eevee (Evelyn Woods)
bee6ba4c80
Fix CC2 encoding of S/E thin walls
2020-09-03 09:46:06 -06:00
Eevee (Evelyn Woods)
a36ca20b26
End replays at 0xFF; ignore P2's input; delete old comments
2020-09-03 09:45:51 -06:00
Eevee (Evelyn Woods)
44978490ed
Round to the pixel grid when drawing
2020-09-03 09:44:49 -06:00
Eevee (Evelyn Woods)
13dc5f73b1
Start to split out the renderer and add support for smooth scrolling
2020-09-03 07:36:05 -06:00
Eevee (Evelyn Woods)
8d89f7d9dd
Finish removing 'doomed'; remove Cell.each
2020-09-02 05:26:59 -06:00
Eevee (Evelyn Woods)
0ba5ecc7e3
Implement (PARTIAL) undo; remove 'doomed'; fix a few small tile bugs
2020-09-02 05:20:23 -06:00
Eevee (Evelyn Woods)
1cc631c27e
Load custom trap/cloner connections from CC1 .DAT levels
2020-09-01 09:48:17 -06:00
Eevee (Evelyn Woods)
5416167192
Disallow cloning when the target tile is blocked
2020-09-01 07:40:52 -06:00
Eevee (Evelyn Woods)
060895c5ba
Fix rendering of thin walls using a CC2 tileset
2020-09-01 07:36:14 -06:00
Eevee (Evelyn Woods)
4d6d835895
Implement walkers, blobs, and teeth
2020-09-01 07:01:02 -06:00
Eevee (Evelyn Woods)
aa7952a3dd
Improve dialog styling; add about text; stub out options
2020-09-01 06:46:29 -06:00
Eevee (Evelyn Woods)
c8bdf121d0
Auto-size the game to fit the browser window
2020-09-01 05:51:26 -06:00
Eevee (Evelyn Woods)
9dccb310e0
Implement random force floors
2020-09-01 05:26:25 -06:00
Eevee (Evelyn Woods)
7a9bc725d4
Implement blue teleporters
2020-09-01 05:15:50 -06:00
Eevee (Evelyn Woods)
cd7a328963
Delete the demo scrubber; complex and not very useful
2020-09-01 05:01:48 -06:00
Eevee (Evelyn Woods)
ab377f6593
Fix demo playback (!): bumping doesn't cause cooldown, thieves were backwards
2020-09-01 05:00:57 -06:00
Eevee (Evelyn Woods)
2ae053d87a
Implement traps!
2020-09-01 01:36:47 -06:00
Eevee (Evelyn Woods)
eb2dd7a4a4
Implement clone machine!
2020-09-01 01:31:42 -06:00
Eevee (Evelyn Woods)
2b4450fc8c
Prevent spacebar from scrolling
2020-08-31 12:24:07 -06:00
Eevee (Evelyn Woods)
af65e3d5b3
Whoops, fix syntax error
2020-08-31 12:18:39 -06:00
Eevee (Evelyn Woods)
8309ff37a8
Add an incredibly crappy restart button
2020-08-31 12:18:09 -06:00
Eevee (Evelyn Woods)
051730750b
Always put the player first in actor order
2020-08-31 12:07:11 -06:00
Eevee (Evelyn Woods)
730824e697
Define clone blocks and teeth in the CC2 tile layout
2020-08-31 12:06:58 -06:00
Eevee (Evelyn Woods)
6076b3c9a1
Add an incredibly bad level select
2020-08-31 11:33:01 -06:00
Eevee (Evelyn Woods)
a76a44e1b8
Fuck it, I guess let anyone use the secret query args
2020-08-31 11:06:27 -06:00
Eevee (Evelyn Woods)
070d276e8a
Implement green/blue buttons, tanks, monster death; stub out remaining CC1 objects; easy restart on death
2020-08-31 11:03:14 -06:00
Eevee (Evelyn Woods)
0390d54909
Styled the whole page; reimplemented pausing; implemented success, score, and time
2020-08-31 10:27:29 -06:00
Eevee (Evelyn Woods)
b871181bf4
Add support for demos, terrible UI for it, and a clumsy pause button
2020-08-31 08:40:44 -06:00
Eevee (Evelyn Woods)
101b68c017
Map out most of the parts of the CC2 tile layout that I can actually draw
2020-08-30 04:52:47 -06:00
Eevee (Evelyn Woods)
731d3c15a8
Rewrite movement loop and timing to better match Lynx rules
2020-08-30 01:50:34 -06:00