---
name: set-anima-stratagems
description: How an Anima decides what to do in scene-based combat, and how to implement it in your own game. A stratagem is an ordered list of rules, each a condition (about the Anima itself, an ally or a foe) and an act, read from the top whenever the Anima rethinks. Gives the universal JSON format, every condition and act, the reading algorithm, the hand and melee-range rules, the default stratagem every Anima starts with, and import and export. Use when giving Animas behaviour, writing or exchanging stratagem files, or reproducing Set's own Animas.
license: "Free to use when obtained from set.world, commercially too (the API, what it returns and the skills). Its models, animations and textures, Anima included, are CC BY 4.0: free to use with attribution to Jimmy Lee (j@internet.dev). The source code of Set is © Jimmy Lee under CC BY-NC 4.0 and its commercial use needs a paid waiver."
metadata:
  version: "0.11.4"
  title: Stratagems
---

# Stratagems (AnimaSystem)

A **stratagem** is how an Anima chooses what to do in scene-based combat: an ordered list of rules, each a **condition** and an **act**. When the condition names an Anima and the act can be done, the Anima does it. Every Anima in Set's scenes acts by one: `/anima-scene`, the home page's **Battle with armies**, and the duel on `/anima-stratagem`, where each side's stratagem can be edited, reordered, imported and exported. Like the rest of AnimaSystem, this is Set's own game layer on top of the API: no endpoint stores or runs a stratagem, and your game may use these rules as they are, change them, or ignore them.

