- summary: A buff or debuff on a fighter: which spell and spell effect it comes from, who carries it, and its id.
- area: Game.Common
A buff or debuff on a fighter: which spell and spell effect it comes from, who carries it, and its id.
Kind struct · Area Game.Common
One effect (a buff) currently applied to a fighter. It always arrives wrapped in
FightRemovableEffectExtendedInformation, which adds the caster and the effect action;
FightBoostAddEvent adds one, FightBoostSynchronizeEvent refreshes them all, and
FightJoinRunningEvent hands back the running fight's effects.
THE UID IS THE KEY. FightRemovableEffect.uid identifies the effect for its whole life:
later updates, removals and full refreshes refer to it, and a refresh list replaces every
effect whose uid it does not contain. A negative uid means "no id".
TO DESCRIBE THE EFFECT
1. Look up FightRemovableEffect.spell_id in the spell data, at level
FightRemovableEffect.spell_level.
2. In that spell level, find the effect whose effect uid is FightRemovableEffect.effect_id,
in the critical-hit effects when FightRemovableEffect.critical is set, in the normal
effects otherwise. That game-data effect gives the action and the characteristic.
3. FightRemovableEffect.target_id is the fighter that carries it.
DURATION
4. The effect is active from FightRemovableEffect.start_turn to
FightRemovableEffect.end_turn, both FightTurn positions (round, then order).
Its remaining duration is the number of turns from now to end_turn.
VALUE
5. The three params replace the game-data effect's three parameters, for every kind:
FightRemovableEffect.first_param = parameter 0 (the amount),
FightRemovableEffect.second_param = parameter 1,
FightRemovableEffect.third_param = parameter 2.
6. For a characteristic boost or malus the value is first_param, negated when the
game-data effect's characteristic operator is "-".
7. When FightRemovableEffect.effect_kind is TRIGGERED, the three params are dice
(count, sides, flat value) and FightRemovableEffect.triggers says when it fires.
STATE
8. When effect_kind is STATE, the fighter is in a state while the effect lasts; the state
id is FightRemovableEffect.third_param.
WHAT CAN REMOVE IT
9. FightRemovableEffect.dissipation_state: any dispel, only the fighter's death, only a
strong dispel, or nothing.
Since 3.3 the record is flat: the per-kind sub-records of older builds are gone. Two declared members (a repeated string and an int32) are never read: padding.
Not sent on its own — it travels inside FightRemovableEffectExtendedInformation.effect. proven
Used by
Fields
| # | Field | Type | Meaning | You set it |
|---|---|---|---|---|
| 1 | third_param | int32 | The effect's parameter 2: the state id of a STATE effect (for dice: the flat value). Beta's name on FightTriggeredEffect and FightTemporaryBoostEffect.Details. BuffChange's param3. | never |
| 2 | start_turn | FightTurn | The turn the effect starts. Name ours, after the client's BuffChange(startTurn) and FightTurnWindow.start, which receive it. Beta had turn_duration instead. Type FightTurn (round, order). | never |
| 3 | critical | bool | True when the effect comes from the spell's critical-hit effects. Name ours: the client looks the effect up in the spell level's criticalEffect list when it is set (the effects list otherwise) and builds the effect wrapper with the same flag it uses for critical effects. | never |
| 4 | end_turn | FightTurn | The turn the effect ends: the effect lasts from start_turn to this turn. Name ours, after BuffChange(endTurn) and FightTurnWindow.end. Replaces beta's turn_duration. Type FightTurn (round, order). | never |
| 5 | uid | int32 | Identifier of this effect instance for its whole life. (buff id) Negative means no id. Refreshes, updates and removals refer to it. | never |
| 6 | effect_id | int32 | Which effect of that spell level this is. (spell effect uid) Matched against the effect uids of the spell level's effects. | never |
| 8 | target_id | int64 | The fighter that carries the effect. (fighter id) Not the caster: that is the wrapper's source_id. | never |
| 9 | dissipation_state | EffectDissipationState | How the effect can be removed: by any dispel, only by death, only by a strong dispel, or never. Beta's member of the same record. Its enum is EffectDissipationState: the client maps it onto its own dispellable code, which beta's client spells DISPELLABLE, DISPELLABLE_BY_DEATH, DISPELLABLE_BY_STRONG_DISPEL, REALLY_NOT_DISPELLABLE. | never |
| 10 | first_param | int32 | The effect's parameter 0: the amount of a boost or malus (for dice: the dice count). Beta's name for this parameter on FightTriggeredEffect and FightTemporaryBoostEffect.Details; the flat record carries it for every kind. The client hands it to BuffChange as param1 and, for a triggered effect, to the effect instance's dice. | never |
| 11 | effect_kind | RemovableEffectKind | Which kind of effect this is; decides how the params are read. Name ours. Its enum is RemovableEffectKind: STATE and TRIGGERED are proven; values 0, 1, 2, 4 and 6 are the boost family (a characteristic change by first_param). | never |
| 13 | second_param | int32 | Second parameter of the effect (for a dice effect: the dice sides). Beta's name on FightTriggeredEffect and FightTemporaryBoostEffect.Details. BuffChange's param2. | never |
| 14 | triggers | string | When the effect triggers, in the effect-trigger notation of the game data. Name ours, after EffectInstanceData.triggers (game data), the field the client copies it into. | never |
| 15 | spell_level | int32 | The level (rank) of the spell the effect comes from. Name ours: the client passes it as the rank to SpellData.GetSpellLevelData, and as the grade of the effect wrapper. Beta's record has no such member. | never |
| 16 | spell_id | int32 | The spell the effect comes from. (spell id) The client's own log names it: 'Spell #{0} from buff #{1} seems unknown'. | never |