Skip to content

Releases: aurule/npc

v2.0.2

06 Jan 19:36
Compare
Choose a tag to compare

Changelog for NPC v2.0.2

Another small release with some bug fixes and convenience tags.

Added

  • New @monster tag for generic dnd3 creatures
  • New @async tag for fate-ep system
  • Match Value subpath component to add a static named directory when a tag matches a value
  • New history attribute for all tags to track changes to the definition by version
  • [api] Added first(...) helper to character_view to simplify some template logic

Changed

  • Campaign info command shows full system name

Fixed

  • Crash when parsing a subtag that did not exist for a given parent
  • Tags that cannot accept a value are assigned one during creation
  • Migrations run on legacy user settings
  • [api] All subpath components now respect the only_existing flag independently
  • Crash when loading a character with utf-8 symbols

For changes in previous versions, see the files in changelog/.

v2.0.1

27 Dec 04:47
Compare
Choose a tag to compare

Changelog for NPC v2.0.1

This is mostly a bugfix release, but the new additional_files for plots and sessions is a handy feature to have.

Added

  • Plots and sessions can now have additional files for each entry
  • Documentation of internal API

Fixed

  • The plot file ((COPY)) placeholder was not respected

For changes in previous versions, see the files in changelog/.

v2.0.0

26 Dec 22:53
Compare
Choose a tag to compare

Changelog for NPC v2.0.0

This is the first release of the fully rewritten NPC! Now built around a central library, this version is much more flexible and configurable than v1. The list of changes below captures some of the important highlights, but definitely read through the documentation.

Added

  • [cli] Added describe command to explain configured systems, types, and tags.
  • Configurable custom game systems
  • Support for custom tags.
  • Migration tool to help move from v1 to v2
  • New org, role, and rank tags to replace group and rank.
  • Support for more built-in systems

Changed

  • [cli] Changed command for new characters. From npc c Changeling Mann to npc new changeling -n "Changeling Mann".
  • New config file layout and logic
  • Move from mako to jinja2 templates
  • Nested locale into region and region into location.
  • Complete rewrite of internal logic

Removed

  • Changeling sheet contents are no longer validated
  • The old gui is not available in this release
  • Deprecated keep tag. Use sticky instead.
  • Deprecated skip tag. Use delist instead.

Fixed

  • Preserve latest session and plot index when files are missing

For changes in previous versions, see the files in changelog/.

v2.0.0b5

26 Dec 22:34
Compare
Choose a tag to compare
v2.0.0b5 Pre-release
Pre-release

Changelog for NPC v2.0.0b5

This is the fifth pre-release build for NPC 2.0. This build fixes a few runtime errors in the cli.

Added

  • [cli] Added describe command to explain configured systems, types, and tags.
  • Configurable custom game systems
  • Support for custom tags.
  • Migration tool to help move from v1 to v2
  • New org, role, and rank tags to replace group and rank.
  • Support for more built-in systems

Changed

  • [cli] Changed command for new characters. From npc c Changeling Mann to npc new changeling -n "Changeling Mann".
  • New config file layout and logic
  • Move from mako to jinja2 templates
  • Nested locale into region and region into location.
  • Complete rewrite of internal logic

Removed

  • Changeling sheet contents are no longer validated
  • The old gui is not available in this release
  • Deprecated keep tag. Use sticky instead.
  • Deprecated skip tag. Use delist instead.

Fixed

  • Preserve latest session and plot index when files are missing

For changes in previous versions, see the files in changelog/.

v2.0.0b4

26 Dec 22:00
Compare
Choose a tag to compare
v2.0.0b4 Pre-release
Pre-release

Changelog for NPC v2.0.0b4

This is the fourth pre-release build for NPC 2.0. The goal for this build is to test the build system and try to run the resulting binaries.

Added

  • [cli] Added describe command to explain configured systems, types, and tags.
  • Configurable custom game systems
  • Support for custom tags.
  • Migration tool to help move from v1 to v2
  • New org, role, and rank tags to replace group and rank.
  • Support for more built-in systems

Changed

  • [cli] Changed command for new characters. From npc c Changeling Mann to npc new changeling -n "Changeling Mann".
  • New config file layout and logic
  • Move from mako to jinja2 templates
  • Nested locale into region and region into location.
  • Complete rewrite of internal logic

Removed

  • Changeling sheet contents are no longer validated
  • The old gui is not available in this release
  • Deprecated keep tag. Use sticky instead.
  • Deprecated skip tag. Use delist instead.

Fixed

  • Preserve latest session and plot index when files are missing

For changes in previous versions, see the files in changelog/.

Updated Hiding

21 May 23:33
Compare
Choose a tag to compare

The headliner for this release is a breaking change to the way tag hiding works. The basic hide directive still works, but hidegroup and hideranks are deprecated. Instead, there's a new and more powerful syntax:

@hide tagname >> value to hide Will hide only the "value to hide" instance of the named tag.

@hide group >> group name >> rank name Will hide only the named rank of the named group.

