Outils pour utilisateurs

Outils du site


en:yaml:objets

Ceci est une ancienne révision du document !


Language / Langue : FR | EN

Objects and Inventory (YAML)

Objects declared in objects: are added when the player enters the room. They use the native bot commands: take, examine and drop.

Important: YAML objects do not support if: or visible-if: directly. To make an object conditional, use another room, an event, a choice, a tag, or an object with remove: true.

Full Example

- id: library
  text: |
    A cluttered table stands in the room.
    An old chest rests against the wall.
  objects:
    - name: grimoire
      location: table
      furniture_description: "An old wooden table. A dusty grimoire lies on it."
      description: "An old grimoire with yellowed pages."
      pickup_text: "You take the grimoire from the table."
      furniture_reaction: "Examine the table"
      pickup_reaction: "Take the grimoire"
      object_reaction: "Examine the grimoire"

    - name: key
      location: invisible
      description: "A small silver key."
      pickup_text: "You pick up the key."

    - name: old_potion
      remove: true
      location: invisible
      remove_text: "The old potion disappears from your bag."

Available Fields

Field Effect
name: Object identifier. Required.
location: Furniture or place where the object is located. Default: invisible.
description: Text shown when the player examines the object.
furniture_description: Text shown when the player examines the furniture/location. If missing, the engine falls back to description:.
pickup_text: Text shown when the object is taken.
remove: true Removes this object when entering the room, equivalent to the legacy -name prefix.
remove_text: Text used on removal when remove: true.
furniture_reaction: Button shown to examine the furniture.
pickup_reaction: Button shown to take the object.
object_reaction: Button shown to examine the object.
inventory-limit: How many copies the player may hold. Absent: one copy. 0: unlimited.
inventory-limit-message: Optional text shown when the limit is reached.
throw-missing-message: Optional text shown when the player throws an object they do not carry.

Furniture, Object and Inventory

location: defines visible furniture. With location: chest, the player can examine chest. furniture_description: describes the chest, while description: describes the object itself.

location: invisible means the object exists in the room but is not directly listed as a visible object to take. This is useful for internal states or event-managed objects.

Several copies of the same object

Declaring the same name: several times now means several real copies, including across different furniture or rooms. Taking one no longer hides the others, and each keeps its own description in the scenery.

objets:
  - name: coin
    location: chest
    description: "A worn silver coin."
  - name: coin
    location: purse
    description: "A coin still warm from someone's hand."

The inventory groups them as coin x 2. Throwing, using or removing an object only consumes one unit, and the historical object / -object conditions keep their meaning.

How many copies can be held

inventory-limit: sets the maximum. Without it, the player holds one copy. 0 means unlimited.

objets:
  - name: torch
    location: wall
    inventory-limit: 3
    inventory-limit-message: "You already carry three torches."

Going over the limit is a normal narrative answer, not an error: the engine states how many copies are already held and what the limit is, then leaves the commands available. The two optional messages accept the usual text processing, including v_variable_v and t_variable_t.

Object Conditions

In if: fields, test objects by name:

if: "key"      # player owns key
if: "-key"     # player does not own key

Quantity conditions

A structured condition compares the number of copies held.

evenements:
  - si:
      object: coin
      quantity: 3
      operator: ">="
    texte: "You have enough coins to pay the ferryman."

The editor offers this setting in its condition builder.

Add or Remove an Object with do:

Recommended form:

events:
  - if: ~
    do:
      - object: rusty_key
        to: inventory
        description: "An old rusty key."
      - object: fake_key
        to: inventory
        remove: true
    text: "Your keyring changes."

The legacy action-string form is still accepted:

do:
  - "rusty_key&&inventory&&An old rusty key."
  - "-fake_key&&inventory&&null"

Media in Descriptions

description: and furniture_description: accept the same media syntax as narrative text: images [[url]], sounds <<url>> and videos ((url)).

en/yaml/objets.1788117679.txt.gz · Dernière modification : de cyrilfiesta