Commit Graph

95 Commits

Author SHA1 Message Date
Timothy Stiles
dece34f365 implement x5 Bonus
also make it so bonuses of 1mil+ are rendered reasonably in-game
(100bil+ starts breaking the results screen but I think that's lower priority)
2021-02-14 16:43:59 +11:00
Timothy Stiles
f64302f324 Implement Cracked Ice
Cracked Ice: Turns into water when something steps off of it (except ghosts).
Also had to implement slide_ignores/item_slide_ignores since I needed a way to ignore static aspects of the tile without preventing its functions from being called. there's probably a better way IDK
2021-02-14 15:48:20 +11:00
Timothy Stiles
c27af789cb Implement Hole and Cracked Floor
Hole: A bottomless pit. Destroys everything (except ghosts).
Cracked Floor: Turns into a hole when something steps off of it (except ghosts).
2021-02-14 15:12:21 +11:00
Timothy Stiles
1f6c86c146 Implement Electrified Floor
Conducts power (like a blue teleporter). While powered, destroys anything not wearing lightning boots (except dirt blocks).
2021-02-14 14:22:28 +11:00
Timothy Stiles
5cc5370817 Global Cyclers can cycle actors now too 2021-02-07 23:19:33 +11:00
Timothy Stiles
1040646393 implement the Turntable
Rotates anything entering this tile (counter)clockwise. Frame blocks are rotated too. If connected to wire, only functions while receiving power.
2021-02-07 21:47:52 +11:00
Timothy Stiles
4f0ff2b346 Terraformer alt behaviour when it has an item on top
When activated, if there's an item on its tile, copies the item to the tile in front of it. Otherwise, copies the item AND terrain BEHIND it to the tile in front of it.
2021-02-06 23:08:39 +11:00
Timothy Stiles
0100f1e12c spaceify 2021-02-06 16:07:40 +11:00
Timothy Stiles
e134b4cbd9 Implement the Dormant Lava
Acts like dirt. However, fireballs will enter it and turn it into Fire in the process.
2021-02-06 16:07:10 +11:00
Timothy Stiles
8ffc6e1127 implement the Halo
Protects the player from death once, destroying the would-be killer in the process.
2021-02-06 12:00:45 +11:00
Timothy Stiles
4b63b4f65f global cyclers don't cycle ANY global cycler's surrounding tiles 2021-02-05 16:15:53 +11:00
Timothy Stiles
bddde32325 implement the Global Cycler
When activated, every terrain/item on the surrounding four tiles in the entire level becomes the terrain/item one clockwise. Adjacent tiles with a 'no sign' on them are ignored. Two of the same tile in a row mean that tile will not be transformed and will stay as-is.
2021-02-05 15:26:00 +11:00
Timothy Stiles
9b76c6b9ce implement the Terraformer
The Terraformer is like a clone machine for everything that isn't an actor. It copies the terrain (and item) behind it to in front of it when powered.
2021-02-05 14:41:11 +11:00
Eevee (Evelyn Woods)
acfad66974 Add undo/redo support to the editor 2021-01-25 15:26:56 -07:00
Eevee (Evelyn Woods)
d21bfd4601 Fix a typo when moving levels 2021-01-20 12:00:47 -07:00
Eevee (Evelyn Woods)
7cb2d949db Clarify flame jet tooltips 2021-01-20 12:00:37 -07:00
Eevee (Evelyn Woods)
ff33c42cc2 Keep the editor's level browser dialog around, and render previews faster
It's kind of annoying to watch the previews flicker into existence anew
every time you open the dialog, if you're working on several levels at a
time.
2021-01-20 11:59:29 -07:00
Eevee (Evelyn Woods)
b9037c1ce1 Remember last opened level in editor; prevent deleting the current level 2021-01-16 02:50:52 -07:00
Eevee (Evelyn Woods)
ac9b702eaa Add controls for rearranging, duplicating, and deleting levels 2021-01-16 01:45:57 -07:00
Eevee (Evelyn Woods)
f89cccedb2 Pin the fflate version; 0.5.3 is unusable 2021-01-14 04:35:08 -07:00
Eevee (Evelyn Woods)
cf72daacbe Checkpoint some minor editor bits 2021-01-14 00:53:54 -07:00
Eevee (Evelyn Woods)
dfed3f2db9 Fix copied floated selections being entangled 2021-01-11 01:30:16 -07:00
Eevee (Evelyn Woods)
c2ed444ca0 Fix the drawing of copying a floating selection 2021-01-11 00:23:18 -07:00
Eevee (Evelyn Woods)
fb1e749a28 Fix a couple places the editor wasn't redrawing 2021-01-10 14:38:37 -07:00
Eevee (Evelyn Woods)
cc48136d94 Fix the editor's force floor tool 2021-01-07 18:00:29 -07:00
Eevee (Evelyn Woods)
7ceab97472 Fix the editor's partial redrawing; place popup editors by bbox, not mouse position 2021-01-07 17:55:11 -07:00
Eevee (Evelyn Woods)
f35da9cc2b Finally populate the options dialog, with volume controls and tileset selection 2021-01-06 19:04:28 -07:00
Eevee (Evelyn Woods)
a7310cf59b Fix bad editor state caused by copying a selection 2021-01-05 22:38:05 -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)
f03144ba91 Fix editing wire tunnels 2021-01-03 19:45:34 -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)
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)
044c08c3fc Add support for downloading an entire pack as a zipped C2G 2021-01-01 14:44:48 -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)
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)
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