Most of the game-related definitions are in
diff --git a/Developer_Reference.html b/Developer_Reference.html
index 83691ce..9a97503 100644
--- a/Developer_Reference.html
+++ b/Developer_Reference.html
@@ -1,5 +1,5 @@
-
None of these APIs should be considered stable enough for use in projects other
than Frosthaven Manager. They should be considered stable enough for use in
Frosthaven Manager. Changes to an internally-used API should be made with care
and compelling reason.
This module provides a shorthand notation for Qi flows. It overrides Racket’s
+#%app: forms written in curly braces like {(allpositive?)}
+are implictly wrapped in flow from Qi.
Like equivalent forms from Qi, qi:~>, qi:~>>,
+qi:switch, but if written with curly braces, they are implicitly
+wrapped in flow instead of acting on specified values.
An instance of level-info exposes characteristics of the level, such as
the monster level, value of gold, damage caused by traps and hazardous terrain,
and end-of-scenario experience.
Represents a specially named loot card. This can be used for custom cards or for
the standard loot cards with special properties. These loot cards are always
included in the deck when available.
The monster ability representation, often for reading pre-fab structs.
Note that pre-fab syntax does not permit path? or pict? objects.
The monster abilities are a list of sub-abilities, much like a character’s
ability card. Each sub-ability is a list of parts, which may include pictures
such as for embedded AoE diagrams.
Returns all of the elements bundled together. This module also provides bindings
from the names of the elemnts to procedures returning element-pics
values, but they are not documented here. See Elements tracker for the
-various element names and pictures.
This module provides various icons that are spliced into ability card texts.
All replacements are case insensitive; any numbers or other accompanying text
-are preserved. The signifier N denotes where a number is expected.
Draws a card from the ability deck. The value of (ability-decks-currentad)
is silently discarded; if it is a monster-ability?, it is effectively
-lost.
Converts two mappings into a shuffled deck of loot cards. This can be considered
the interpreter for a language whose values are like those produced by
loot-picker; namely, mappings from decks to number of cards.
The mapping type->number-of-cards maps a loot card type to a number of
loot cards of that type. The mapping type->deck specifies which deck
@@ -140,32 +144,32 @@
(length(hash-reftype->deckt)).
Each string is a reward for player p except the first, which is the
player’s name. The values are an indicator if the player got the random item,
the player’s XP, gold, each material amount, each herb amount, and a
-comma-separated list of special cards.
Transition functions that define how to progress through the round structure of
the game. These are idempotent in that if they are called with the wrong
-state-@in-draw?, they do nothing.
Binds @error-text-id to an observable string and
with-error-text-id to a form accepting arbitrarily many expressions.
The form resets @error-text-id evaluates all of its body expressions
and returns the result of the last one; if any raise an exception, instead, the
exception’s error message is stored in @error-text-id and returned
-from the form.
A GUI view that presents a choice of Frosthaven level values; on-choose
is invoked whenever the choice changes. The selection may be controlled with
-selection. The optional label is used as with choice.
A GUI view to build a loot deck by including certain loot cards. The callback
on-card is invoked with an "event" that specifies a type of cards from
which one card should be added or removed. The callback on-deck is
invoked with a mapping from loot types to decks that should be used to interpret
@@ -179,8 +183,8 @@
the view is closed.
Additionally, buttons for the top and bottom of the deck trigger the
on-top and on-bottom callbacks, which then also close the
view.
A GUI view rendering the markdown in @content, which is either a
string of Markdown or a path to a file containing Markdown.
The view updates when @content does—note that in the string case
this means the Markdown content has changed, but in the path case this means the
@@ -190,17 +194,17 @@
Any expression tagged !HTML-COMMENT, the tag for HTML comments
Any expression tagged a
Any expression tagged blockquote
Any expression tagged ul
Any expression tagged ol
Any expression tagged li
Any expression tagged hr
Any expression tagged p
Any expression tagged strong
Any expression tagged em
Any expression tagged code
Any expression tagged h1
Any expression tagged h2
Any expression tagged h3
Any expression tagged h4
Any expression tagged h5
Any expression tagged h6
Any other tag found in the parsed Markdown is a runtime error.
Note that Markdown technically requires 4 spaces or a single tab as leading
indent for nesting lists and other blocks; while many Markdown implementations
(such as those used on GitHub) are more lenient, the implementation backing
-markdown-text is stricter on this point.
Produces a mixin that calls out on instantiation
with a procedure that closes the window. Many uses of out are to store
a local binding to this "close" procedure.
A GUI view used to build a monster group by choosing the set, name, and included
monsters (along with their elite status and level). The available choices come
from info-db less unavailable (a set of monster names). The
callback on-change is invoked each time changes are made. The default
@@ -216,10 +220,10 @@
on-group if one is selected. The value of @initial-level is
used for the initial level of the group, which can be adjusted in the dialog.
Similarly, @monster-names specifies which names are not available for
-the new group.
A GUI view that presents a choice of the number of players for Frosthaven;
on-choose is invoked whenever the choice changes. The selection may be
controlled with selection. The optional label is used as with
-choice.
A GUI view of a single player. See Player controls. The callback
on-condition is given an condition and value that determines whether
the condition should be applied (#true) or removed (#false).
The callbacks on-hp and on-xp are given procedures to modify
@@ -228,7 +232,7 @@
The number of players is used to format the player’s loot appropriately.
The summon callbacks are given the summon number, a list index, to indicate
which summon to update. Adding a summon is done by name and max HP.
The arbitrary-update callback is invoked with a function that computes
a new player?; it is intended to update @player for more
-complicated events that are logically a single step.
A parameter for the current renderer. This can be set so that sub-views can
access the top-level renderer. Note that it is not re-entrant, in the sense that
to make it effective one must render an application by
For example, the following produces either #t or #f depending
on whether window A or window B was closed first. Note also the use of
render/eventspace to set current-renderer correctly.
-
Produces a window for displaying a players rewards, such as loot, gold,
and XP. The selected player’s loot cards are also displayed. The mixin
-mix is applied to the window.
Displays @content via a text%. Keyword arguments except
@font control the text%. The @font controls the
font at which text is displayed and to which pictures are scaled.
Contents are selectable and copyable with the usual keyboard shortcuts, and can
-also be selected with mouse. Contents are automatically reflowed.
Produces a scaled pict suitable for an icon size. Note that this does not take a
font object for scaling, so the size may not be correct when providing fonts to
-rich-text-display.
This dialog, when rendered, provides buttons to set the displayed
@round. The action passed up by new-round-number is a
-procedure that computes a new round value from the old one.
Views and constructs a list of round prompt values. The on-add event is
emitted when a round prompt is added, and on-remove when a round prompt
is removed. The on-remove event signals both the index of the round
prompt and the prompt value to be removed.
A view of @data using stacked tables. The tables are horizontal,
left-to-right by default. Supplying vpanel for panel makes the
stack vertical. When topleft? is true, the first table is on the left
or top of the stack. Otherwise it is on the right or bottom, reversing the order
@@ -290,7 +294,7 @@
columns likely have multiple choices. As a convenience, when there is
only one, you may omit the vector. For the final column, you likely
want to omit the vector unless the selected data is one: the data here is the
-final selection, of which there should probably be one.
A GUI view for static tables. The columns are labelled by columns, and
there are exactly num-rows rows. Each row is indexed by a natural
number i from 0 to (sub1num-rows);
(entry->value(index->entryi)) computes a value v on which
@@ -299,41 +303,41 @@
[0,num-rows). An entry is computed by index->entry. A value is
computed from the entry by entry->value. From this value, functions in
entry->columns compute the elements of the row.
The selection is determined by @selection as with table.
The column widths are calculated automatically based on columns, or are
-provided as widths.
This module contains parsers for arithmetic formulas over addition, subtraction,
multiplication, division, rounding, and a limited set of variables. The parse
-result is a function from an environment of variables to a number.
Returns duplicate monster names from bestiaries and ability decks in
xs. The first value is based on any monster-infos and the
-second on monster-ability decks.
In addition to the shorthands below, this module exports define/obs,
@, :=, and λ:= from
racket/gui/easy/operator and everything from qi
-via frosthaven-manager/curlique.
Creates a document for pretty printing from the results of a parsed bestiary.
The document starts with a #lang line preceding the result if
-lang-line? is not #f.
This Qi form transforms the input value (a list) into a hash, where each element
of the list is mapped into a key via ->key-flo and a value via
->value-flo. It uses list->hash as implementation.
This module provides helpers for converting values to the rich text model of
(submodfrosthaven-manager/gui/rich-text-displaymodel). In particular,
these helpers work with functions that take single values to lists which are
intended to be spliced into the resulting model list.
Returns a function over x that returns (farg...x) when
@@ -349,10 +353,10 @@
prefix/suffix matching seen in the example above, but the algorithm is more
general and can find newly generated matches in result-expr. Take care
to avoid generating an infinite loop by unconditionally placing a new match in
-the result.
Or with module:
@@ -370,7 +374,7 @@
with line-counting enabled. Then it must accept a keyword option
#:syntax?, whose value is a boolean indicating whether or not to
produce a syntax object.
Binds and provides info-db-id and ability-db-id to
info-db/c and ability-db/c values, respectively, by importing
all the monster information from each import-mod-path and merging it
with the provided monster-info and monster-ability.
Each import-mod-path is expected to provide the same
diff --git a/doc-index.html b/doc-index.html
index 9abf54d..2a96562 100644
--- a/doc-index.html
+++ b/doc-index.html
@@ -1,2 +1,2 @@
-
\ No newline at end of file
diff --git a/index.html b/index.html
index b4a8084..4de4f67 100644
--- a/index.html
+++ b/index.html
@@ -1,2 +1,2 @@
-Frosthaven Manager