Appearance
State
Standard gameplay loop progression (Stages -> Phases) relies on typical player priority. But tabletop games often have mechanics that operate independently of this standard priority structure.
The ATLAS State configuration manages these conditions using State-Based Effects.
State-Based Effects
SBEs are reactive evaluations. Rather than checking indiscriminately, the engine strictly evaluates the effects array immediately after any zone or entity changes state (e.g., when a property mutates, an entity moves, or a zone's occupant count changes).
If a condition evaluates to true, the resolution immediately fires. This is heavily used for entity deaths or limit overflows that don't belong to a specific player's action.
yaml
state:
effects:
- name: LethalDamage
condition: @entity.self.health <= 0
resolution: $Action.DestroyEntity(@entity.self)
- name: OverdrawnHand
condition: @zone.hand.count > 7
resolution: $Action.RequireDiscard(@player.current, @zone.hand.count - 7)json
{
"state": {
"effects": [
{
"name": "LethalDamage",
"condition": "@entity.self.health <= 0",
"resolution": "$Action.DestroyEntity(@entity.self)"
},
{
"name": "OverdrawnHand",
"condition": "@zone.hand.count > 7",
"resolution": "$Action.RequireDiscard(@player.current, @zone.hand.count - 7)"
}
]
}
}