2019-05-02 01:27:20 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Build all the doodads from their source files.
|
|
|
|
if [[ ! -d "./azulian" ]]; then
|
|
|
|
echo Run this script from the dev-assets/doodads/ working directory.
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir -p ../../assets/doodads
|
|
|
|
|
2020-09-19 05:35:43 +00:00
|
|
|
boy() {
|
|
|
|
cd boy/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2020-09-19 05:35:43 +00:00
|
|
|
cd ..
|
Thief and Inventory APIs
This commit adds the Thief character with starter graphics
(no animations).
The Thief walks back and forth and will steal items from other
doodads, including the player. For singleton items that have no
quantity, like the Colored Keys, the Thief will only steal one
if he does not already have it. Quantitied items like the
Small Key are always stolen.
Flexibility in the playable character is introduced: Boy,
Azulian, Bird, and Thief all respond to playable controls.
There is not currently a method to enable these apart from
modifying balance.PlayerCharacterDoodad at compile time.
New and Changed Doodads
* Thief: new doodad that walks back and forth and will steal
items from other characters inventory.
* Bird: has no inventory and cannot pick up items, unless player
controlled. Its hitbox has also been fixed so it collides with
floors correctly - not something normally seen in the Bird.
* Boy: opts in to have inventory.
* Keys (all): only gives themselves to actors having inventories.
JavaScript API - New functions available
* Self.IsPlayer() - returns if the current actor IS the player.
* Self.SetInventory(bool) - doodads must opt-in to having an
inventory. Keys should only give themselves to doodads having
an inventory.
* Self.HasInventory() bool
* Self.AddItem(filename, qty)
* Self.RemoveItem(filename, qty)
* Self.HasItem(filename)
* Self.Inventory() - returns map[string]int
* Self.ClearInventory()
* Self.OnLeave(func(e)) now receives a CollideEvent as parameter
instead of the useless actor ID. Notably, e.Actor is the
leaving actor and e.Settled is always true.
Other Changes
* Play Mode: if playing as a character which doesn't obey gravity,
such as the bird, antigravity controls are enabled by default.
If you `import antigravity` you can turn gravity back on.
* Doodad collision scripts are no longer run in parallel
goroutines. It made the Thief's job difficult trying to steal
items in many threads simultaneously!
2021-08-10 05:42:22 +00:00
|
|
|
|
|
|
|
cd thief/
|
|
|
|
make
|
|
|
|
cd ..
|
2020-09-19 05:35:43 +00:00
|
|
|
}
|
|
|
|
|
2019-05-02 01:27:20 +00:00
|
|
|
buttons() {
|
|
|
|
cd buttons/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2019-05-05 23:32:30 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
switches() {
|
|
|
|
cd switches/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2019-05-05 23:32:30 +00:00
|
|
|
doors() {
|
|
|
|
cd doors/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2019-05-05 23:32:30 +00:00
|
|
|
cd ..
|
2022-05-01 22:18:23 +00:00
|
|
|
|
|
|
|
cd gems/
|
|
|
|
make
|
|
|
|
cd ..
|
2019-05-05 23:32:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
trapdoors() {
|
|
|
|
cd trapdoors/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2019-05-02 01:27:20 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
|
|
|
azulians() {
|
|
|
|
cd azulian/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2019-05-02 01:27:20 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2020-12-30 04:31:35 +00:00
|
|
|
mobs() {
|
|
|
|
cd bird/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2020-12-30 04:31:35 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2019-07-02 22:24:46 +00:00
|
|
|
objects() {
|
|
|
|
cd objects/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
|
|
|
cd ..
|
2019-07-02 22:24:46 +00:00
|
|
|
|
2021-08-09 03:10:42 +00:00
|
|
|
cd box/
|
|
|
|
make
|
2019-12-31 02:13:28 +00:00
|
|
|
cd ..
|
2021-08-09 04:54:37 +00:00
|
|
|
|
|
|
|
cd crumbly-floor/
|
|
|
|
make
|
|
|
|
cd ..
|
2021-10-03 03:52:16 +00:00
|
|
|
|
|
|
|
cd regions/
|
|
|
|
make
|
|
|
|
cd ..
|
2022-09-25 05:00:17 +00:00
|
|
|
|
|
|
|
# cd test/
|
|
|
|
# make
|
|
|
|
# cd ..
|
2019-12-31 02:13:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
onoff() {
|
|
|
|
cd on-off/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2019-07-02 22:24:46 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2020-12-30 04:31:35 +00:00
|
|
|
warpdoor() {
|
|
|
|
cd warp-door/
|
2021-08-09 03:10:42 +00:00
|
|
|
make
|
2020-12-30 04:31:35 +00:00
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2022-05-01 22:18:23 +00:00
|
|
|
creatures() {
|
|
|
|
cd snake/
|
|
|
|
make
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
cd crusher/
|
|
|
|
make
|
|
|
|
cd ..
|
|
|
|
}
|
|
|
|
|
2020-09-19 05:35:43 +00:00
|
|
|
boy
|
2019-05-02 01:27:20 +00:00
|
|
|
buttons
|
Add Switches, Fire/Water Collision and Play Menu
* New doodads: Switches.
* They come in four varieties: wall switch (background element, with
"ON/OFF" text) and three side-profile switches for the floor, left
or right walls.
* On collision with the player, they flip their state from "OFF" to
"ON" or vice versa. If the player walks away and then collides
again, the switch flips again.
* Can be used to open/close Electric Doors when turned on/off. Their
default state is "off"
* If a switch receives a power signal from another linked switch, it
sets its own state to match. So, two "on/off" switches that are
connected to a door AND to each other will both flip on/off when one
of them flips.
* Update the Level Collision logic to support Decoration, Fire and Water
pixel collisions.
* Previously, ALL pixels in the level were acting as though solid.
* Non-solid pixels don't count for collision detection, but their
attributes (fire and water) are collected and returned.
* Updated the MenuScene to support loading a map file in Play Mode
instead of Edit Mode. Updated the title screen menu to add a button
for playing levels instead of editing them.
* Wrote some documentation.
2019-07-07 01:30:03 +00:00
|
|
|
switches
|
2019-05-05 23:32:30 +00:00
|
|
|
doors
|
|
|
|
trapdoors
|
2019-05-02 01:27:20 +00:00
|
|
|
azulians
|
2020-12-30 04:31:35 +00:00
|
|
|
mobs
|
2019-07-02 22:24:46 +00:00
|
|
|
objects
|
2019-12-31 02:13:28 +00:00
|
|
|
onoff
|
2020-12-30 04:31:35 +00:00
|
|
|
warpdoor
|
2022-05-01 22:18:23 +00:00
|
|
|
creatures
|
2019-07-07 06:50:38 +00:00
|
|
|
doodad edit-doodad -quiet -lock -author "Noah" ../../assets/doodads/*.doodad
|
2021-08-12 03:40:31 +00:00
|
|
|
doodad edit-doodad ../../assets/doodads/azu-blu.doodad
|
2020-09-19 05:35:43 +00:00
|
|
|
doodad edit-doodad -hide ../../assets/doodads/boy.doodad
|