Conditions

# About conditions

A condition is a small query that is executed during a running simulation. If the result of the query is correct, the condition is considered fulfilled.

Conditions are used to determine when events occur, measures can be played or under which circumstances a scenario ends prematurely.

They are therefore always a fixed part of an object: an action, the trigger of an event or a scenario termination criteria. Conditions can be created in the respective menu of these objects.

Example: The “Party” action should only be able to be used if the status of the “Satisfaction” element is above 50%. A condition can be assigned to the action to check this status. As soon as the action is used, the condition compares the status of the element with the target value (50%) – if it is higher, the condition is considered fulfilled and the action can be used. If it is lower, the action is prevented.

# Build up conditions

 

Almost every condition is a comparison between two values.

Examples:

  • Is the state of the “Satisfaction” element above 50%?
  • Is the simulation in round 2?
  • Is the value of the resource “Debt” lower than the value of the resource “Budget”?

These comparisons always consist of three components:

The comparison source The comparison The comparison value
The state of the element “satisfaction” > (is greater than) 50%
the time of the simulation = (is) Round 2
the value of the resource “debt” < (is smaller than) the value of the budget resource

The condition can be composed of these different components in the conditions menu. Many different possible queries can be defined according to this logic.

 

# Comparison source

The comparison source specifies which state of my model is to be queried.

For example: The time of the system, the state of the “Satisfaction” element, the activation number of the “Investigation” measure.

The source often consists of three options: Type, Property and Object. (More or less depending on the selection).

First, we determine the type. This narrows down which aspect of the model is considered. Depending on the type selected, further properties are then available for selection.

Available types:

  • Point of time
  • Time period
  • Target
  • Resource
  • Index
  • Event
  • Action

Depending on the selected type, a property and an object can then be selected to narrow down the initial value more precisely.

For some comparison sources, a comparison time can also be determined. This point in time determines at which point in the simulation the query is carried out. This can either be the current time, but also a fixed time (round 1) or a relative time (2 rounds ago), based on the current simulation time.

For some comparison sources, a time period can also be specified here (e.g. for event activations).

# Comparison

There are 8 different comparison operators. These comparison commands can be used to set how the relationship between the comparison source and the comparison value should be so that the condition applies.

The comparison is preselected, but can be changed for all conditions.

= Both values must be exactly the same for the condition to apply
Condition applies as long as both values are not exactly the same
Applies if the comparison source is greater than or equal to the comparison value
Applies if the comparison source is less than or equal to the comparison value
> Applies if the comparison source is greater than the comparison value
< Applies if the comparison source is smaller than the comparison value
Exists/is correct: This checks whether the comparison value is basically correct.
Example activation: “Has there been an activation?”
Example period: “Are we in this period?”
Example last activation date: “Has it already been activated?”
x Does not exist/does not apply: This is used to check whether the comparison value does not apply in principle.
Example activation: “Was there no activation?”
Example period: “Are we outside this period?”
Example last activation date: “Has it never been activated?”

Not all comparison types are available for all types/properties.

# Comparison Value

The comparison value is compared with the comparison source in the condition.

Either a static value can be entered here (as with the condition of “Satisfaction” > 50%) or a comparison object can be selected. The selection of the comparison object works according to the same principle as the selection of the comparison source (first type, then property, then object). The comparison object can be used to compare two dynamic values of the system (e.g.: state of “Satisfaction” > state of “Adventurousness”).

# Point of time condition

Point of time conditions have a very simple structure: Here you can check whether the current simulation has reached a certain point in time.

Point of time comparisons are displayed in text form in condition lists.

# Time Period condition

The time period condition checks whether the current time of the simulation is within the specified range. This includes the start and end.

All time values that are possible in the system context are available as selection options for start and end. The time unit of the simulation is also used here.

Only a simple comparison is possible here: either the condition applies or not.

# Element condition

There are three properties to choose from for an element condition:

Status

This property can be used to check the value of the element status.

Example: Is the status of “Satisfaction” above 50%?

Positive change of status