This skill is the whole rule (`stratagem-play-10`). The scene it runs in (movement, bodies, clocks) is in [Scenes](https://set.world/skills/anima-scenes); what each item does when an act uses it is in [Derived combat](https://set.world/skills/anima-derived-combat); the reference is §13.77 in [Algorithms](https://set.world/skills/algorithms).

## When a stratagem is read

- **In combat only.** With combat off an Anima keeps its routine: a team member holds its station, a neutral follows the chain or patrols ([Scenes](https://set.world/skills/anima-scenes)). Turn-based combat has no stratagems.
- **At every rethink.** An Anima rethinks several times a second and at once after its action ends, a hit lands, or a WorldSphere is picked up or dropped. Nothing is remembered between readings: each reading starts again from the top, so the Anima changes course the moment a different rule becomes the first to fire.
- **Between actions.** An attack, throw, pickup or hurt reaction already under way finishes first; the new choice takes effect after it.

## Reading a stratagem

```text
for each rule, top to bottom:
  target = the Anima the rule's condition names       (none → next rule)
  if the act can be done on target:                    (no → next rule)
    this rule decides; stop reading
no rule decided → the routine
```

The rule that decides is the **active** rule; `/anima-stratagem` shows it in red on each side while the duel runs.

### Who a condition can name

| Side | Candidates |
| --- | --- |
| Self | The Anima itself |
| Ally | Another Anima of the same team within its sight range (`8 × visionRange`, never less than 5 units), never itself |
| Foe | Any Anima of another team; neutrals and both teams oppose each other, neutrals never oppose neutrals |

A candidate must be **standing**: alive, not dressing, and not down, held, falling or landing (an Anima staggered by a Rupture pull or a Javelin knock counts as standing). The only exception is a `status = …` condition, which names Animas with that status.

### Which candidate it names

- A **ranking** condition (lowest HP, fastest, furthest…) names the candidate with the extreme value.
- A **filtering** condition (HP below a share, targeting self, in melee range…) names the **nearest** candidate that passes.
- Ties go to the nearer candidate, then to the one placed earlier. Distance is between body centres on the floor.

| Value | Read from |
| --- | --- |
| HP, max HP | Current and maximum health |
| Stamina, max Stamina | Current and maximum stamina |
| HP %, STAMINA % | Current divided by maximum |
| Level | The character's level |
| Speed (slowest, fastest) | `walkSpeed`, after AnimaSystem's armour weight ([Derived stats](https://set.world/skills/anima-derived-stats)) |
| Strongest weapon | The highest AnimaSystem hit power among its held items |
| Defense, magic | `physicalDamageReduction`, `magicalDamageReduction` |
| Nearest visible | In sight: within the sight range and inside the forward cone of about 160°, or within 5 units, or already its target |
| Targeted by ally, targeting self, targeting ally | Each Anima's current target; the allies counted are those an Ally condition would name |
| Targeted by 2+ foes | Self only: at least two living foes have the Anima as their current target, wherever they are |
| In melee range | Within the longer of the two Animas' melee reaches, plus 1 unit (below) |

### Every condition (77)

| Id | Condition |
| --- | --- |
| `self-any` | Self: any |
| `self-hp-below-100` | Self: HP < 100% |
| `self-hp-below-90` | Self: HP < 90% |
| `self-hp-below-80` | Self: HP < 80% |
| `self-hp-below-70` | Self: HP < 70% |
| `self-hp-below-60` | Self: HP < 60% |
| `self-hp-below-50` | Self: HP < 50% |
| `self-hp-below-40` | Self: HP < 40% |
| `self-hp-below-30` | Self: HP < 30% |
| `self-hp-below-20` | Self: HP < 20% |
| `self-hp-below-10` | Self: HP < 10% |
| `self-targeted-by-2-foes` | Self: targeted by 2+ foes |
| `self-stamina-below-100` | Self: STAMINA < 100% |
| `self-stamina-below-90` | Self: STAMINA < 90% |
| `self-stamina-below-80` | Self: STAMINA < 80% |
| `self-stamina-below-70` | Self: STAMINA < 70% |
| `self-stamina-below-60` | Self: STAMINA < 60% |
| `self-stamina-below-50` | Self: STAMINA < 50% |
| `self-stamina-below-40` | Self: STAMINA < 40% |
| `self-stamina-below-30` | Self: STAMINA < 30% |
| `self-stamina-below-20` | Self: STAMINA < 20% |
| `self-stamina-below-10` | Self: STAMINA < 10% |
| `ally-lowest-hp` | Ally: lowest HP |
| `ally-slowest` | Ally: slowest |
| `ally-fastest` | Ally: fastest |
| `ally-strongest-weapon` | Ally: strongest weapon |
| `ally-lowest-defense` | Ally: lowest defense |
| `ally-lowest-magic` | Ally: lowest magic |
| `ally-hp-below-100` | Ally: HP < 100% |
| `ally-hp-below-90` | Ally: HP < 90% |
| `ally-hp-below-80` | Ally: HP < 80% |
| `ally-hp-below-70` | Ally: HP < 70% |
| `ally-hp-below-60` | Ally: HP < 60% |
| `ally-hp-below-50` | Ally: HP < 50% |
| `ally-hp-below-40` | Ally: HP < 40% |
| `ally-hp-below-30` | Ally: HP < 30% |
| `ally-hp-below-20` | Ally: HP < 20% |
| `ally-hp-below-10` | Ally: HP < 10% |
| `ally-stamina-below-100` | Ally: STAMINA < 100% |
| `ally-stamina-below-90` | Ally: STAMINA < 90% |
| `ally-stamina-below-80` | Ally: STAMINA < 80% |
| `ally-stamina-below-70` | Ally: STAMINA < 70% |
| `ally-stamina-below-60` | Ally: STAMINA < 60% |
| `ally-stamina-below-50` | Ally: STAMINA < 50% |
| `ally-stamina-below-40` | Ally: STAMINA < 40% |
| `ally-stamina-below-30` | Ally: STAMINA < 30% |
| `ally-stamina-below-20` | Ally: STAMINA < 20% |
| `ally-stamina-below-10` | Ally: STAMINA < 10% |
| `foe-nearest-visible` | Foe: nearest visible |
| `foe-in-melee-range` | Foe: in melee range |
| `foe-any` | Foe: any |
| `foe-targeted-by-ally` | Foe: targeted by ally |
| `foe-not-targeted-by-ally` | Foe: not targeted by ally |
| `foe-targeting-self` | Foe: targeting self |
| `foe-targeting-ally` | Foe: targeting ally |
| `foe-furthest` | Foe: furthest |
| `foe-nearest` | Foe: nearest |
| `foe-highest-hp` | Foe: highest HP |
| `foe-lowest-hp` | Foe: lowest HP |
| `foe-highest-max-hp` | Foe: highest max HP |
| `foe-lowest-max-hp` | Foe: lowest max HP |
| `foe-highest-stamina` | Foe: highest Stamina |
| `foe-lowest-stamina` | Foe: lowest Stamina |
| `foe-highest-max-stamina` | Foe: highest max Stamina |
| `foe-lowest-max-stamina` | Foe: lowest max Stamina |
| `foe-highest-level` | Foe: highest level |
| `foe-lowest-level` | Foe: lowest level |
| `foe-highest-speed` | Foe: highest speed |
| `foe-lowest-speed` | Foe: lowest speed |
| `foe-hp-full` | Foe: HP = 100% |
| `foe-hp-at-least-90` | Foe: HP ≧ 90% |
| `foe-hp-at-least-70` | Foe: HP ≧ 70% |
| `foe-hp-at-least-50` | Foe: HP ≧ 50% |
| `foe-hp-at-least-30` | Foe: HP ≧ 30% |
| `foe-hp-at-least-10` | Foe: HP ≧ 10% |
| `ally-status-dead` | Ally: status = DEAD |
| `foe-status-dead` | Foe: status = DEAD |

Statuses: `status = DEAD` is the only one today, and reads health at zero. Self has no `status = DEAD`, since a downed Anima does not act. As Set's status effects come into the game, each one adds its own `status = …` conditions.

## Acts

| Id | Act | Does |
| --- | --- | --- |
| `mainhand` | Mainhand | Attack the foe with the mainhand, or with fists when it is empty. On an ally, only when the mainhand plays a healing ring |
| `offhand` | Offhand | Attack the foe with the offhand item, fetching it first if it was dropped. On an ally, only when the offhand plays a healing ring. Needs an offhand item |
| `melee` | Melee | Attack the foe with the held melee items, alternating when there are two, or with fists when the mainhand is empty. Rings and other close-area items count as melee |
| `ranged` | Ranged | Attack the foe with the held ranged items (projectiles and waves), alternating when there are two |
| `kite` | Kite | Keep the foe at the ranged item's range: close in when it is farther, and while its next shot is cooling down walk backwards at 25% of full running speed when it is closer than 60% of that range. Once the shot is ready it stops, settles and fires, then backs away again |
| `stop` | Stop | Stand still |
| `hold` | Hold | Stand still, facing the foe, and attack it with either hand whenever it is within reach; never move toward or away from it |
| `protect` | Protect | Get in front of the ally: stand 1.5 body widths from it on the side of the foe nearest to it, face that foe and fight it with either hand, moving to stay between them |
| `guard` | Guard | Cross the forearms and stand still, turning and stepping to face the nearest foe. A guarding Anima still takes damage: each hit deals 70% of its damage, after every other reduction, plays no hit reaction, and also costs 20 stamina. With a shield, it blocks 100% of physical projectiles and thrown objects that strike from the front; the push and stamina effects still land, and each block still costs 20 stamina. The guard breaks when stamina runs out. Needs a standing foe, no WorldSphere in hand and at least 20 stamina to begin |
| `run` | Run | Move as fast as it can away from the foe |
| `backstep` | Backstep | Walk backwards away from the foe at 25% of full running speed, facing it, and never step toward it. Whenever an action is ready and the foe is within its reach, stand and strike with either hand, then keep backing away |
| `lunge` | Lunge | Leap at the foe while striking, landing as the blow connects: one 2.6x speed attack with a melee item, or fists when the mainhand is empty, that closes the gap; once in reach it fights as Melee. The leap costs the strike's stamina and never less than 50, so it needs at least 50 stamina. A hit taken while lunging deals 2x damage and knocks the Anima into a tumble |
| `advance` | Advance | Attack-move toward the foe: close in and attack it with either hand, turning on any foe that comes closer on the way |
| `grab-worldsphere` | Grab WorldSphere | Fetch the nearest free WorldSphere, dropping the offhand item |
| `throw-worldsphere` | Throw WorldSphere | Throw the held WorldSphere at the foe. Needs a WorldSphere in hand |
| `patrol` | Patrol | Move in the routine: a loop around the centre of the scene |

### Whether an act can be done

- **Stop** and **Patrol** can always be done. With **Guard**, which never uses its condition's Anima, they are the only acts a `status = DEAD` condition can lead to.
- **Guard** needs a standing foe anywhere, no WorldSphere in hand, and at least 20 stamina to begin (any stamina to continue). It does not use the condition's Anima: a rule like `Self: HP < 30% → Guard` guards against the nearest foe.
- **Run**, **Advance**, **Backstep** and **Hold** need a standing foe; **Kite** needs what Ranged needs.
- **Protect** needs a living ally named by an Ally condition; it never acts on Self or a foe.
- **Lunge** needs what Melee needs and at least 50 stamina; below that the next rule is tried.
- **Grab WorldSphere** needs a free WorldSphere it can reach; **Throw WorldSphere** needs one in hand and a foe.
- **Mainhand**, **Offhand**, **Melee** and **Ranged** need empty hands of WorldSpheres. Offhand needs an offhand item (held, or dropped and fetched first). Melee needs a melee item or an empty mainhand; Ranged needs a projectile or wave item. On an ally or on Self, Mainhand and Offhand need that hand to play a healing ring (Play, Strum); Melee, Lunge, Ranged, Kite, Run, Advance, Backstep and Hold never act on them.

An act that cannot be done does not stop the reading: the next rule is tried.

### Hands

- **Melee** uses every held melee item (rings and other close-area items count as melee), alternating when there are two, or fists when the mainhand is empty. **Ranged** uses every held projectile or wave item the same way. **Lunge** uses Melee's hands and **Kite** Ranged's; **Hold** and **Protect** may use either hand. **Advance** and **Backstep** may use either hand.
- When a **Mainhand** rule decides, a later **Offhand** rule that fires on the same Anima adds the offhand, and the other way round. With both hands allowed, the Anima prefers a projectile or wave hand beyond 5 units and a melee hand inside ([Derived combat](https://set.world/skills/anima-derived-combat)).
- No act drops an item. Each hand keeps its item; switching to melee only means using the other hand. Grab WorldSphere sets the offhand item down to take the sphere, and the Anima fetches it again afterwards.

### Melee range

`Foe: in melee range` is not a fixed distance. An Anima's **melee reach** is the measured range of its longest held melee item, the same range its attacks start from ([Derived combat](https://set.world/skills/anima-derived-combat)), or its punch reach when it has no melee item. A foe is in melee range when it is within the longer of the two Animas' melee reaches plus 1 unit. A long spear therefore puts both sides in melee range while it is still coming, and its foe switches to melee before the point arrives.

### Moving

In combat an Anima moves at its fastest, its running pace, except where an act below says otherwise. **Hold** never moves: it faces the foe and attacks whatever of it comes within reach. **Kite** (`kite-2`) keeps the foe at its ranged item's range: it runs in when the foe is farther and holds still within that range. While its next shot is cooling down and the foe is closer than 60% of the range, it walks backwards at 25% of full running speed. The moment the shot is ready it stops, comes to rest and fires, then backs away again; it never fires on the move. **Protect** (`protect-1`) gets in front of an ally: it takes the foe nearest to that ally as its threat, runs to a post 1.5 body widths from the ally on the threat's side, and once within 2 body widths of the post faces the threat and fights it, moving to stay between the two. **Guard** does not travel: it turns in place to face the nearest foe, stepping as it turns. **Backstep** (`backstep-3`) never steps toward the foe. It walks straight backwards away from it at 25% of full running speed, still facing it. Whenever an action is ready and the foe is already within that hand's reach, it stands and strikes with either hand, then keeps backing away. It never closes in to find range. Backing away is a walk, so it pays no running stamina ([Derived combat](https://set.world/skills/anima-derived-combat)).

**Advance** closes in and attacks, turning on any foe that comes closer on the way. **Run** heads 6 units further from the foe, re-aimed every step, for as long as its rule decides. **Patrol** walks the loop around the centre of the scene. A dropped offhand is fetched before any act except Grab WorldSphere, Stop, Guard, Backstep, Hold, Protect, Run and Patrol.

### Lunge

Lunge (`lunge-5`) is a melee charge that uses Anima's jump. It is the first act that leaves the ground, and the riskiest.

- **It leaps and strikes in one motion.** When the foe is out of its strike reach by no more than 3 body widths plus 1 world unit, the Anima jumps at it while swinging: the melee item's action, or a punch, starts at takeoff at 2.6x speed, the body flies on Anima's jump arc, and it lands just inside its reach as the blow connects, aimed at where the foe will be by then, so a foe running at it is met rather than overshot. It leaps at any foe in that range it would still move toward, one already inside its reach included. The rest of the action finishes on the ground. Farther away it runs in until it can leap; once the foe is closer than its landing point, it fights as Melee does.
- **It is expensive.** The leap and its strike cost the strike's stamina, never less than 50, paid when it jumps. With less than 50 stamina the rule is skipped.
- **It is punished in the air.** A hit taken while lunging, from takeoff to the landing, cannot be blocked, deals 2x damage, and knocks the Anima into a tumble along the hit; it gets up as from any knock, and the strike and its stamina are lost.

### Guard

Guard (`guard-5`) is the act that trades attacking for staying power. The Anima crosses its forearms in front of its chest, holding its items in its fists, and stands its ground. With a shield it does not cross its arms: it plays its shield's own shield-bash animation and holds it at the push, shield thrust forward and standing upright, while its other hand keeps its own item at rest. With a shield in each hand, the better shield (the higher block chance) pushes and the other is carried, so the arms never cross (`shield-guard-3`).

- **It faces the nearest foe.** Every step it turns toward the nearest standing foe at its usual turn rate, and its feet step to follow the turn. It never walks toward or away from anyone.
- **It still takes damage.** Guard is not immunity: every hit that gets through still removes health, only 30% less of it, and every guarded hit also costs stamina (below). A hit that lands while it guards deals `round(damage × (1 − 30%))`, after the dodge, the critical, its physical or magic damage reduction and its shield's block chance ([Derived combat](https://set.world/skills/anima-derived-combat)). Health stays whole.
- **The guard holds.** A hit plays no hit reaction and starts no hit recovery, so the Anima keeps guarding and turning. Knockback still pushes it, and it staggers back on its feet with the push.
- **It does not attack.** Its hands are guarding, crossed or behind the shield; no action starts while Guard decides.
- **A shield stops every shot from the front.** With a shield, a guarding Anima blocks 100% of physical projectiles and thrown objects that strike it within its front 180°: arrows, bolts, sling stones, thrown tools and spears, Rifle shots, the Hand cannon's blast and WorldSpheres. Each shows BLOCK and takes no health, but its push and any stamina drain still land. From the side or behind, and against melee and fists, the shield keeps its ordinary block chance ([Derived combat](https://set.world/skills/anima-derived-combat)). Magic is never blocked, the Cane's Missile included; it takes Guard's 30% like any other hit.
- **It costs stamina, on top of the damage.** Every hit taken while guarding, blocked or cut, costs 20 stamina, shown as a violet number. When stamina runs out the guard breaks: that hit is still guarded, the next one plays the hit reaction, and the Anima moves on to the next rule that fires. Stamina recovers as usual, and Guard can begin again only with at least 20 stamina; an Anima already guarding keeps it while any stamina remains.
- **It is still a target.** Guard softens hits; it never makes an Anima harder to hit. Stamina drains, a Rupture pull and a Javelin knock affect it as usual.
- **It ends** as soon as a rule above it fires, its own condition stops naming an Anima, no standing foe remains, or its stamina runs out.

A stratagem such as `Foe: targeting self → Guard` above `Foe: in melee range → Melee` lets an Anima absorb a charge, then strike once the attacker turns away.

## The default stratagem

Every Anima starts with this stratagem unless it is given another:

1. Foe: any → Grab WorldSphere (`foe-any`, `grab-worldsphere`)
2. Foe: nearest visible → Throw WorldSphere (`foe-nearest-visible`, `throw-worldsphere`)
3. Foe: nearest → Throw WorldSphere (`foe-nearest`, `throw-worldsphere`)
4. Foe: in melee range → Melee (`foe-in-melee-range`, `melee`)
5. Foe: nearest visible → Ranged (`foe-nearest-visible`, `ranged`)
6. Foe: nearest visible → Melee (`foe-nearest-visible`, `melee`)
7. Foe: nearest → Ranged (`foe-nearest`, `ranged`)
8. Foe: nearest → Melee (`foe-nearest`, `melee`)

It fetches a free WorldSphere while a foe exists and throws one it holds. A foe in melee range meets a melee item, or fists; otherwise the nearest foe in view, or the nearest at all, meets a ranged item if the Anima has one, else a melee item. A ranged mainhand with a melee offhand therefore shoots until a foe is in melee range, then fights with the offhand. To change when an Anima goes to melee, change these rules.

## The format

A stratagem file is JSON, the same in every game that reads it:

```json
{
  "format": "set-stratagem",
  "version": 2,
  "name": "Anima A",
  "rules": [
    {
      "condition": "foe-any",
      "act": "grab-worldsphere"
    },
    {
      "condition": "foe-nearest-visible",
      "act": "throw-worldsphere"
    },
    {
      "condition": "foe-nearest",
      "act": "throw-worldsphere"
    },
    {
      "condition": "foe-in-melee-range",
      "act": "melee"
    },
    {
      "condition": "foe-nearest-visible",
      "act": "ranged"
    },
    {
      "condition": "foe-nearest-visible",
      "act": "melee"
    },
    {
      "condition": "foe-nearest",
      "act": "ranged"
    },
    {
      "condition": "foe-nearest",
      "act": "melee"
    }
  ],
  "outfit": [
    {
      "slot": "tool",
      "gear": "sword",
      "material": null
    }
  ]
}
```

| Field | Value |
| --- | --- |
| `format` | Always `"set-stratagem"` |
| `version` | `2` |
| `name` | Optional text, or `null` |
| `rules` | At most 24 rules, read in order; each has a `condition` id and an `act` id from the tables above |
| `outfit` | What the Anima wears and holds, or `null` for none recorded: one entry per filled slot, each a `slot` (`tool` for the mainhand, `offhand`, or a worn slot), the `gear` name as the item tables spell it, and a `material` name or `null` for the default ([Item models](https://set.world/skills/anima-item-models)) |

```ts
type StratagemRule = { condition: string; act: string };
type StratagemOutfitItem = { slot: string; gear: string; material: string | null };
type StratagemDocument = { format: 'set-stratagem'; version: 2; name: string | null; rules: StratagemRule[]; outfit: StratagemOutfitItem[] | null };
```

A stratagem often only works with the right equipment (a Guard behind a shield, a Lunge with a melee item), so the file carries the outfit with the rules.

In a URL the same rules travel as `condition:act` pairs joined by commas: `/anima-stratagem` keeps each side's rules in `a.stratagem` and `b.stratagem` and the selected rule in `a.rule` and `b.rule`. The default stratagem leaves no parameter, and an empty value means no rules.

### Import and export

- **Export** writes the document above, two-space indented, as `<name>.stratagem.json`, with the Anima's current outfit.
- **Import** replaces the side's rules and, when the file has an `outfit`, its outfit too: every slot it names is filled with that gear and material, and every slot it does not name is emptied. A file without an outfit (or with `null`) leaves the outfit as it is.
- Set reads versions 1 and 2. Version 1 files have no `outfit` and import their rules only.
- **Import** refuses, with a message naming the problem, any file that is not JSON, has another `format` or an unread `version`, has more than 24 rules, names a condition or act that does not exist, or has an outfit item whose gear is not in its slot, whose material does not fit the slot, or whose slot is filled twice. Nothing is guessed, repaired or partly applied.
- A URL whose rules cannot be read falls back to the default stratagem.
- Ids are stable once published, because files name them.

## Implementing stratagems in your game

1. **Keep a stratagem per Anima.** Store the rule list beside the character; start with the default. Read and write files with the format above, refusing what does not validate.
2. **Give each Anima what the conditions read.** Position (the body centre), team, health and maximum, stamina and maximum, level, `walkSpeed`, `visionRange`, facing, its current target, its held items' hit power and deliveries ([Derived combat](https://set.world/skills/anima-derived-combat)), its two damage reductions ([Derived stats](https://set.world/skills/anima-derived-stats)), and its melee reach.
3. **Read at every rethink in combat.** Walk the rules from the top as in [Reading a stratagem](#reading-a-stratagem): name the target, check the act, stop at the first rule that decides. With combat off, or when no rule decides, run your routine.
4. **Turn the act into behaviour.** A hand act or Advance on a foe pursues and attacks it with the allowed hands; a hand act on an ally or Self walks to it and plays the healing ring; Throw lobs the held WorldSphere at it; Grab fetches the nearest free one; Run moves away; Stop stands; Guard stands and turns to the nearest foe, cutting the damage it takes; Lunge runs at the foe, leaps when it is just out of reach and strikes on landing; Backstep walks away from the foe at a quarter speed and stands to strike it whenever an action is ready and the foe is in reach; Patrol walks the loop. Keep the hand rules and melee range above.
5. **Never let an act hide an Anima.** Attacking, charging, reloading, casting, kneeling and guarding all leave it a target; a damaging hit cancels its unfinished action whatever the active rule is ([Scenes](https://set.world/skills/anima-scenes)). Guard is the one act that softens hits, and only by its 30%.
6. **Show the active rule** if your players edit stratagems: it is the clearest explanation of what an Anima is doing.

## Reference

§13.77 in [Algorithms](https://set.world/skills/algorithms) derives the reading, §13.76 the `/anima-stratagem` duel (`anima-stratagem-1`). Source: `@common/stratagems.ts` (conditions, acts, statuses, the default, the document, its reader and the URL form), `three-isometric-engine/anima-scene/stratagem-play.ts` (who a condition names), and `three-isometric-engine/anima-scene/model.ts` (`think`: whether an act can be done, the hands and the directive).
