**Language / Langue :** [[fr:yaml:modeles|FR]] | **EN**
====== Models (YAML) ======
Models are reusable groups of rooms. They are useful for fights, repeated mini-games, puzzles or reusable systems.
===== Declare a Model =====
models:
- name: simple_fight
variables:
enemy_hp: enemy_hp
exits:
victory: victory
defeat: defeat
rooms:
- id: attack
text: "You attack!"
events:
- if: "v_enemy_hp_v <= 0"
to: victory
- if: ~
do: "enemy_hp.-.3"
to: enemy_turn
- id: enemy_turn
text: "The enemy retaliates."
events:
- if: "v_hp_v <= 0"
to: defeat
- if: ~
to: attack
===== Instantiate a Model =====
- id: goblin_fight
text: "A goblin appears!"
models:
- name: simple_fight
variables:
enemy_hp: goblin_hp
exits:
victory: after_fight
defeat: game_over
Internal rooms are automatically prefixed to avoid ID collisions. ''end_model'' is the reserved keyword used to return to the calling room flow.