Class ApplyTauntAction
Action that forces an NPC's threat onto the initiator — the taunt primitive.
[Serializable]
public class ApplyTauntAction : BaseAction, IAction
- Inheritance
-
ApplyTauntAction
- Implements
- Inherited Members
Remarks
Attach to an ability's AbilityOnHitEvent to make it a taunt. Without this, an ability nominated as a "taunt" only changed which ability an NPC preferred to cast; it had no effect whatsoever on the victim's threat table, so TauntAbilityTemplateIDs could never actually pull anything off a squishier ally. This is the missing half.
Server-only in effect: threat tables live on the server's AIController and are not replicated.
Fields
ForceImmediateTargetSwitch
When true the target immediately switches to the taunter rather than waiting for its next scheduled re-evaluation.
[Tooltip("Switch the target's focus immediately instead of waiting for its next re-evaluation.")]
public bool ForceImmediateTargetSwitch
Field Value
GuaranteeTopThreat
When true, the taunt also guarantees the initiator ends up on top by topping their threat past the current highest entry plus LeadOverHighest.
[Tooltip("Guarantee the taunter becomes the highest-threat target, not merely a higher one.")]
public bool GuaranteeTopThreat
Field Value
Remarks
A flat bonus alone is unreliable in a long fight: after a minute of sustained damage the top threat entry can be far beyond any fixed number, so the taunt lands and nothing changes. This makes the guarantee explicit rather than hoping the number is big enough.
The guarantee is computed in SCORE space, not in raw points. An NPC chooses its
target with AggressionController.GetThreatScore, which multiplies raw points by a
vulnerability factor for a wounded or out-of-mana character — so a taunt that merely put
the taunter above the highest RAW entry still lost to a wounded ally on the very next
re-evaluation, and ForceImmediateTargetSwitch hid it for exactly one
switch. Comparing where the comparison actually happens is what makes this a guarantee
rather than a strong suggestion.
LeadOverHighest
Extra threat placed above the previous highest entry when GuaranteeTopThreat is set.
[Tooltip("Threat placed above the previous highest entry when guaranteeing top threat.")]
public float LeadOverHighest
Field Value
ThreatPoints
Flat threat added to the target's table for the initiator.
[Tooltip("Flat threat points added for the taunting character.")]
public float ThreatPoints
Field Value
Methods
Execute(ICharacter, EventData)
Applies the taunt to the resolved target.
public override void Execute(ICharacter initiator, EventData eventData)
Parameters
initiatorICharacterThe taunting character.
eventDataEventDataEvent data carrying the taunted target.