Effect formulas
What target. and caster. each read, when their values are frozen, and how an effect's duration is worked out.
An effect changes a character’s statistics for a while. Two parts of one are written as formulas rather than fixed numbers: how much each modification applies, and how long the effect lasts. Both are written in the same small language, and both read the same two characters.
The two characters a formula can read
Every formula has two names available to it. Which one you reach for is the difference between an effect that is the same for everybody and an effect that rewards a developed character.
| Prefix | Reads |
|---|---|
target. | The character receiving the effect — the one whose statistics it is about to change. |
caster. | The character who applied it — who used the action, or consumed the item, that started it. |
So caster.strength - target.defence is an effect whose bite depends on who threw it and who it landed on, while 10 is an effect that does ten whatever the fiction around it.
The caster’s numbers are frozen
The values caster. reads are recorded at the moment the effect is applied, and the effect keeps reading those same numbers for the rest of its run. They do not follow the caster afterwards.
This is deliberate. A poison whose strength rose every time its caster levelled up, halfway through a scene somebody else is writing, would make a scene impossible to reason about — and impossible to re-read later and still understand. An effect is as strong as the character who cast it was when they cast it.
target. is not frozen for the modification amounts. Those are the values being changed, so they are read fresh on each tick.
What happens when the same effect is applied again
Whether the caster’s numbers are taken again depends on what the effect does when it lands on a character already under it — the behaviour you chose when you created it.
| Behaviour | What happens to the frozen numbers |
|---|---|
| Stack | A second run begins beside the first, with the caster’s numbers as they are now. The first run keeps its own. |
| Refresh | The run starts over, and the caster’s numbers are taken again. A refreshed effect is as strong as whoever refreshed it, now. |
| Intensify | The run already under way grows more intense and keeps the numbers it started with. Applying it again does not make it read a stronger caster. |
| None | Nothing happens at all while the effect is already running, so nothing is re-read. |
Duration
An effect’s duration — its ticks — is a formula too, so a system can say “immobilised for as many turns as your Will” instead of always three.
It is worked out once, when the effect is applied, and the answer is fixed for that run. An effect whose remaining length moved every turn would be unplayable, so the duration is frozen for the same reason the caster’s numbers are — and from the same moment, reading the same values.
A duration that works out as zero or less is held at one tick: a run that expired before it applied anything would simply be an effect that did nothing.
When a formula cannot be worked out
A duration formula that cannot be evaluated does not refuse the post. Someone is in the middle of writing a reply, and a mistyped formula in an effect they did not create is not something they can fix from there — so the effect runs for the shortest honest time instead.
This is a safety net, not a feature to lean on. Test a formula when you write it.
Effects that were already running
Effects applied before a site had frozen caster numbers have none recorded — there was nothing to record them from. For those, caster. reads the affected character, which is exactly what it meant before. A run already under way does not change value underneath the scene it is in.