Conversation
Conditions gain a `revealed` leaf that holds once another event has
fired, optionally bounded by `turnsSinceGte` / `turnsSinceLte`. Combined
with `not`, authors can write multi-step developments ("three turns
after Meg's offer, if the hero sided against her, the Salt Fangs come to
collect") without any model call. References to unknown event IDs never
match and are reported as diagnostics.
Each bundled world gains one follow-up event built on its first hidden
events.
Refs #97
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Let hidden story events build on each other, so world authors can write developments that keep unfolding without any model call. Follows #101.
revealedcondition leaf.{ revealed: <eventId> }holds once that event has fired. OptionalturnsSinceGte/turnsSinceLtebound the turns elapsed since it last fired, andnotexpresses "has not happened yet". It needs no comparison operator. References to unknown event IDs never match and are reported in the cue'sdiagnostics(IDs only, never payloads).story.events@1accepts the new leaf; a leaf references exactly one ofdimension,time, orrevealed.Type of change
Verification
pnpm lint,pnpm check:plugins,pnpm release:preflight,pnpm validate:plugin plugins/story-events, prettier and oxlint on changed files.revealedleaf, turns-since bounds, unknown references, and a two-step chain that only unlocks after its predecessor and the delay.story.events@1, reference only existing dimensions and events, stay unmet at the initial state, and are met once their conditions (including predecessor reveals) are applied.Related issue / context
Docs sync
plugins/story-events/README.md,docs/reference/world-data.md(bundled worlds), and thecreate-worldskill.