aboutsummaryrefslogtreecommitdiff
path: root/building_guide/conditions.md
diff options
context:
space:
mode:
Diffstat (limited to 'building_guide/conditions.md')
-rw-r--r--building_guide/conditions.md80
1 files changed, 80 insertions, 0 deletions
diff --git a/building_guide/conditions.md b/building_guide/conditions.md
new file mode 100644
index 0000000..ea17ed6
--- /dev/null
+++ b/building_guide/conditions.md
@@ -0,0 +1,80 @@
+## Conditions Reference
+
+Conditions are used in talk options, exit gates, on-enter scripts, and use_interactions checks.
+
+### Simple conditions
+
+A bare `flag:` / `player_flag:` check passes when the flag is **set to a truthy
+value** (`true`, a non-zero number, a non-empty string). Add `value:` only when
+you need to match a specific value (e.g. a numeric quest stage). `not: true`
+inverts any check.
+
+```yaml
+# Check a world flag is set
+condition:
+ flag: gate_open
+
+# Check a world flag is NOT set
+condition:
+ flag: gate_open
+ not: true
+
+# Check a player flag is set
+condition:
+ player_flag: finished_tutorial
+
+# Check a player flag is NOT set (e.g. only on the first visit)
+condition:
+ player_flag: finished_tutorial
+ not: true
+
+# Match a specific (non-boolean) value
+condition:
+ player_flag: quest_stage
+ value: 3
+
+# Check if player has an item
+condition:
+ has_item: bronze_key
+
+# Check if player does NOT have an item
+condition:
+ has_item: bronze_key
+ not: true
+
+# Check if player has enough credits
+condition:
+ min_credits: 50
+```
+
+### Compound conditions
+
+All must pass:
+```yaml
+condition:
+ all_of:
+ - flag: gate_open
+ - has_item: pass_stub
+```
+
+Any one must pass:
+```yaml
+condition:
+ any_of:
+ - has_item: bronze_key
+ - has_item: iron_key
+ - player_flag: master_of_unlocking
+```
+
+Nested compounds:
+```yaml
+condition:
+ all_of:
+ - player_flag: quest_started
+ - any_of:
+ - has_item: wolf_pelt
+ - has_item: bear_pelt
+```
+
+---
+