Releases: aurule/npc
v2.0.2
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
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
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
, andrank
tags to replacegroup
andrank
. - Support for more built-in systems
Changed
- [cli] Changed command for new characters. From
npc c Changeling Mann
tonpc 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. Usesticky
instead. - Deprecated
skip
tag. Usedelist
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
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
, andrank
tags to replacegroup
andrank
. - Support for more built-in systems
Changed
- [cli] Changed command for new characters. From
npc c Changeling Mann
tonpc 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. Usesticky
instead. - Deprecated
skip
tag. Usedelist
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
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
, andrank
tags to replacegroup
andrank
. - Support for more built-in systems
Changed
- [cli] Changed command for new characters. From
npc c Changeling Mann
tonpc 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. Usesticky
instead. - Deprecated
skip
tag. Usedelist
instead.
Fixed
- Preserve latest session and plot index when files are missing
For changes in previous versions, see the files in changelog/
.
Updated Hiding
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 throughtags['path']
- The
has_path
property has been removed. Test path presence by testingcharacter.path
directly
- The
- 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 allrank
elements for theOrchestra
group.
- The special
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!
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 nowmetadata_format
. - Refactored the listing renderers into objects
Known Issues
The deb package might not properly create executable endpoints.
General bug fixes and stability
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
The list
command was broken. Now it isn't!
There are still problems with the deb package not creating executable endpoints.
Dependency bug
Tiny fix to remove a bug in the dependencies. Turns out PyQt doesn't work as an install dependency in setup.py.