1
0
Fork 0
textual-engine/CHANGELOG.md

40 KiB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.4.0 (2021-06-06)

Features

  • actor: begin emitting commands for behavior actors (#91) (12811d8)
  • command: add worlds list (fixes #104) (80a3ff5)
  • loader: check path protocol before handling (fixes #56) (e116eab)
  • loader: extract URL split helper (4d4469f)
  • model: add default entity templates to world template, use default scripts (6f4e42c)
  • random: rename seed generator to alea, reflecting the algorithm used (11d7dc9)
  • render: add basic shortcut menus (#72) (ef9eef3)
  • render: add game over screens to React DOM and Ink renders (fixes #97) (fafc7f6)
  • render: debounce room and output updates, add mock shortcut menus (7fa2445)
  • render: make shortcut menus optional (fixes #72) (92df77b)
  • script: actors drop inventory upon death (fixes #106) (f7b33cb)
  • script: provide and use state find helper (55cf06c)
  • script: remove direct access to state, rename signal constants, begin testing local state (418d843)
  • state: clarify world state vs template (fixes #93) (3869e60)
  • state: merge state creation methods, remove noop save (d8941be)
  • state: move state creation to generator (a2143d5)
  • state: provide a way for scripts to end game (#83) (66b348a)
  • state: queue actor commands and step once all actors have responded (fixes #112) (61276f3)
  • state: remove verbs by setting script name to empty (fixes #75) (7932c5c)
  • state: support loading data files that do not contain state (#105) (04a60e3)
  • test: switch tests to console logging when DEBUG=TRUE (3fb7b79)
  • util: add collection to track queue completion (6fa2128)
  • util: pass config to managed services (8c8e6c3)
  • util: use page URL for config paths (25d57b5)
  • add and use catch-and-log helper (f5d2525)
  • add argument to run commands when state starts (fixes #79) (6148dea)
  • add helper for events without cancellation, use (d0d642c)
  • add service manager for batch stop (422cc1c)
  • combine entity slots and verbs into scripts, invoke verbs through script svc, split up scripts (12dd40c)
  • put loader on event bus (#85), update main to fire events, add create world meta-command (#70) (81c9821)
  • queue commands in state for next step (fixes #91), inform actor services of their actor(s), consolidate behavior actors (fixes #88) (a759b6e)
  • support custom verbs (fixes #78), show actor verbs in help (c7bfa2d)

Bug Fixes

  • trigger first render after input args (76912bf)
  • actor: localize help and game over text, improve error handling (2d4edef)
  • build: make it possible to switch layout for debug graph (a973526)
  • build: update esbuild exclude patterns (d9cb18e)
  • command: fix scrolling for debug meta-command (080a2f2)
  • data: increase damage for bat teeth (d21098d)
  • data: register common verbs for existing actors (48e8fab)
  • data: restore english text for debug graph (a8cde9a)
  • data: show inventory item ID when looking (940a920)
  • data: translate unknown verbs in error message (04c29bf)
  • docs: add animated snippet to readme (6448df6)
  • docs: add examples of template primitives (#98) (b51a285)
  • docs: add table of service eventing, coupling (ee7db0b)
  • docs: describe common verbs in getting started (13de49d)
  • docs: explain how to play (715fc3b)
  • docs: move custom verbs from planned to done (e9c8dc1)
  • docs: put services in their own doc (0bd1411)
  • module: make parser and tokenizer singletons in core module (f607a1e)
  • render: auto-focus Ink input, use typed config for render (01574de)
  • state: type step event (153c3d9)
  • type actor and render output, eliminate redundant single-element arrays (f5c019c)
  • docs: show major event flows (02fdf35)
  • docs: update arch with new services, world templates with format changes (#98) (8a413a7)
  • render: do not submit empty lines (8ca6d01)
  • script: remove test broadcast script (fa34063)
  • script: split up verb scripts (cc90062)
  • state: add error messages for pre-state verbs (fixes #99) (0f703c6)
  • state: clean up search params, remove leftover matcher params (9e797a7)
  • state: combine redundant searches for actor-room transfer, fix room expansion (0ad9c17)
  • state: emit load event when world loads, not just after creation (5191466)
  • state: fire join event before adding new actor to room (97bfb3e)
  • state: handle not-yet-valid verbs better (#99), invoke room verbs correctly, do not overwrite signal scripts (ab595f3)
  • state: make transfer helper entity type checks more strict, test (0241bad)
  • state: run initial room population before load event (b32b3d1)
  • state: use existing player actor when loading (fixes #100), keep player actor name and set id to pid (844663d)
  • state: wait until loader indicates done before showing save message, check load event for state property rather than path, test (edfac98)
  • test: cover behavior actor eventing, node fetch loader, stub others (1a3692b)
  • test: cover more meta commands (54d67bc)
  • test: cover player join, uninitialized state step (bba0901)
  • test: cover volume filter, stack map, state generator modifiers (700c147)
  • util: split up state and script utils (0cf60a6)
  • automatically create world when browser bundle starts (29abd47)
  • copy full context when calling transfer scripts, test stack map more (d0bbeab)
  • release services, listeners on quit, add event constants (3832dfc)
  • update embedded config in index (f19aa7d)

1.3.0 (2021-05-29)

Features

  • actor: make non-player actors move between rooms and attack players (fixes #49) (e503f38)
  • actor: notify behavior actors of state changes (b5a60a2)
  • build: add esbuild bundle and browser entrypoint (#7) (0626e63)
  • command: move command uses index, target portals by group and/or name (fixes #66) (a311955)
  • command: roll random damage on hit (fixes #65) (4a9bce9)
  • event: consolidate events through a bus (9f9e6b8)
  • loader: add browser fetch loader (fixes #77), split up node and browser loaders, load demo world from github (7e51863)
  • loader: add node-fetch loader for http/s worlds (#77) (89470f7)
  • locale: get current language from config (fixes #84) (d8e18ef)
  • state: filter output by source entity, room, and volume (fixes #67) (3b1637f)
  • state: fully implement template modifiers (fixes #6) (836f28f)
  • state: show help when game loop starts (c46fa21)
  • state: start applying template modifiers (#6) (d999962)
  • template: use template primitives in modifiers, basic replacement string (fixes #90) (6a8c71d)
  • add base types for template modifiers (#6) (0b9c2e9)
  • add React render, page loader, basic web UI (#7) (a3226ac)
  • generate unidirectional portals (fixes #59) (b96a040)
  • parse real CLI arguments to main (fixes #69) (b359902)
  • split actor service and tokenizer, type actor/render/state events (dc7d635)
  • unify browser/node entrypoints, enable DI modules through main args (ad12a7f)
  • use event bus throughout, strip whitespace from command parts, move common verbs to config, make portal depth an argument (320e5f7)
  • template: add step to template number (fixes #58) (5c036b0)
  • template: render verb and mixed-primitive maps (685dfe7)
  • util: add and test entity containment helpers (fixes #53) (7932e27)
  • world: record starting actor and room in saved state (fixes #68) (e64e561)

Bug Fixes

  • build: copy entry HTML to output (06e4c8d)
  • build: exclude docs, bundles from coverage (2daee6d)
  • build: process coverage correctly for repeat bundle builds (50842fa)
  • build: rename push branch var to fix CC report branch (03e9541)
  • command: add localized error when portal is missing, describe room on entry (8a4e63d)
  • command: filter hit messages (fixes #82) (28c239b)
  • command: only allow actors to drop items from their own inventory (#64) (e46165e)
  • command: only take items in the current room, prevent accidental pickpocketing (fixes #64) (dbb6634)
  • command: print help verbs as lines to fix translation (9b455f0)
  • component: monospace React output (3d18347)
  • data: add marsh room (fd3e64a)
  • data: correct damage modifier for shiny swords (0ad032d)
  • data: give multiple possible destinations to more portals (1be1635)
  • docs: add snippet image to reamde (42a1c95)
  • docs: link dev, worlds from getting started (ecb0d7e)
  • docs: link readme image to GH pages (728b5f4)
  • docs: mention GH pages in readme (1ec1326)
  • locale: log when adding locale bundles (2de2471)
  • module: export actor locator rather than calling DI container during state steps (3c1903d)
  • module: remove player-actor injection symbol, ensure actor service only starts once (8469297)
  • random: generate integers correctly when min equals max (bcc6f33)
  • random: remove unused ID method, cover the rest with tests (df2d5d6)
  • render: add debounce helper for React output, unused (b7a57d9)
  • render: add kind field to ink render logs (b17fc26)
  • render: unify React-based render frontends (ee497c5)
  • render: update React turn indicator (dea790e)
  • script: flatten actor step logic, cover with tests (5e71721)
  • script: prevent actors from hitting themselves (#64) (c2e59fb)
  • state: DRY up generator logic, add template ref list methods (8d9294f)
  • state: print help on a single line again, but translated (2877e01)
  • test: begin testing input services, fix errors (db0e356)
  • test: cover collection rendering in chain template (9def185)
  • test: cover i18next locale, local script services (25a2e7a)
  • test: cover local ID counter, chain template engine (4e1c7a9)
  • test: cover page loader (931158d)
  • test: cover state focus helper (c9273c9)
  • test: cover YAML parser (ecbc828)
  • util: clean up debug graph portal labels (c6a4b29)
  • util: correct ID prefix matching, test that and tranfer helper (7174c30)
  • world: reduce the chances of normal goblins having swords (95679c4)
  • replace incorrectly-used invalid target errors (adc429c)
  • use typed errors (0784fcd)

1.2.0 (2021-05-23)

Features

  • input: translate verbs before sending commands (e03f0f5)
  • state: localize output while streaming (#60), select random dest portal from options (5ed643c)
  • begin loading and using locale from config (0645a3e)
  • make state event emitter, consume events from render (#63) (3722671)
  • build: add docker image, split up dev and prod deps (a9d4cbe)
  • build: add eslint target (90186a0)
  • build: add gitlab CI pipeline (11e99f4)
  • command: add item get slot to actors and show item info (fixes #45) (dd03793)
  • command: honor target for look command (fixes #5) (31b6d0f)
  • command: look up local target for use command (fixes #28) (3c96730)
  • command: use command target for actor step target searches, disable actor step after death (69cb0e8)
  • input: move actor/input mapping into DI module (f2c3c7f)
  • input: parse target index from commands (4de58c7)
  • module: split input services into their own module (2741b22)
  • render: add marker in between turns (fixes #48) (87207ec)
  • template: reverse join chain operator order, AND first (d72d955)
  • util: provide singleton factory in constructor (79164b5)
  • world: add chance to template refs (fixes #55) (aed8219)
  • world: extract focus and transfer helpers from state svc (#50) (4c97f1b)
  • world: implement save/load for local state (c866e64)
  • world: turn name/desc into template strings and start actor/room into template refs (c1fca0c)
  • move meta command handling to state service (d4a9b14)

Bug Fixes

  • build: add codeclimate and npm configs (1243a99)
  • build: add coverage and help targets, help for others (8f3d94e)
  • build: lower coverage reqs to match current tests (38a3283)
  • build: make docker image script fail if build or push does (9c2f1eb)
  • build: make docker image variable, DRY up run targets (353938e)
  • build: remove noop CC prep job (f0b3614)
  • component: remove output from Ink/React state (d32dae5)
  • docs: cover build targets, debugging (043522d)
  • render: remove extra newline, fix input height for ink render (86434ad)
  • render: use text box component in ink render that supports scrolling (c272d0b)
  • translate verbs when world is created, remove min param from map increment helper, various lint fixes (7657454)
  • build: add CI target (e58adea)
  • build: specify paths for CC upload (56ea58c)
  • docs: describe most world template fields (9a6f389)
  • docs: start describing world format, authoring (42e25b2)
  • lint: give single-letter generic params better names (1b240fe)
  • lint: initial cleanup (77f7e97)
  • lint: move components out of render tree (8a7a707)
  • lint: remove unnecessary cast, some obsolete todos (e141fd7)
  • lint: rename script scope to context, which it is (5bdf6da)
  • lint: round 2 (3d87338)
  • locale: localize existing strings, improve some logs (fd4d769)
  • module: use singleton helper in DI modules (3ce8e44)
  • render: consolidate line render prompts, limit ink render history size (a5c415a)
  • render: ensure line render writes output before next prompt (26b26e6)
  • render: handle errors within effects when event listeners are released early (9003a5d)
  • render: move step output display to render hook (25f0d3b)
  • render: put newline between turn prompt and output on line render (d5ad920)
  • render: remove event listeners during component cleanup (a95934f)
  • render: remove logger-render adapter, do not write world state to logs on exit (306a791)
  • render: show turn prompt, split input into its own module (b3713eb)
  • state: extract world generator helper from state service (19d3b6b)
  • state: refresh focus and transfer helpers on state load (0e77722)
  • update line render to work with new events, clean up meta commands (c72fc5d)
  • render: pass step result directly to ink state, split step and line state (531a3eb)
  • script: only describe current room if no target is passed to look (b27c15e)
  • script: only print command info for player (af3efe6)
  • script: send command feedback to render output (8619bf1)
  • template: join templates with spaces now that IDs are not templates (fixes #52) (f2acbb0)
  • test: cover map and state debug helpers (283c8ba)
  • test: cover models, register chai-as-promised (ba6cc55)
  • test: join chain tests for AND/OR flip (9311363)
  • util: make state debug utils return output as strings rather than rendering (fa9a26f)
  • util: reduce looping when searching state, support custom matchers (fixes #44) (a305361)
  • world: do not template entity IDs (fixes #54) (c51434d)
  • world: match entities by ID segment when searching state (fixes #57) (50708bc)
  • world: remove redundant lookup from transfer helpers, since clients already have target info (518d94c)
  • make sure service loggers create a child with their constructor name (4c106f6)
  • remove controller nomenclature (7ae4fe8)

1.1.0 (2021-05-16)

Features

  • command: implement actor hit command (e25be91)
  • config: load logger options from config (1e38a04)
  • config: validate config data before use (d49d597)
  • loader: validate most data file fields (071e543)
  • render: add Ink renderer with history and input (c2ffe69)
  • render: limit Ink render history length, exit cleanly (40c3a44)
  • render: push main loop into render (dd6a53d)
  • script: add room id to look output (201e28e)
  • state: implement item transfer, drop/take commands (b823475)
  • util: add state search helper for name or id (2266380)

Bug Fixes

  • render: remove handlers individually rather than by name (2f8289e)
  • script: use scope state for broadcast search (7a1c5de)
  • state: prevent transfer when target item is not in the same room, or when source and dest are the same (1a418a6)
  • template: use group/item delimiters from options when splitting (76b1fe6)
  • util: move async tracker out of main (30d6341)

1.0.0 (2021-05-15)

Features

  • build: add release target (3aa9356)
  • build: add standard-version for changelog and tagging (b9cbb4f)