For the positive change of status, the status of the element is compared in two rounds. (Value in round B – value in round A). If the value in round B is higher than in round A, there has been a positive change in status – this can be queried.

Example: Has the positive change of status “Satisfaction” been over 10% since round 2?

(Applies if the status of the “Satisfaction” element was at least 10% lower in round 2 than at the time of the query)

The two comparison rounds can be chosen freely.

Negative change of status

For the negative change of status, the status of the element is compared in two rounds. (Value in round A – value in round B). If the value in round A is higher than in round B, there has been a negative change in status – this can be queried.

Example: Has the negative change of status “Satisfaction” been over 10% since round 2?

(Applies if the status of the “Satisfaction” element was at least 10% higher in round 2 than at the time of the query)

The two comparison rounds can be chosen freely.

# Resource condition

There are three properties to choose from for a resource condition:

Value

This property can be used to check the value of the resource.

Example: Is the value of “Budget” over €500?

Positive change in value

For the positive change in value, the value of the resource is compared in two rounds. (Value in round B – value in round A). If the value in round B is higher than in round A, there has been a positive change in value – this can be queried.

Example: Has the positive change in the value of “Budget” been over €10 since round 2?

(Applies if the value of the resource “Budget” was at least €10 lower in round 2 than at the time of the query)

The two comparison rounds can be chosen freely.

Negative change in value

For the negative change in value, the status of the resource is compared in two rounds. (Value in round A – value in round B). If the value in round A is higher than in round B, there has been a negative change in value – this can be queried.

Example: Has the negative change in the value of “Budget” been over €10 since round 2?

(Applies if the value of the resource “Budget” was at least €10 higher in round 2 than at the time of the query)

The two comparison rounds can be chosen freely.

# Event condition

The event condition can be used above all to query when and how often an event has occurred in the course of the simulation to date.

Two properties are available:

Activations

Measures the number of activations of the event in a certain period of time.

Example: Activations of flash flood > 3?
(Has the “flash flood” event occurred more than three times since the start of the simulation?)

The time period can be freely determined.

Last activation time

The last activation time can be used to find out whether a measure or event was activated after another one.

Example: Was the last activation time of the flash flood after the last activation time of the dam reconstruction?

 

# Action condition

The action condition can be used primarily to query when and how often an action has occurred in the course of the simulation to date.

Two properties are available:

Activations

Measures the number of activations of the action in a given period.

Example.: Activations of dam construction > 3?
(Has the “Dam construction” action been used more than three times since the start of the simulation?)

The time period can be freely determined.

Last activation date

The last activation time can be used to find out whether an action or event was activated after another one.

Example: Was the last activation time of the flash flood after the last activation time of the dam reconstruction?

 

Scenarios

# Create

To carry out simulations later and compare their results, scenarios must first be created. To add a scenario, click on the “Add” button. This creates a new scenario and you have the option of specifying a title, a description and the number of rounds that the scenario comprises under the “General” tab.

You can delete a scenario at any time by clicking the “Delete scenario” button at the end of the list.

# Initial Status

Within this tab, you define the start states of the respective resources and elements at the beginning of the scenario.

# Events

Here you can see a list of all events created. If an event appears here, it can occur during the simulation under the previously defined conditions. If you do not want an event to occur at all, you can remove it from the list by clicking on the small cross.

You can add removed events to the scenario again at any time using the “Select” button.

# Actions

Similar to the events, this tab provides you with an overview of all actions associated with the scenario. Here too, you can remove actions that you do not want to make available from the list and add them again later using the “Select” button.

# Termination Criteria

This is where you define the criteria that lead to a simulation being terminated. The simulation is terminated if all conditions of a termination criteria are met. As soon as a termination criteria is triggered, the simulation stops and a message field with the title and description of the termination criteria is displayed.

You can assign any number of conditions to a termination criteria. However, the termination criteria is only activated if all conditions are fulfilled at the same time.

Example-condition: “ Occurs when the status of the resource ‘Money’ is less than 10”

→ More about conditions

You can also add a title, a description and an image to the termination criteria.

Image