@hide group >> group name >> subtags Will hide all ranks of the named group.

There are a bunch of QOL enhancements as well. See below!

Added

  • The session command can now create additional files alongside the plot and session log
  • New employer group-like tag
  • Internal caching in the template formatter should speed up generating large character lists
  • YAML is now supported for configuration files alongside JSON. If a JSON file and a YAML file are both present with the same name other than the file extension, the JSON file will take precedence. This is due to the massively slower parsing speed of YAML files. All configuration files are present in both formats for reference.
  • Discrete classes for more involved character types: Changeling, Werewolf, and Spirit
  • New @keep directive flag to prevent a character from being moved by the reorg command
  • The changeling command accepts two new arguments: --freehold and --entitlement. These set the new character's freehold name and entitlement name, respectively.
  • It's now possible to hide a single tag value
  • New @nolint directive flag to exclude a character from linting

Changed

  • The session command got rewritten
    • Now reports which path was missing if either the plot path or session path are not accessible
    • Its settings structure is different: see the "story" section in "settings-default.json"
    • Template names are now used to locate existing files as well as generate new file names. They must contain NNN in the filename.
    • Character case in template names are now duplicated in generated files
    • Templates can have special "NNN" and "((COPY))" keywords that get replaced on file creation
  • The latest command now reports which path was missing if either the plot path or session path are not accessible
  • The latest command no longer requires the input "both" to return all the latest files. Instead, all files are returned by default and using a keyword limits what is returned. The function argument is now optional.
  • Files are opened by the system default editor for that type, or the "editor" value from settings.
  • The settings command now detects which format is in use
  • Character objects now store their tags in self.tags instead of directly on the object
    • Tag getting and setting has been moved from Character objects to their TagContainer and stored Tag objects
  • Strict character validation now flags the class type if there's a mismatch
  • Character path is now accessed through the path attribute, not through tags['path']
    • The has_path property has been removed. Test path presence by testing character.path directly
  • Each character type can have its own list of supported tags
    • This improves the support for oddball or unique tags, like auspice and ban, and allows more accurate linting
  • The list command no longer automatically opens all files. Instead, there's a new --open option to do that. The old --report option has been removed.
  • The @hide directive can now hide a tag, a single tag value, all the subvalues for a group value, or a single subvalue for a single group value. The syntax is straightforward: @hide tagname >> tag value >> subvalue.
    • The special subtags element hides the subtag entirely, so @hide group >> Orchestra >> subtags will hide all rank elements for the Orchestra group.

Fixed

  • New character objects won't choke on a non-list attribute value

Removed

  • The @hidegroup and @hideranks directives are deprecated and should be replaced using the new syntax

Werewolves!

27 May 17:36
Compare
Choose a tag to compare

Werewolves are here! With them come their spirit allies and enemies, and big improvements to the character listing feature: listings can now sort and section characters by a series of nested tags!

New features:

  • Werewolf characters
  • Spirit characters
  • Default tag values for new characters
  • Separate ignored paths for each command (requires settings change)
  • Better character sorting (requires settings change)

Added

  • New @werewolf tag for specifying werewolf type and auspice on one line
  • Settings now has a tag_defaults key that sets default tag values for newly created characters.
  • Settings files now ignore trailing commas
  • Sort character listings and dumps by any tag or set of tags, each in ascending or descending order. You'll have to update your settings files to use the new sort_by format.
  • Sort by type-dependent tags
  • Configurable list headings for character tags.
  • Set the base heading level in settings.
  • Turn off sorting for character listings altogether using --no_sort
  • Force listing to contain only body content using --partial
  • New setting for default character type in GUI
  • Settings for allowed werewolf auspices and tribes
  • Customizable sectioners to support complex sorting of character listings

Changed

  • Ignored paths can now be specified for each command separately, in addition to universal ignored paths. You'll have to change your settings files to use the new ignore section format.
  • The list command's --sort argument is renamed --sort_by.
  • The include_metadata argument to formatters is now metadata_format.
  • Refactored the listing renderers into objects

Known Issues

The deb package might not properly create executable endpoints.

General bug fixes and stability

06 Feb 01:12
Compare
Choose a tag to compare
Pre-release

A few more bug fixes before 1.3.1 goes out. I intend this to be the last beta. Changes:

  • Fix extra p tags in parsed markdown in html listings
  • Fix listing output for characters with a bare foreign tag
  • Fix to character.has_items which was adding the queried key to the character's dict if not already present
  • Fix crash in progress bar when listing zero characters
  • Parser no longer chokes on special characters in character name from file name

List command works again

13 Dec 23:01
Compare
Choose a tag to compare
Pre-release

The list command was broken. Now it isn't!
There are still problems with the deb package not creating executable endpoints.

Dependency bug

08 Dec 23:28
Compare
Choose a tag to compare
Dependency bug Pre-release
Pre-release

Tiny fix to remove a bug in the dependencies. Turns out PyQt doesn't work as an install dependency in setup.py.