Vixen
caa30e12
csharp
public struct DamageEvent

One hit, as it passes through the pipeline.

Read the guide page for this →

Remarks

A mutable struct passed by ref, because a raid is thousands of these a second and a class per hit is a garbage collection during a boss pull. Every stage reads what the ones before it wrote.

⚠ Random is seeded from EventId and nothing else. The same reason a loot roll is: a crit that cannot be recomputed from a number in the log is a support ticket nobody can answer. It is also why the realm rolls it and the client does not — doc 28 § Authority gives the client hit feedback and never the number.

Fields and properties (16)

  • public DefId Ability

    Which ability caused it.

  • public ulong EventId

    What caused it, as the caller numbers events. The one number it is reproducible from.

  • public GameplaySubject? Source

    Who did it, or null for the world — a fall, a fire, a hazard.

  • public GameplaySubject Target

    Who it happened to.

  • public GameplayTag School

    What kind of damage — Damage.Fire. One school per hit.

  • public bool IsHealing

    Whether this heals rather than harms.

  • public float ThreatMultiplier

    How much threat it makes per point.

  • public GameplayRandom Random

    The stream every roll in the pipeline comes from.

  • public float Amount

    What it is worth right now. Every stage before Apply edits this.

  • public bool IsCritical

    Whether it crit.

  • public float Mitigated

    How much mitigation took off.

  • public float Absorbed

    How much a shield soaked.

  • public float Applied

    How much actually landed.

  • public float Threat

    How much threat it made.

  • public bool Killed

    Whether it killed the target.

  • public bool Cancelled

    Whether a rule stopped it. Every later stage is skipped.

Used by (15)

  • BaseDamageRuleVixen.Gameplay.Combat
  • CancellerVixen.Gameplay.Combat.Tests
  • CombatResolverVixen.Gameplay.Combat
  • CriticalStrikeRuleVixen.Gameplay.Combat
  • DamagePipelineVixen.Gameplay.Combat
  • DamagePipelineTestsVixen.Gameplay.Combat.Tests
  • DamageRuleTestsVixen.Gameplay.Combat.Tests
  • HalverVixen.Gameplay.Combat.Tests
  • HealthRuleVixen.Gameplay.Combat
  • IDamageRuleVixen.Gameplay.Combat
  • NumberedVixen.Gameplay.Combat.Tests
  • RecorderVixen.Gameplay.Combat.Tests
  • ResistanceRuleVixen.Gameplay.Combat
  • ShieldAbsorbRuleVixen.Gameplay.Combat
  • ThreatRuleVixen.Gameplay.Combat