Eevee
f0cd4d3c5a
Merge pull request #22 from Patashu/master
...
fix turn-based mode
2020-12-31 17:23:24 -07:00
Eevee (Evelyn Woods)
d700561c0f
Add a cursor to the editor
2020-12-30 11:52:27 -07:00
Timothy Stiles
f6a79456e9
fix turn-based mode
2020-12-30 13:01:01 +11: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)
819a2e2203
Make actors bonk on ice even if they weren't already sliding
2020-12-29 10:16:10 -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)
f6f83a45f1
Add a teleport flash
2020-12-28 14:21:28 -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)
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)
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)
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)
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)
86bf90ee89
Don't let the last player walk back out of the exit
2020-12-24 10:18:45 -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)
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)
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)
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)
a413d1afc2
Fix bowling balls to start rolling immediately
2020-12-19 19:25:32 -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)
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)
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)
cace6d4180
Allow CC2 actions anytime the player can move, including on force floors
2020-12-16 20:53:42 -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)
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)
a91d7f24a1
Fix when we remember the player's move
2020-12-16 01:14:49 -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)
daa3581be0
Fix pressing CC2 actions while moving
2020-12-15 21:14:38 -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)
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)
3e18e38f15
Add rough implementations of dynamite and bowling ball
2020-12-14 23:25:48 -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)
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)
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)
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)
0f5b8098f6
Split teleporting into its own pass, like Lynx
2020-12-13 02:23:14 -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)
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)
8671bee08b
Run wiring thrice per tic; recognize some tiles have odd propagation rules
2020-12-11 22:49:23 -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)
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)
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)
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)
235cc79e8b
Add LL-specific exit poses for Lexy and Cerise
2020-12-09 20:22:35 -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)
8428572def
Step in reverse order; allow pushing blocks on railroads; gliders ignore turtles
2020-12-06 16:29:07 -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)
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)
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)
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