The image appears in the termination message window, which is displayed during the simulation as soon as the criteria is met.

The image area in the message window has a size of 322*515 pixels. Ideally, the image should have exactly these dimensions.

You can set whether the image should completely fill the image area (“Crop”) or be reduced in size until it fits into the image area (“Scale”). Images in landscape format may only fill half of the available area with this setting.

# Start and End screen

Under the “Start screen” and “End screen” tabs, you can add a title, a description and an image to the scenario, which should appear at the beginning and end of the scenario respectively.

You can show or hide the start screen at any time using the “Show start screen” button.

Actions

# Create

Actions are used to consciously intervene in the system. In contrast to events that are triggered automatically, actions must be planned manually for each simulation.

Actions are “external influences” on the model. Each action can directly change the state of elements. They are used to react appropriately to events, to take countermeasures or to utilize reinforcement effects.

As a rule, actions cost resources.

Actions can be created by clicking on “Add” and described in detail under the General tab.

# Resource Consumption

The “costs” of the action can be defined here. All entered values are deducted from the respective resources as soon as the action is used during a simulation.

If the resource values are too low when the action is to be activated, the activation fails and the action is not executed.

# Requirements

You can use requirements to define the circumstances under which an action may be carried out. Each requirement has a number of conditions that can be set in the requirements menu.

You can assign any number of requirements to an action. All requirements are independent of the others and their conditions are checked individually. As soon as one requirement is fulfilled, the action can be used.

The requirements can be opened and edited individually.

The conditions for each requirement can be set up in the requirements menu.

Each requirement can have any number of conditions. Only if all the conditions of a requirement are fulfilled is this requirement considered fulfilled and the action can be triggered.

A new condition can be created using the “Add condition” button. This new condition opens in the conditions menu, in which you can set the exact circumstances under which the requirement should be considered fulfilled. All created conditions can be deleted or changed at any time.

→ Learn more about conditions

Requirements without conditions do not affect the action.

Requirements that contain several conditions are only considered fulfilled if ALL conditions of the requirement are fulfilled at the same time. (AND link)

You can assign a maximum frequency to the action. This limit ensures that the action cannot be used more often than specified here.

# Effects

Actions can change the status of elements or resources in a simulation. This is done with the help of “Effects”.

The elements and resources that the action affects can be selected under the “Effects” tab. To select an object, you can either click on “Select” to choose it from a list or on the arrow symbol next to it to mark it in the network.

You can remove elements from the effects or add new ones at any time.

The selected elements/resources appear in the list of effects. You can use the text field next to each effect to determine the strength of the influence.

Example: We have created an effect for the element “Technical skills for AM are available”. A value of “+10” is entered in the text field. When the action is used, the status of this element is increased by ten points.

Screenshot vom Bereich "Auswirkungen" des Ereignis-Menüs

Effect over multiple rounds

By default, the effect is applied in the round in which the event occurs. However, you can also spread the effect over several rounds. To do this, click on the title of the effect; a menu will then open with the “Effect over multiple rounds” tab.

In this tab, you can enter in which rounds which effect should occur.

Screenshot des Abschnitts "Wirkung über mehrere Runden"

Advanced effect formulas

The text field for entering the effect value supports a range of different possible entries.

Simple forms

+10 Add ten points
-10 Subtract ten points
=10 Set the status of the affected element to 10

Variables

You can use some predefined variables to make the effect dependent on the current state of the model in the simulation. Simply enter $ in the text field to display a selection of possible variables.

$Status Current status of the affected element (value between 0 and 100)
$Maximum Status Maximum status of the affected element. 100 by default.
$Minimum Status Minimum status of the affected element. 0 by default.
$Current Round Number of the current round (1 in round 1, 2 in round 2, etc…)

Example

The affected element is affected differently depending on the round in which the event occurs. In round 1: +1; but in round 10: +10.

References

You can include the status of other elements or resources in their effect. Simply tap @ to reference another object in the simulation and select the desired object in the selection.

Example
Im Eingabefeld: -@Wasserablauf
The status of the affected element is reduced by the value of the “Water drainage” element in the entry round.

