Choice hierarchy, values, and labels

Choice hierarchy

To better organize your model and simplify its logic, it’s possible to nest choices. A choice that contains other choices is called an abstract choice; otherwise, it’s referred to as a leaf choice. To change a choice type to abstract, simply click on the plus icon on the right side of the node, or use the drag-and-drop functionality.

Creating abstract choices

Fig. 1 – Creating abstract choices.

Using abstract choices is a handy way to simplify constraints. In the following example we create a constraint that encourages Edmund to use ranged weapons.

Using abstract choices with logic

Fig. 2 – Using abstract choices with logic.

Values

Every leaf choice has its own value, which is used during the generation process. When the value field is empty, the value defaults to the choice name. Remember that choice names have some limitations — for example, it’s not possible to have multiple choices with the same name. With values, however, this limitation doesn’t exist. Since abstract choices act as containers and aren’t directly used in the generation process, it’s not possible to assign values to them.

Adding a value

Fig. 3 – Adding a value.

Labels

Every element of the model can optionally contain one or more labels. They can be used to add additional information or to provide an alternative way of grouping elements. To add a label in the GUI, click on the Extend icon and type your text labels. Note that labels are separated by commas..

Adding labels manually

Fig. 4 – Adding labels manually.

Labels can also be suggested by AI. In this case, click on the ‘labels’ input and wait a few seconds.

Adding labels with assistant

Fig. 5 – Adding labels with assistant.

Since labels are used for grouping elements, they can be used during the generation process. In the following example, we don’t use choices labelled as ‘heavy’.

Using choice labels with generators

Fig. 6 – Using choice labels with generators.

Of course we can label parameters in the same way as choices. Here, we forced our heroes to fight without using weapons.

Using parameter labels with generators

Fig. 7 – Using parameter labels with generators.

Labels can be used in constraints as well. In this example, we force strong heroes to use heavy weapons.

Using labels with constraints

Fig. 8 – Using labels with constraints.