doodle/pkg
Noah Petherbridge d7a96d1770 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-09 22:42:22 -07:00
..
balance New TabFrame Widget for Doodads and Settings 2021-07-25 21:46:55 -07:00
branding Zoom In/Out Feature: WorldIndexAt Fixed 2021-07-13 18:04:25 -07:00
campaign Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
collision Collision: Fix walking up leftward slopes 2021-06-02 21:49:29 -07:00
doodads New TabFrame Widget for Doodads and Settings 2021-07-25 21:46:55 -07:00
drawtool Brush Pattern Textures 2021-06-09 22:36:32 -07:00
enum Code Layout Refactor 2019-04-09 17:35:44 -07:00
filesystem Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
keybind Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
level Loading Screen 2021-07-18 21:19:52 -07:00
license Diverge Free vs. Paid Features 2021-06-16 22:35:01 -07:00
log Switch github.com/kirsle/golog to git.kirsle.net/go/log 2019-12-22 18:34:31 -08:00
modal Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
native WIP Publish Dialog + UI Improvements 2021-06-10 22:36:22 -07:00
pattern Loading Screen 2021-07-18 21:19:52 -07:00
physics Overhaul the Platformer Physics System 2020-04-04 21:00:32 -07:00
scripting Thief and Inventory APIs 2021-08-09 22:42:22 -07:00
shmem Changelog and Prepare v0.5.0 for Release 2021-03-31 19:16:33 -07:00
sound WIP Game Settings Window, WASM Fixes, Sound FX 2020-09-01 20:54:58 -07:00
sprites Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
uix Thief and Inventory APIs 2021-08-09 22:42:22 -07:00
updater Updater: Better SemVer version checks for updates 2021-07-11 14:09:18 -07:00
usercfg Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
userdir Tighten Doodad JavaScript API, User Documentation 2020-04-21 23:50:45 -07:00
wallpaper Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
wasm WASM: Store User Files in localStorage 2019-06-27 15:59:18 -07:00
windows New TabFrame Widget for Doodads and Settings 2021-07-25 21:46:55 -07:00
cheats.go Doodads: Small Key Door + Bigger Crumbly Floor 2021-01-03 17:06:33 -08:00
commands.go Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
config.go Go 1.16 embed instead of go-bindata 2021-07-13 18:04:25 -07:00
doodle.go Loading Screen 2021-07-18 21:19:52 -07:00
editor_scene_debug.go Code Layout Refactor 2019-04-09 17:35:44 -07:00
editor_scene.go Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
editor_ui_doodad.go Embeddable Doodads In Levels 2021-06-13 14:59:03 -07:00
editor_ui_menubar.go Shift to scroll slowly + Doodads on Q 2021-07-13 18:04:25 -07:00
editor_ui_palette.go Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
editor_ui_popups.go Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
editor_ui_toolbar.go Settings Window + Bugfix 2021-06-19 22:14:41 -07:00
editor_ui.go Loading Screen 2021-07-18 21:19:52 -07:00
fps.go Collision Box Updates 2021-06-02 20:50:28 -07:00
guitest_scene.go The Window Manager Update 2020-04-06 23:21:17 -07:00
main_scene.go Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
menu_scene.go Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00
play_inventory.go Doodads: Small Key Door + Bigger Crumbly Floor 2021-01-03 17:06:33 -08:00
play_scene.go Thief and Inventory APIs 2021-08-09 22:42:22 -07:00
scene.go Doodads: Crumbly Floor, Start Flag & State Blocks 2019-12-30 18:13:28 -08:00
shell.go Loading Screen 2021-07-18 21:19:52 -07:00
story_scene.go Stabilize Load Screen by Deferring SDL2 Calls 2021-07-19 17:14:00 -07:00