Calculations

Values can also be offset against each other. The input field supports simple mathematical symbols. (+, -, *, /, “(” and “)”)

Example

The affected element is influenced in inverse proportion to its current state: It receives +20 if it currently has a state of 0, but +0 if its state is 100.

Functions

Functions can be used to generate values that cannot be achieved with simple calculations. Tap # to call up the selection of available functions.

Available functions
random between (A and B) Results in a random (integer) number in the specified range, between number A and B (A and B included).
modulo (A mod B) Remainder of a division. Example: modulo(4 mod 3) = 1;
smaller value (A or B) Selects the smaller of two values. Example: smaller value (3 or 7) = 3
greater value (A or B) Selects the larger of two values. Example: larger value (3 or 7) = 7
rounded (A) Rounds the number A. Example: rounded(4.3) = 4
rounded down (A) Rounds the number A down. Example: rounded down(4.7) = 4
rounded up (A) Rounds the number A up. Example: rounded up(4.1) = 5
absolute (A) Removes the sign of the number A, is always positive. Example: absolute value(-4) = 4
sign (A) Results in -1 for a negative number, +1 for a positive number and 0 for 0. Ex: sign(-56) = -1
square root(A) Returns the square root of A. Example: root(16) = 4
exponent(A ^ B) Returns A to the power of B. Example: exponent(4 ^ 2) = 16

Example
Text in Eingabefeld: +#zufall zwischen(2 und 15)
A random number between 2 and 15 is added to the affected element. (2 and 15 are inclusive)

# Dependent events

Enables actions and events to be linked. A dependent event can be selected from the list of events using the “+new” button. For each dependent event, you can specify after how many rounds and with what probability it should occur.

When a dependent event is created, a new trigger is created for this event.

# Stakeholders

Here you can define the stakeholders of the action. As soon as you have selected a stakeholder from the list of stakeholders by clicking on “Select”, you can describe it in more detail under “General”.

# Design

Allows you to add a suitable image to the action.

Events

# Create

Events influence the course of the game and exert an influence on the elements according to a previously defined framework. In this way, they show how events, based on reality, can affect both elements and resources without active intervention. In addition to having a direct effect on the model, events can also have a long-term influence on the model through subsequent events.

Any number of events can be added to each model. To create an event, click on “Add” under the “Events” tab. As soon as the event has been created, you can describe it in detail under the “General” tab and rename it at any time.

# Effects

Events can change the status of elements or resources in a simulation. This is done with the help of “Effects”.

The elements and resources that are affected by the event can be selected under the “Effects” tab. To select an object, you can either click on “Select” to choose it from a list or on the arrow symbol next to it to mark it in the network.

You can remove elements from the effects or add new ones at any time.

The selected elements/resources appear in the list of effects. You can use the text field for each effect to determine the strength of the influence.

Example: We have created an effect for the element “Technical skills for AM are available”. A value of “+10” is entered in the text field. If the event occurs, the status of this element is increased by ten points.

Screenshot vom Bereich "Auswirkungen" des Ereignis-Menüs

Effects over multiple rounds

By default, the effect is calculated in the round in which the event occurs. However, you can also spread the effect over several rounds. To do this, click on the title of the effect; a menu will open in which the “Effect over multiple rounds” tab is located.

In this tab, you can enter in which rounds which effect should occur.

Screenshot des Abschnitts "Wirkung über mehrere Runden"

Advanced effect formulas

The text field for entering the effect value supports a range of different possible entries.

Simple forms

+10 Add ten points
-10 Subtract ten points
=10 Set the status of the affected element to 10

Variables

You can use some predefined variables to make the effect dependent on the current state of the model in the simulation. Simply enter $ in the text field to display a selection of possible variables.

$Status Current status of the affected element (value between 0 and 100)
$Maximum Status Maximum status of the affected element. 100 by default.
$Minimum Satus Minimum status of the affected element. 0 by default.
$Current Round Number of the current round (1 in round 1, 2 in round 2, etc…)

Example

The affected element is affected differently depending on the round in which the event occurs. In round 1: +1; but in round 10: +10.

References

You can include the status of other elements or resources in their effect. Simply tap @ to reference another object in the simulation and select the desired object in the selection.

Example
Im Eingabefeld: -@Wasserablauf
The status of the affected element is reduced by the value of the “Water drainage” element in the entry round.

Calculations

Values can also be offset against each other. The input field supports simple mathematical symbols. (+, -, *, /, “(” and “)”)

Example

The affected element is influenced in inverse proportion to its current state: It receives +20 if it currently has a state of 0, but +0 if its state is 100.

Functions

Functions can be used to generate values that cannot be achieved with simple calculations. Tap # to call up the selection of available functions.

Available functions
random between (A and B) Results in a random (integer) number in the specified range, between number A and B (A and B included).
modulo (A mod B) Remainder of a division. Example: modulo(4 mod 3) = 1;
smaller value (A or B) Selects the smaller of two values. Example: smaller value (3 or 7) = 3
greater value (A or B) Selects the larger of two values. Example: larger value (3 or 7) = 7
rounded (A) Rounds the number A. Example: rounded(4.3) = 4
rounded down (A) Rounds the number A down. Example: rounded down(4.7) = 4
rounded up (A) Rounds the number A up. Example: rounded up(4.1) = 5
absolute (A) Removes the sign of the number A, is always positive. Example: absolute value(-4) = 4
sign (A) Results in -1 for a negative number, +1 for a positive number and 0 for 0. Example: sign(-56) = -1
square root(A) Returns the square root of A. Example: root(16) = 4
exponent(A ^ B) Returns A to the power of B. Example: exponent(4 ^ 2) = 16
e to the power of(A) Returns e to the power of A. Example: exponent(1) = 2.718281828459
if(A then B else C) If A is not equal to 0, B returns, else C returns.

Example
Text in Eingabefeld: +#zufall zwischen(2 und 15)
A random number between 2 and 15 is added to the affected element. (2 and 15 are inclusive)

# Triggers

With triggers, you can define the circumstances under which the event occurs. Each trigger has a number of freely adjustable conditions that can be set in the Trigger menu.

You can assign any number of triggers to an event. All triggers are independent of the others and their conditions are checked individually. As soon as one of the triggers is activated, the event occurs.

The triggers can be opened and edited individually.

The conditions for each trigger can be set up in the Trigger menu.

Each trigger can have any number of entry conditions. The trigger is only triggered and the event occurs if all the conditions for a trigger are met.

A new condition can be created using the “Add condition” button. This new condition opens in the conditions menu, in which you can set the exact circumstances under which the trigger should be activated. All created conditions can be deleted or changed at any time.

→ Learn more about conditions

Triggers without conditions can trigger the event at any time (in every simulation round).

A probability of occurrence can be defined for each trigger. This probability of occurrence applies in addition to the conditions: It is first checked whether ALL conditions apply, then the system “rolls the dice” for the probability of occurrence – depending on the result, the trigger triggers the event (or not).

Finally, a maximum number of activations can be assigned to each trigger. This determines how often a trigger can trigger the event in the course of the simulation. If the maximum frequency is reached, this trigger is deactivated for the simulation. Other triggers are not affected by this and can continue to trigger the event.

Triggers that contain several conditions only occur if ALL conditions of the trigger are fulfilled at the same time. (AND-link)

You can assign a higher-level maximum frequency to the event. This limit ensures that the event is not triggered more often than specified here.

# Dependent events

Enables events to be linked. A dependent event can be selected from the list of events using the “+new” button. For each dependent event, you can specify after how many rounds and with what probability it should occur.

When a dependent event is created, a new trigger is created for this event.

# Design

Allows you to add a suitable image to the event.

The image appears in the event hint window that is displayed during the simulation.

The image area in the notification window has a size of 322*515 pixels. Ideally, the image should have exactly these dimensions.

You can set whether the image should fill the image area completely (“Crop”) or be reduced in size until it fits into the image area (“Scale”). Images in landscape format may only fill half of the available area with this setting.