Interrupt_ShieldBlow
DisplayName: Shield Blow
Description: When struck by a melee attack, your attacker must succeed a Dexterity Saving Throw or fall Prone.
Icon: Action_Bash
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and (IsHit() or IsCritical()) and not HasStatus('INVISIBILITY') and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_ShieldBlow_Riposte,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)
Cost: ReactionActionPoint:1
Cooldown: OncePerTurn
InterruptDefaultValue: Enabled;Ask
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_Riposte


Interrupt_Legendary_ShieldBlow
DisplayName: Bulwark Rebuke
Description: When a creature damages you, deal it [1] and possibly knock it Prone.
DescriptionParams: DealDamage(2d4, Force)
ExtraDescription: The creature takes half damage on a successful Saving Throws..
Properties: UseSpell(SWAP,Target_Legendary_ShieldBlow_Riposte,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)
Icon: Action_Bash*
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and (IsHit() or IsCritical()) and not HasStatus('INVISIBILITY') and HasLastAttackTriggered()*
Cost: ReactionActionPoint:1*
Cooldown: OncePerTurn*
InterruptDefaultValue: Enabled;Ask*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_ShieldBlow **Interrupt_Riposte


Interrupt_TheClover_TrueStrike_Riposte
DisplayName: True Strike Riposte
Description: When a creature misses you with a melee attack, you may retaliate and gain True Strike.
Properties: UseSpell(SWAP,Target_MAG_TheClover_TrueStrike_Riposte,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)
Cost: ReactionActionPoint:1
Icon: PassiveFeature_Riposte*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and IsMiss() and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and HasLastAttackTriggered()*
InterruptDefaultValue: Enabled*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_Riposte


Interrupt_TheDueller_WitheringCut
DisplayName: Withering Cut
Description: When you hit a creature with melee weapon, you can spend a reaction to deal additional Necrotic damage equal to your Proficiency Bonus.
DescriptionParams:
ExtraDescription:
ExtraDescriptionParams:
Icon: GenericIcon_DamageType_Necrotic
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack()
Properties: DealDamage(ProficiencyBonus, Necrotic);ApplyStatus(MAG_NECROTIC_NECROTIC_BLAST_TECHNICAL,100, 0)
Cost: ReactionActionPoint:1
Stack:
InterruptDefaultValue: Enabled;Ask
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_MAG_Counterspell
DisplayName: Counterspell
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_MAG_CounterSpell_Success,true,true,true)
Cost: ReactionActionPoint:1;Interrupt_MAG_Counterspell:1
Cooldown: OncePerRestPerItem
EnableCondition: HasActionResource('Interrupt_MAG_Counterspell', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Roll: TryCounterspellHigherLevel(3)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Counterspell


Interrupt_Scarab_Of_Protection
DisplayName: Scarab of Protection
Description: Once per Long Rest, when you fail a Saving Throw against necromancy spells or spells cast by undead foes, you can use your reaction to succeed instead.
Icon: PassiveFeature_Generic_Magical
Conditions: Self(context.Target,context.Observer) and IsSavingThrow() and (Tagged('UNDEAD', context.Source) or IsSpellOfSchool(SpellSchool.Necromancy))
Cost: ReactionActionPoint:1;Interrupt_Scarab_Of_Protection:1
Cooldown: OncePerRestPerItem
EnableCondition: HasActionResource('Interrupt_Scarab_Of_Protection', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: SetRoll(20)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_RingOfEvasion


Interrupt_Legendary_InfernalResistance
DisplayName: Infernal Resistance
Description: Once per Long Rest, when you fail a Saving Throw, you may succeed instead.
Icon: PassiveFeature_Generic_Magical
Conditions: Self(context.Target,context.Observer) and IsSavingThrow() and IsSpell()
Properties: AdjustRoll(99)
Cost: ReactionActionPoint:1;Interrupt_Legendary_InfernalResistance:1
Cooldown: OncePerRestPerItem
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_Legendary_InfernalResistance', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Stats inherited from: *Interrupt_RingOfEvasion


Interrupt_LegendaryEvasion_Protection
DisplayName: Legendary Protection
Description: When your ally is about to be hit by a foe, you can use your reaction to make it automatically miss. Used once per Short Rest.
DescriptionParams:
Conditions: IsAbleToReact(context.Observer) and HasInterruptedAttack() and Enemy(context.Source,context.Observer) and not Self(context.Target, context.Observer)
Properties: AdjustRoll(OBSERVER_OBSERVER,-99)
Cost: ReactionActionPoint:1;Interrupt_LegendaryEvasion_Protection:1
Cooldown: OncePerRestPerItem
EnableCondition: HasActionResource('Interrupt_LegendaryEvasion_Protection', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
Icon: PassiveFeature_FightingStyle_Protection*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_FightingStyle_Protection


Interrupt_Legendary_SoulCatching_Attack
DisplayName: Soul Catching Boon
Description: Gain Advantage on your next Attack Roll.
DescriptionParams:
ExtraDescription:
Icon: GenericIcon_Intent_Buff
Properties: AdjustRoll(5);RemoveStatus(SELF, MAG_SOUL_CATCHING)
Cost:
Stack:
Cooldown: OncePerTurn
InterruptDefaultValue: Enabled;Ask
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(6, context.Source)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_Attack


Interrupt_Legendary_SoulCatching_SavingThrow
DisplayName: Soul Catching Prowess
Description: Gain Advantage on your next Saving Throws.
DescriptionParams:
ExtraDescription:
Icon: Action_Monster_GortashMachine_ShieldCapacitor
Properties: AdjustRoll(5);RemoveStatus(SELF, MAG_SOUL_CATCHING)
Cost:
Stack:
Cooldown: OncePerTurn
InterruptDefaultValue: Enabled;Ask
InterruptContext: OnPostRoll*
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(6)*
InterruptContextScope: Self**
Container: YesNoDecision**
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')**
EnableContext: OnStatusApplied**
Stats inherited from: *Interrupt_BardicInspiration_SavingThrow **Interrupt_BardicInspiration_Attack


Interrupt_MAG_Shield
DisplayName: Shield
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,0);RemoveStatus(MAG_SHIELD_RESOURCE)
Cost: ReactionActionPoint:1;Interrupt_MAG_Shield:1
Cooldown: OncePerRestPerItem
EnableCondition: HasActionResource('Interrupt_MAG_Shield', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_MAG_Monk_KushigoCounter
DisplayName: Kushigo Counter
Description: While Patient Defence is active: the wearer can use their reaction to make an unarmed strike against any attacker that misses.
Icon: Spell_Abjuration_MageArmor
Conditions: HasStatus('PATIENT_DEFENCE') and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and IsMiss() and not HasStatus('INVISIBILITY') and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_UnarmedAttack,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Enabled;Ask
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_Riposte


Interrupt_MAG_Monk_KushigoCounterEx
DisplayName: Greater Kushigo Counter
Description: The wearer can use their reaction to make an unarmed strike against any attacker that misses.
Icon: Spell_Abjuration_MageArmor
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and IsMiss() and not HasStatus('INVISIBILITY') and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_UnarmedAttack,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Enabled;Ask*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_MAG_Monk_KushigoCounter **Interrupt_Riposte


Interrupt_MAG_Shield_LeatherArmor
DisplayName: Shield
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,0);RemoveStatus(MAG_LEATHER_ARMOR_SHIELD_RESOURCE)
Cost: ReactionActionPoint:1;Interrupt_MAG_Shield_LeatherArmor:1
Cooldown: OncePerShortRestPerItem
EnableCondition: HasActionResource('Interrupt_MAG_Shield_LeatherArmor', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_MAG_Shield **Interrupt_Shield_Wizard


Interrupt_MAG_Defender_Weapon
DisplayName: Defensive Attack
Description: At the start of a round, you can reduce the weapon's additional attack bonus by [1] to increase your Armour Class and Saving Throws by [1].
DescriptionParams: 1
Icon: Action_Monster_Duergar_MindMastery
InterruptContext: OnPostRoll
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and IsMeleeWeaponAttack() and not HasStatus('MAG_DEFENDER_WEAPON_ENCHANTMENT_TECHNICAL',context.Observer) and not HasStatus('MAG_DEFENDER_FIRST_ATTACK',context.Observer)
Properties: AdjustRoll(-1);ApplyStatus(OBSERVER_OBSERVER,MAG_DEFENDER_WEAPON_ENCHANTMENT_TECHNICAL,100,1)
InterruptContextScope: Self*
Container: YesNoDecision*
Cooldown: OncePerTurn*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_RecklessAttack


Interrupt_MAG_ParalyzingCritical
DisplayName: Paralysing Critical
Description: Once per Long Rest, when scoring a Critical Hit on a humanoid, you can Paralyse the target for [1] turns.
DescriptionParams: 2
ExtraDescription:
ExtraDescriptionParams:
Icon: Status_Paralyzed
Conditions: Tagged('HUMANOID') and IsAbleToReact(context.Observer) and not Item() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsCritical() and not IsKillingBlow()
Properties: ApplyStatus(PARALYZED, 100, 2);RemoveStatus(SELF, MAG_PARALYZING_CRITICAL_OWNER)
Cost: Interrupt_MAG_ParalyzingCritical:1
Stack:
Cooldown: OncePerRestPerItem
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_MAG_ParalyzingCritical', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
InterruptContext: OnCastHit**
InterruptContextScope: Self**
Container: YesNoDecision**
Stats inherited from: *Interrupt_Smite_Divine_Critical **Interrupt_Smite_Divine


Interrupt_MAG_CriticalExecution
DisplayName: Executioner
Description: Once per Long Rest when you kill a creature, your next Attack Roll will be a Critical Hit.
DescriptionParams:
Icon: statIcons_ExterminateThreat
InterruptContext: OnPostRoll
Conditions: IsAbleToReact(context.Observer) and not Item() and Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical()
Properties: SetRoll(20);RemoveStatus(SELF, MAG_CRITICAL_CRITICAL_EXECUTION)
Cost:
EnableCondition:
EnableContext:
Cooldown: OncePerRestPerItem*
InterruptDefaultValue: Ask;Enabled*
InterruptContextScope: Self*
Container: YesNoDecision*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.**
Stack: DivineSmite***
Stats inherited from: *Interrupt_MAG_ParalyzingCritical **Interrupt_Smite_Divine_Critical ***Interrupt_Smite_Divine


Interrupt_MAG_Cunning_Combo_HandCrossbow
DisplayName: Cunning Combo
Description: When you shoot a target at close range, you can make an additional melee attack against it as a reaction.
DescriptionParams:
ExtraDescriptionParams:
InterruptContext: OnCastHit
Conditions: not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Target) and IsAbleToReact(context.Observer) and not Item() and IsRangedAttack() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsKillingBlow() and HasLastAttackTriggered()
Properties: UseAttack()
Cost: ReactionActionPoint:1
Stack:
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContextScope: Self*
Container: YesNoDecision*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_MAG_Shield_HarpersAmulet
DisplayName: Shield
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,0);RemoveStatus(MAG_HARPERS_AMULET_SHIELD_RESOURCE)
Cost: ReactionActionPoint:1;Interrupt_MAG_Shield_HarpersAmulet:1
EnableCondition: HasActionResource('Interrupt_MAG_Shield_HarpersAmulet', 1, 0, false, false, context.Source)
Cooldown: OncePerRestPerItem*
EnableContext: OnActionResourcesChanged*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_MAG_Shield **Interrupt_Shield_Wizard


Interrupt_MAG_SecondChance
DisplayName: Second Chance
Description: Once per Long Rest, you can spend a reaction to make an Attack Roll or Saving Throw with Advantage.
Cost: ReactionActionPoint:1;Interrupt_MAG_SecondChance:1
Cooldown: OncePerRestPerItem
EnableCondition: HasActionResource('Interrupt_MAG_SecondChance', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
Icon: PassiveFeature_Lucky_RollAdditionalDie*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not Dead(context.Observer) and (HasInterruptedAttack() and Self(context.Observer,context.Source) and IsRerollInterruptInteresting(context.Source)) or (HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and IsRerollInterruptInteresting()) and not AnyEntityIsItem()*
Properties: SetReroll(19,false)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Lucky_RollAdditionalDie


Interrupt_MAG_MissileSnaring
DisplayName: Missile Snaring
Description: Reduce damage from a ranged weapon by [1] + your Dexterity Modifier.
DescriptionParams: 1d10
ExtraDescription:
Properties: AdjustRoll(OBSERVER_OBSERVER,-(1d10+DexterityModifier));ApplyStatus(OBSERVER_TARGET,INTERRUPT_DEFLECT_MISSILES_HIT,100,1)
Cooldown:
EnableCondition:
EnableContext:
Icon: PassiveFeature_DeflectMissiles*
InterruptContext: OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsRangedWeaponAttack() and not HasStatus('SG_Polymorph_BeastShape') and not AnyEntityIsItem()*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_DeflectMissiles


Interrupt_AbsorbElements
DisplayName: Absorb Elements
Description: Absorb elemental damage once per Short Rest. Take half damage from the next elemental attack targetting you, and deal an additional [1] of that element type on your next attack.
DescriptionParams: 1d6
Icon: PassiveFeature_AbsorbElements
InterruptContextScope: Self
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and (SpellDamageTypeIs(DamageType.Acid) or SpellDamageTypeIs(DamageType.Cold) or SpellDamageTypeIs(DamageType.Fire) or SpellDamageTypeIs(DamageType.Lightning) or SpellDamageTypeIs(DamageType.Thunder)) and not AnyEntityIsItem()
Properties: SetDamageResistance(Acid);SetDamageResistance(Cold);SetDamageResistance(Fire);SetDamageResistance(Lightning);SetDamageResistance(Thunder);ApplyStatus(OBSERVER_TARGET, ABSORB_ELEMENTS_ACTIVE,100,1)
Cost: ReactionActionPoint:1;Interrupt_AbsorbElements:1
Cooldown: OncePerShortRestPerItem
EnableCondition: not HasStatus('SG_Polymorph') and HasActionResource('Interrupt_AbsorbElements', 1, 0, false, false, context.Source)
EnableContext: OnActionResourcesChanged
InterruptContext: OnPreDamage*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_DampenElements


Interrupt_ON_SPELL_CAST


Interrupt_Counterspell
DisplayName: Counterspell
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.
Icon: PassiveFeature_Counterspell
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()
Roll: TryCounterspellHigherLevel(3)
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Counterspell_Scroll
Cost: ReactionActionPoint:1
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Roll: TryCounterspellHigherLevel(3)*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_ON_POST_ROLL


Interrupt_BardicInspiration_Attack
DisplayName: Bardic Attack
Description: Add a +[1] bonus to your Attack Roll.
DescriptionParams: 1d6
ExtraDescription: You will expend your Bardic Inspiration.
Icon: PassiveFeature_BardicInspiration_Attack
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(6, context.Source)
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_ATTACK,100,0)
Cost: BardicInspiration:1
Stack: BardicInspiration
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_BardicInspiration_Attack_d8
DescriptionParams: 1d8
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(8, context.Source)
DisplayName: Bardic Attack*
Description: Add a +[1] bonus to your Attack Roll.*
ExtraDescription: You will expend your Bardic Inspiration.*
Icon: PassiveFeature_BardicInspiration_Attack*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_ATTACK,100,0)*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_Attack


Interrupt_BardicInspiration_Attack_d10
DescriptionParams: 1d10
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
DisplayName: Bardic Attack*
Description: Add a +[1] bonus to your Attack Roll.*
ExtraDescription: You will expend your Bardic Inspiration.*
Icon: PassiveFeature_BardicInspiration_Attack*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_ATTACK,100,0)*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_Attack


Interrupt_BardicInspiration_SavingThrow
DisplayName: Bardic Defence
Description: Add a +[1] bonus to your Saving Throw.
Icon: PassiveFeature_BardicInspiration_SavingThrow
InterruptContext: OnPostRoll
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(6)
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_SAVINGTHROW,100,0)
DescriptionParams: 1d6*
ExtraDescription: You will expend your Bardic Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_Attack


Interrupt_BardicInspiration_SavingThrow_d8
DescriptionParams: 1d8
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(8)
DisplayName: Bardic Defence*
Description: Add a +[1] bonus to your Saving Throw.*
Icon: PassiveFeature_BardicInspiration_SavingThrow*
InterruptContext: OnPostRoll*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_SAVINGTHROW,100,0)*
ExtraDescription: You will expend your Bardic Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_SavingThrow **Interrupt_BardicInspiration_Attack


Interrupt_BardicInspiration_SavingThrow_d10
DescriptionParams: 1d10
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10)
DisplayName: Bardic Defence*
Description: Add a +[1] bonus to your Saving Throw.*
Icon: PassiveFeature_BardicInspiration_SavingThrow*
InterruptContext: OnPostRoll*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_SAVINGTHROW,100,0)*
ExtraDescription: You will expend your Bardic Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_SavingThrow **Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_Attack
DisplayName: Valiant Attack
Description: Add a +[1] bonus to your Attack Roll.
ExtraDescription: You will expend your Combat Inspiration.
InterruptContext: OnPostRoll
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_ATTACK,100,0)
DescriptionParams: 1d6*
Icon: PassiveFeature_BardicInspiration_Attack*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(6, context.Source)*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_Attack_d8
DescriptionParams: 1d8
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(8, context.Source)
DisplayName: Valiant Attack*
Description: Add a +[1] bonus to your Attack Roll.*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContext: OnPostRoll*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_ATTACK,100,0)*
Icon: PassiveFeature_BardicInspiration_Attack*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Attack **Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_Attack_d10
DescriptionParams: 1d10
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
DisplayName: Valiant Attack*
Description: Add a +[1] bonus to your Attack Roll.*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContext: OnPostRoll*
Properties: AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D10);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT_D8);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_ATTACK,100,0)*
Icon: PassiveFeature_BardicInspiration_Attack*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Attack **Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_SavingThrow_ArmorClass
DisplayName: Valiant Defence
Description: Add a +[1] bonus to your Saving Throw or Armour Class.
Icon: PassiveFeature_CombatInspiration_ArmorClassOrSavingThrow
InterruptContext: OnPostRoll
Conditions: not Dead(context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(6, context.Source)) or (HasInterruptedSavingThrow() and IsFlatValueInterruptInteresting(6))) and Self(context.Observer,context.Target) and not AnyEntityIsItem()
Properties: IF(HasInterruptedSavingThrow()):AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));IF(HasInterruptedAttack()):AdjustRoll(OBSERVER_OBSERVER,0-ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DEFENSE,100,0)
ExtraDescription: You will expend your Combat Inspiration.*
DescriptionParams: 1d6*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Attack **Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_SavingThrow_ArmorClass_d8
DescriptionParams: 1d8
Conditions: not Dead(context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(8, context.Source)) or (HasInterruptedSavingThrow() and IsFlatValueInterruptInteresting(8))) and Self(context.Observer,context.Target) and not AnyEntityIsItem()
DisplayName: Valiant Defence*
Description: Add a +[1] bonus to your Saving Throw or Armour Class.*
Icon: PassiveFeature_CombatInspiration_ArmorClassOrSavingThrow*
InterruptContext: OnPostRoll*
Properties: IF(HasInterruptedSavingThrow()):AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));IF(HasInterruptedAttack()):AdjustRoll(OBSERVER_OBSERVER,0-ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DEFENSE,100,0)*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_SavingThrow_ArmorClass **Interrupt_CombatInspiration_Attack ***Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_SavingThrow_ArmorClass_d10
DescriptionParams: 1d10
Conditions: not Dead(context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(10, context.Source)) or (HasInterruptedSavingThrow() and IsFlatValueInterruptInteresting(10))) and Self(context.Observer,context.Target) and not AnyEntityIsItem()
DisplayName: Valiant Defence*
Description: Add a +[1] bonus to your Saving Throw or Armour Class.*
Icon: PassiveFeature_CombatInspiration_ArmorClassOrSavingThrow*
InterruptContext: OnPostRoll*
Properties: IF(HasInterruptedSavingThrow()):AdjustRoll(OBSERVER_OBSERVER,ResourceRoll(BardicInspiration,1));IF(HasInterruptedAttack()):AdjustRoll(OBSERVER_OBSERVER,0-ResourceRoll(BardicInspiration,1));RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DEFENSE,100,0)*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_SavingThrow_ArmorClass **Interrupt_CombatInspiration_Attack ***Interrupt_BardicInspiration_Attack


Interrupt_CuttingWords
DisplayName: Cutting Words
Description: The target receives a [1] penalty to Attack Roll, Ability Check or damage dealt.
DescriptionParams: LevelMapValue(BardicInspiration)
Icon: PassiveFeature_CuttingWords
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and Enemy(context.Source,context.Observer) and ((not ClassLevelHigherOrEqualThan(5,'Bard') and IsFlatValueInterruptInteresting(6, context.Source)) or (ClassLevelHigherOrEqualThan(5,'Bard') and not ClassLevelHigherOrEqualThan(10,'Bard') and IsFlatValueInterruptInteresting(8, context.Source)) or (ClassLevelHigherOrEqualThan(10,'Bard') and IsFlatValueInterruptInteresting(10, context.Source)))) or (HasInterruptedSavingThrow() and Enemy(context.Target,context.Observer) and ((not ClassLevelHigherOrEqualThan(5,'Bard') and IsFlatValueInterruptInteresting(6)) or (ClassLevelHigherOrEqualThan(5,'Bard') and not ClassLevelHigherOrEqualThan(10,'Bard') and IsFlatValueInterruptInteresting(8)) or (ClassLevelHigherOrEqualThan(10,'Bard') and IsFlatValueInterruptInteresting(10))))) and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_OBSERVER,0-LevelMapValue(BardicInspiration));ApplyStatus(OBSERVER_SOURCE,INTERRUPT_CUTTING_WORDS_TARGET,100,0);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_CUTTING_WORDS,100,0);IF(not Self(context.Target, context.Observer)):UseSpell(OBSERVER_SOURCE,Target_CuttingWords,true,true,true)
Cost: ReactionActionPoint:1;BardicInspiration:1
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_DefensiveDuelist
DisplayName: Defensive Duellist
Description: When attacked with a melee attack, add your Proficiency Bonus to your Armour Class, possibly causing attacks to miss.
DescriptionParams: ProficiencyBonus
ExtraDescription: Requires a Finesse Weapon you are Proficient in.
Icon: PassiveFeature_DefensiveDualist
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and HasInterruptedAttack() and Self(context.Target,context.Observer) and not AnyEntityIsItem() and IsMeleeAttack() and HasWeaponProperty(WeaponProperties.Finesse, GetActiveWeapon(context.Observer)) and IsProficientWith(context.Observer, GetActiveWeapon(context.Observer)) and IsFlatValueInterruptInteresting(context.Observer.ProficiencyBonus, context.Source)
Properties: AdjustRoll(OBSERVER_OBSERVER,0-ProficiencyBonus);ApplyStatus(SWAP,PASSIVE_DEFENSIVE_DUELIST,100,0);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_DEFENSIVE_DUELIST,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_RecklessAttack
DisplayName: Reckless Attack
Description: Gain Advantage on Attack Rolls until the end of your turn, but enemies also have Advantage against you.
Icon: Action_Barbarian_RecklessAttack
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Source) and IsMeleeWeaponAttack() and not HasStatus('RECKLESS_ATTACK',context.Observer) and not SpellId('Target_RecklessAttack') and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetAdvantage();ApplyStatus(OBSERVER_OBSERVER,RECKLESS_ATTACK,100,1)
Cooldown: OncePerTurn
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_WardingFlare
DisplayName: Warding Flare
Description: Impose Disadvantage on an attacker, possibly causing their attack to miss.
ExtraDescription: Has no effect on creatures that can't be Blinded.
Icon: PassiveAction_WardingFlare
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_TARGET,PASSIVE_WARDING_FLARE,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ON_PRE_DAMAGE


Interrupt_ShieldMaster
DisplayName: Shield Master: Block
Description: Shield yourself from a spell attack: when you fail a Dexterity Saving Throw on a spell, you only take half damage. When you succeed, you take no damage.
Icon: PassiveFeature_ShieldMaster_Block
InterruptContext: OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasDamageEffectFlag(DamageFlags.SavingThrow) and HasSpellFlag(SpellFlags.CanAreaDamageEvade) and not AnyEntityIsItem()
Properties: SetRoll(0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasShieldEquipped(context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnEquip;OnStatusApplied


Interrupt_ON_CAST_HIT


Interrupt_CombatInspiration_Damage
DisplayName: Valiant Damage
Description: Add an additional [1] damage to your weapon attack.
Icon: PassiveFeature_CombatInspiration_WeaponDamage
InterruptContext: OnCastHit
Conditions: not Dead(context.Observer) and Character() and IsWeaponAttack() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and not IsKillingBlow() and not AnyEntityIsItem()
Properties: IF(IsMeleeAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainRangedWeaponDamageType);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DAMAGE,100,0)
ExtraDescription: You will expend your Combat Inspiration.*
DescriptionParams: 1d6*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Attack **Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_Damage_d8
DescriptionParams: 1d8
DisplayName: Valiant Damage*
Description: Add an additional [1] damage to your weapon attack.*
Icon: PassiveFeature_CombatInspiration_WeaponDamage*
InterruptContext: OnCastHit*
Conditions: not Dead(context.Observer) and Character() and IsWeaponAttack() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and not IsKillingBlow() and not AnyEntityIsItem()*
Properties: IF(IsMeleeAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainRangedWeaponDamageType);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DAMAGE,100,0)*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Damage **Interrupt_CombatInspiration_Attack ***Interrupt_BardicInspiration_Attack


Interrupt_CombatInspiration_Damage_d10
DescriptionParams: 1d10
DisplayName: Valiant Damage*
Description: Add an additional [1] damage to your weapon attack.*
Icon: PassiveFeature_CombatInspiration_WeaponDamage*
InterruptContext: OnCastHit*
Conditions: not Dead(context.Observer) and Character() and IsWeaponAttack() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and not IsKillingBlow() and not AnyEntityIsItem()*
Properties: IF(IsMeleeAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(ResourceRoll(BardicInspiration,1), MainRangedWeaponDamageType);RemoveStatus(OBSERVER_OBSERVER,BARDIC_INSPIRATION_COMBAT);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_BARDIC_INSPIRATION_COMBAT_DAMAGE,100,0)*
ExtraDescription: You will expend your Combat Inspiration.*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: BardicInspiration:1*
Stack: BardicInspiration*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_CombatInspiration_Damage **Interrupt_CombatInspiration_Attack ***Interrupt_BardicInspiration_Attack


Interrupt_GiantKiller
DisplayName: Giant Killer
Description: If a Large or bigger creature attacks you, you can retaliate with a melee attack.
Icon: PassiveFeature_GiantKiller
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and SizeEqualOrGreater(Size.Large, context.Source) and IsMeleeAttack() and not HasStatus('INVISIBILITY', context.Source) and Self(context.Target,context.Observer) and not AnyEntityIsItem() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and HasLastAttackTriggered()
Properties: UseAttack(SWAP);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_GIANTKILLER,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_HellishRebuke
DisplayName: Hellish Rebuke
Description: React to your next attacker with flames that deal [1].
DescriptionParams: DealDamage(2d10,Fire)
Icon: PassiveFeature_HellishRebuke
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_HellishRebuke,true,true,true)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1
Stack: HellishRebuke
InterruptDefaultValue: Enabled;Ask
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_HellishRebuke_WarlockMI
ExtraDescription: Can be used once per Long Rest.
Cost: ReactionActionPoint:1;Interrupt_HellishRebukeWarlockMI_Charge:1
EnableCondition: HasActionResource('Interrupt_HellishRebukeWarlockMI_Charge', 1, 0, false, false, context.Source) and (not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER'))
EnableContext: OnStatusApplied;OnStatusRemoved;OnActionResourcesChanged
DisplayName: Hellish Rebuke*
Description: React to your next attacker with flames that deal [1].*
DescriptionParams: DealDamage(2d10,Fire)*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()*
Properties: UseSpell(SWAP,Target_HellishRebuke,true,true,true)*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
Stats inherited from: *Interrupt_HellishRebuke


Interrupt_HellishRebuke_2
DescriptionParams: DealDamage(3d10,Fire)
Properties: UseSpell(SWAP,Target_HellishRebuke_2,true,true,true)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
DisplayName: Hellish Rebuke*
Description: React to your next attacker with flames that deal [1].*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_HellishRebuke


Interrupt_HellishRebuke_AsmodeusTiefling
DisplayName: Infernal Legacy: Hellish Rebuke
ExtraDescription: Can be used once per Long Rest.
Cost: ReactionActionPoint:1;Interrupt_HellishRebukeTiefling_Charge:1
EnableCondition: HasActionResource('Interrupt_HellishRebukeTiefling_Charge', 1, 0, false, false, context.Source) and (not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER'))
EnableContext: OnStatusApplied;OnStatusRemoved;OnActionResourcesChanged
DescriptionParams: DealDamage(3d10,Fire)*
Properties: UseSpell(SWAP,Target_HellishRebuke_2,true,true,true)*
Description: React to your next attacker with flames that deal [1].*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
Stats inherited from: *Interrupt_HellishRebuke_2 **Interrupt_HellishRebuke


Interrupt_HellishRebuke_3
DescriptionParams: DealDamage(4d10,Fire)
Properties: UseSpell(SWAP,Target_HellishRebuke_3,true,true,true)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
DisplayName: Hellish Rebuke*
Description: React to your next attacker with flames that deal [1].*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_HellishRebuke


Interrupt_Riposte
DisplayName: Riposte
Description: When a creature misses you with a melee attack, you can retaliate with a powerful strike that deals an additional 1d8 damage if you are wielding a melee weapon.
Icon: PassiveFeature_Riposte
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and IsMeleeAttack() and IsMiss() and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_Riposte,true,true,true);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_RIPOSTE,100,0)
Cost: ReactionActionPoint:1;SuperiorityDie:1
InterruptDefaultValue: Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_Smite_Divine
DisplayName: Divine Smite
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.
DescriptionParams: DealDamage(2d8,Radiant);DealDamage(1d8,Radiant)
ExtraDescription: This reaction won't trigger on a Critical Hit.
Icon: Action_Paladin_DivineSmite
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(2d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:1
Stack: DivineSmite
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Smite_Divine_2
DescriptionParams: DealDamage(3d8,Radiant);DealDamage(1d8,Radiant)
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:2
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_Smite_Divine_3
DescriptionParams: DealDamage(4d8,Radiant);DealDamage(1d8,Radiant)
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:3
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_Smite_Divine_4
DescriptionParams: DealDamage(5d8,Radiant);DealDamage(1d8,Radiant)
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:4
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_Smite_Divine_5
Cost: SpellSlotsGroup:1:1:5
DescriptionParams: DealDamage(5d8,Radiant);DealDamage(1d8,Radiant)*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_4 **Interrupt_Smite_Divine


Interrupt_Smite_Divine_6
Cost: SpellSlotsGroup:1:1:6
DescriptionParams: DealDamage(5d8,Radiant);DealDamage(1d8,Radiant)*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_4 **Interrupt_Smite_Divine


Interrupt_Smite_Divine_NPC
InterruptDefaultValue: Enabled
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
DescriptionParams: DealDamage(2d8,Radiant);DealDamage(1d8,Radiant)*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(2d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
Cost: SpellSlotsGroup:1:1:1*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_Smite_Divine_2_NPC
InterruptDefaultValue: Enabled
DescriptionParams: DealDamage(3d8,Radiant);DealDamage(1d8,Radiant)*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
Cost: SpellSlotsGroup:1:1:2*
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_2 **Interrupt_Smite_Divine


Interrupt_Smite_Divine_3_NPC
InterruptDefaultValue: Enabled
DescriptionParams: DealDamage(4d8,Radiant);DealDamage(1d8,Radiant)*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
Cost: SpellSlotsGroup:1:1:3*
DisplayName: Divine Smite*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
ExtraDescription: This reaction won't trigger on a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_3 **Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical
DisplayName: Divine Smite on Critical Hit
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.
Icon: Action_Paladin_DivineSmite
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()
Cost: SpellSlotsGroup:1:1:1
InterruptDefaultValue: Enabled
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
DescriptionParams: DealDamage(2d8,Radiant);DealDamage(1d8,Radiant)*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(2d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical_2
DescriptionParams: DealDamage(3d8,Radiant);
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(3d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:2
DisplayName: Divine Smite on Critical Hit*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
InterruptDefaultValue: Enabled*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_Critical **Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical_3
DescriptionParams: DealDamage(4d8,Radiant);
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(4d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:3
DisplayName: Divine Smite on Critical Hit*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
InterruptDefaultValue: Enabled*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_Critical **Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical_4
DescriptionParams: DealDamage(5d8,Radiant);
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)
Cost: SpellSlotsGroup:1:1:4
DisplayName: Divine Smite on Critical Hit*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
InterruptDefaultValue: Enabled*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_Critical **Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical_5
Cost: SpellSlotsGroup:1:1:5
DescriptionParams: DealDamage(5d8,Radiant);*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
DisplayName: Divine Smite on Critical Hit*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
InterruptDefaultValue: Enabled*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_Critical_4 **Interrupt_Smite_Divine_Critical ***Interrupt_Smite_Divine


Interrupt_Smite_Divine_Critical_6
Cost: SpellSlotsGroup:1:1:6
DescriptionParams: DealDamage(5d8,Radiant);*
Properties: IF(not UndeadOrFiend(context.Target)):DealDamage(5d8,Radiant);IF(UndeadOrFiend(context.Target)):DealDamage(6d8,Radiant);ApplyStatus(INTERRUPT_SMITE_DIVINE_VFX,100,0)*
DisplayName: Divine Smite on Critical Hit*
ExtraDescription: Deals an additional [1] to fiends and undead.

This reaction only triggers when you land a Critical Hit.*
Icon: Action_Paladin_DivineSmite*
Conditions: IsAbleToReact(context.Observer) and not Item() and IsMeleeAttack() and not IsDivineSmite() and Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and not AnyEntityIsItem()*
InterruptDefaultValue: Enabled*
Description: Your weapon deals an additional [1], increased by [2] when attacking fiends or undead.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: DivineSmite*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Smite_Divine_Critical_4 **Interrupt_Smite_Divine_Critical ***Interrupt_Smite_Divine


Interrupt_OTHERS


Interrupt_AttackOfOpportunity
DisplayName: Opportunity Attack
Description: Attack an enemy moving out of your reach.
Icon: PassiveFeature_AttackOfOpportunity
InterruptContext: OnLeaveAttackRange
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Observer, context.Target) and Enemy() and not HasStatus('SANCTUARY',context.Source) and not WieldingWeapon('Ammunition', false, false, context.Source) and not (not Player(context.Source) and Tagged('AI_IGNORED_TARGET') and not HasStatus('GNOLL_SUDDENRUSH')) and not HasStatus('SHOCKWAVE') and not (HasStatus('MOBILE_NO_AOO', context.Source) and HasStatus('MOBILE_NO_AOO_SOURCE', context.Target)) and not HasStatus('FLAMING_SPHERE_AURA') and not HasStatus('SNEAKING',context.Target) and not HasStatus('SG_Ignore_AOO',context.Target) and not AnyEntityIsItem() and not HasSpellFlag(SpellFlags.IgnoreAoO, context.Target)
Properties: IF(not HasPassive('Sentinel_ZeroSpeed',context.Source)):UseAttack();IF(HasPassive('Sentinel_ZeroSpeed',context.Source)):UseSpell(Target_Sentinel_AttackOfOpportunity,true,true,true);TutorialEvent(SWAP,f658a860-7e3e-44fd-807b-88d3c0c31217)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Blinded')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_ON_SPELL_CAST_DUPE_ENTRY_63995
origin: Shared_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_ControlledChaos
DisplayName: Controlled Chaos
Description: Induce a Wild Magic Surge on the nearby spellcaster.
Icon: PassiveFeature_WildMagicSurge
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not AnyEntityIsItem()
Properties: TriggerRandomCast(OBSERVER_SOURCE,1,0,WildMagicEvil);UseSpell(OBSERVER_SOURCE,Target_ControlledChaos,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Counterspell_4
Roll: TryCounterspellHigherLevel(4)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_Counterspell_5
Roll: TryCounterspellHigherLevel(5)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_Counterspell_6
Roll: TryCounterspellHigherLevel(6)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_DestructiveWrath
DisplayName: Destructive Wrath
Description: When you roll Thunder or Lightning damage, you can use your Channel Divinity to deal maximum damage instead.
Icon: PassiveFeature_DestructiveWrath
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and (SpellDamageTypeIs(DamageType.Lightning) or SpellDamageTypeIs(DamageType.Thunder)) and not AnyEntityIsItem()
Properties: ApplyStatus(OBSERVER_OBSERVER,DESTRUCTIVE_WRATH,100,1)
Cost: ChannelDivinity:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ElementalAffinity
DisplayName: Elemental Affinity: Resistance
Description: When you cast a spell that deals damage matching your draconic ancestry, you can spend 1 Sorcery Point to gain Resistance to that damage type.
Icon: Skill_Sorcerer_Passive_ElementalAffinity_Resistance
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and ElementalAffinityCheck() and not AnyEntityIsItem()
Properties: IF(HasPassive('DraconicAncestry_Black',context.Source) or HasPassive('DraconicAncestry_Copper',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_ACID,100,-1);IF(HasPassive('DraconicAncestry_Silver',context.Source) or HasPassive('DraconicAncestry_White',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_COLD,100,-1);IF(HasPassive('DraconicAncestry_Red',context.Source) or HasPassive('DraconicAncestry_Gold',context.Source) or HasPassive('DraconicAncestry_Brass',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_FIRE,100,-1);IF(HasPassive('DraconicAncestry_Blue',context.Source) or HasPassive('DraconicAncestry_Bronze',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_LIGHTNING,100,-1);IF(HasPassive('DraconicAncestry_Green',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_POISON,100,-1)
Cost: SorceryPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_HeartOfTheStorm_Lightning
DisplayName: Heart of the Storm: Lightning
Description: When you cast a spell of Level 1 or higher that deals Lightning damage, you cause a small, local storm. All enemies within [2] take [1].
DescriptionParams: DealDamage(ClassLevel(Sorcerer)/2,Lightning);Distance(6)
Icon: PassiveFeature_HeartOfTheStorm_Lightning
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source, context.Observer) and IsSpell() and SpellDamageTypeIs(DamageType.Lightning) and not AnyEntityIsItem()
Properties: CreateExplosion(OBSERVER_OBSERVER,Projectile_HeartOfTheStorm_Lightning)
Stack: HeartOfTheStorm
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_HeartOfTheStorm_Thunder
DisplayName: Heart of the Storm: Thunder
Description: When you cast a spell of Level 1 or higher that deals Thunder damage, you cause a small, local storm. All enemies within [2] take [1].
DescriptionParams: DealDamage(ClassLevel(Sorcerer)/2,Thunder);Distance(6)
Icon: PassiveFeature_HeartOfTheStorm_Thunder
Conditions: Self(context.Source, context.Observer) and IsSpell() and SpellDamageTypeIs(DamageType.Thunder) and not AnyEntityIsItem()
Properties: CreateExplosion(OBSERVER_OBSERVER,Projectile_HeartOfTheStorm_Thunder)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
InterruptContext: OnSpellCast*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: HeartOfTheStorm*
InterruptDefaultValue: Enabled*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_HeartOfTheStorm_Lightning


Interrupt_InstinctiveCharm
DisplayName: Instinctive Charm
Description: Charm an enemy attacking you. They will attack a new target if possible.
Icon: PassiveFeature_InstinctiveCharm
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasStringInSpellRoll('Attack') and not AnyEntityIsItem() and not HasStatus('INSTINCTIVE_CHARM_UNTARGETABLE',context.Source,context.Observer)
Roll: not SavingThrow(Ability.Wisdom, SourceSpellDC(14,context.Observer,Ability.Intelligence),AdvantageOnCharmPerson(),false,context.Source)
Success: Counterspell();ApplyStatus(SWAP,CHARMED,100,1);IF(HasAnyExtraAttack(context.Source)):ApplyStatus(SELF,EXTRA_ATTACK_Q,100,1);IF(not HasAnyExtraAttack(context.Source)):ApplyStatus(SELF,EXTRA_ATTACK,100,1)
Failure: ApplyStatus(OBSERVER_SOURCE,INSTINCTIVE_CHARM_UNTARGETABLE, 100, -1)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_MageSlayer
DisplayName: Mage Slayer
Description: Attack an enemy as a reaction if they cast a spell near you.
Icon: PassiveFeature_MageSlayer_AttackACaster
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and not AnyEntityIsItem()
Properties: UseAttack(OBSERVER_SOURCE)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_TAD_PsionicBacklash
DisplayName: Psionic Backlash
Description: When a nearby enemy casts a spell, you use your reaction to deal [1] for every level of that spell.
DescriptionParams: DealDamage(1d4, Psychic)
Icon: TadpoleSuperPower_PsionicBacklash
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and IsSpell() and not IsCantrip() and Enemy(context.Source, context.Observer) and not AnyEntityIsItem()
Properties: DealDamage(OBSERVER_SOURCE,1d4*SpellPowerLevel,Psychic);UseSpell(OBSERVER_SOURCE,Target_TAD_PsionicBacklash,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_TAD_PsionicDominance
DisplayName: Psionic Dominance
Description: When an enemy within [1] targets you with a spell of a Level that is lower than or equal to your Proficiency Bonus, you can use your reaction to nullify the spell.
DescriptionParams: Distance(18)
Icon: TadpoleSuperPower_PsionicDominance
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and SpellPowerLevelEqualOrLessThan(context.Observer.ProficiencyBonus) and not AnyEntityIsItem() and not HasStringInSpellRoll('WeaponAttack')
Properties: Counterspell();UseSpell(OBSERVER_SOURCE,Target_TAD_PsionicDominance,true,true,true)
Cost: ReactionActionPoint:1;Interrupt_TAD_PsionicDominance_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_TAD_PsionicDominance_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_ON_POST_ROLL_DUPE_ENTRY_76923
origin: Shared_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_BendLuck_Bonus
DisplayName: Bend Luck
Description: When an ally makes an Attack Roll or Saving Throw, it receives a +[1] bonus.
DescriptionParams: 1d4
Icon: Skill_Sorcerer_Passive_BendLuck
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and ((not Self(context.Source,context.Observer) and HasInterruptedAttack() and Ally(context.Source, context.Observer) and IsFlatValueInterruptInteresting(4, context.Source)) or (not Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and Ally(context.Target, context.Observer) and IsFlatValueInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: AdjustRoll(1d4);IF(not Self(context.Target,context.Observer) and HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_BendLuck_Interrupt_Positive,true,true,true);IF(not Self(context.Target,context.Observer) and HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_BendLuck_Interrupt_Positive,true,true,true)
Cost: ReactionActionPoint:1;SorceryPoint:2
Stack: BendLuck
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_BendLuck_Malus
Description: When an enemy makes an Attack Roll or Saving Throw, it receives a -[1] penalty.
Conditions: IsAbleToReact(context.Observer) and ((not Self(context.Source,context.Observer) and HasInterruptedAttack() and Enemy(context.Source, context.Observer) and IsFlatValueInterruptInteresting(4, context.Source)) or (not Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and Enemy(context.Target, context.Observer) and IsFlatValueInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: AdjustRoll(-1d4);IF(not Self(context.Target,context.Observer) and HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_BendLuck_Interrupt_Negative,true,true,true);IF(not Self(context.Target,context.Observer) and HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_BendLuck_Interrupt_Negative,true,true,true)
DisplayName: Bend Luck*
DescriptionParams: 1d4*
Icon: Skill_Sorcerer_Passive_BendLuck*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Cost: ReactionActionPoint:1;SorceryPoint:2*
Stack: BendLuck*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BendLuck_Bonus


Interrupt_EntropicWard
DisplayName: Entropic Ward
Description: Impose Disadvantage on an Attack Roll against you.

If the attack misses, you gain Advantage on your next Attack Roll against the attacker for 1 turn.
Icon: PassiveFeature_EntropicWard
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_OBSERVER,ENTROPIC_WARD_USED,100,1)
Cost: ReactionActionPoint:1;Interrupt_EntropicWard_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_EntropicWard_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_FightingStyle_Protection
DisplayName: Protection
Description: When you have a shield, impose Disadvantage on an attack against your allies when you are within [1]. You must be able to see the attacker.
DescriptionParams: Distance(1.5)
Icon: PassiveFeature_FightingStyle_Protection
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and HasShieldEquipped(context.Observer) and not Self(context.Source,context.Observer) and not Self(context.Target,context.Observer) and Ally(context.Target, context.Observer) and HasInterruptedAttack() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_TARGET,INTERRUPT_FIGHTINGSTYLE_PROTECTION,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasShieldEquipped(context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnStatusApplied;OnEquip


Interrupt_GuidedStrike
DisplayName: Guided Strike
Description: Gain a +[1] bonus to your Attack Roll.
DescriptionParams: 10
Icon: PassiveFeature_GuidedStrike
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_SOURCE,GUIDED_STRIKE,100,1)
Cost: ChannelDivinity:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_IllusorySelf
DisplayName: Illusory Self
Description: Interpose an illusory duplicate of yourself between you and an attacker's strike, making them miss their attack.
ExtraDescription: You must Short Rest to use this feature again.
Icon: PassiveFeature_IllusorySelf
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsSetInterruptInteresting(1, context.Source)
Properties: SetRoll(1);ApplyStatus(INTERRUPT_ILLUSORY_SELF,100,0)
Cost: ReactionActionPoint:1;Interrupt_IllusorySelf_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_IllusorySelf_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_Indomitable
DisplayName: Indomitable
Description: Whenever you fail a Saving Throw, you can roll again, using the new result instead.
Icon: PassiveFeature_Indomitable
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting()
Properties: SetReroll(19,true)
Cost: Interrupt_Indomitable:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_Indomitable', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_LegendaryResistance
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Saving Throw result by 10.
Icon: Action_TransmuterStone_Resistance
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and not AnyEntityIsItem()
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)
Cost: LegendaryResistanceCharge:1
Stack: LegendaryResistance
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_LegendaryResistance_Strength
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Strength Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Strength) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Dexterity
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Dexterity Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Dexterity) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Constitution
DisplayName: Legendary Resistance:
Description: Use a reaction to increase your Constitution Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Constitution) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Intelligence
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Intelligence Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Intelligence) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Wisdom
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Wisdom Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Wisdom) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Charisma
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Charisma Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Charisma) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_CrowdControl
DisplayName: Legendary Resistance
Description: Use a reaction to increase your crowd control Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and AppliesCrowdControlStatus() and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_Lucky_ReplaceAttackersDie
DisplayName: Lucky: Reroll Attacker's Die
Description: Spend a Luck Point to force a creature to reroll its Attack Roll.
Icon: PassiveFeature_Lucky_ReplaceAttackersDie
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetReroll(20,true)
Cost: LuckPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Lucky_RollAdditionalDie
DisplayName: Lucky: Reroll with Advantage
Description: Spend a Luck Point to gain Advantage on your Attack Roll or Saving Throw.
Icon: PassiveFeature_Lucky_RollAdditionalDie
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and (HasInterruptedAttack() and Self(context.Observer,context.Source) and IsRerollInterruptInteresting(context.Source)) or (HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and IsRerollInterruptInteresting()) and not AnyEntityIsItem()
Properties: SetReroll(19,false)
Cost: LuckPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Portent_1
DisplayName: Portent Die: 1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].
DescriptionParams: 1
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.
Icon: PassiveFeature_Portent_1
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(1, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(1))) and not AnyEntityIsItem()
Properties: SetRoll(1);RemoveStatus(OBSERVER_OBSERVER,PORTENT_1);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_1:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Portent_2
DisplayName: Portent Die: 2
DescriptionParams: 2
Icon: PassiveFeature_Portent_2
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(2, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(2))) and not AnyEntityIsItem()
Properties: SetRoll(2);RemoveStatus(OBSERVER_OBSERVER,PORTENT_2);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_2:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_3
DisplayName: Portent Die: 3
DescriptionParams: 3
Icon: PassiveFeature_Portent_3
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(3, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(3))) and not AnyEntityIsItem()
Properties: SetRoll(3);RemoveStatus(OBSERVER_OBSERVER,PORTENT_3);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_3:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_4
DisplayName: Portent Die: 4
DescriptionParams: 4
Icon: PassiveFeature_Portent_4
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(4, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: SetRoll(4);RemoveStatus(OBSERVER_OBSERVER,PORTENT_4);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_4:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_5
DisplayName: Portent Die: 5
DescriptionParams: 5
Icon: PassiveFeature_Portent_5
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(5, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(5))) and not AnyEntityIsItem()
Properties: SetRoll(5);RemoveStatus(OBSERVER_OBSERVER,PORTENT_5);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_5:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_6
DisplayName: Portent Die: 6
DescriptionParams: 6
Icon: PassiveFeature_Portent_6
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(6, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(6))) and not AnyEntityIsItem()
Properties: SetRoll(6);RemoveStatus(OBSERVER_OBSERVER,PORTENT_6);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_6:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_7
DisplayName: Portent Die: 7
DescriptionParams: 7
Icon: PassiveFeature_Portent_7
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(7, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(7))) and not AnyEntityIsItem()
Properties: SetRoll(7);RemoveStatus(OBSERVER_OBSERVER,PORTENT_7);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_7:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_8
DisplayName: Portent Die: 8
DescriptionParams: 8
Icon: PassiveFeature_Portent_8
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(8, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(8))) and not AnyEntityIsItem()
Properties: SetRoll(8);RemoveStatus(OBSERVER_OBSERVER,PORTENT_8);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_8:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_9
DisplayName: Portent Die: 9
DescriptionParams: 9
Icon: PassiveFeature_Portent_9
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(9, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(9))) and not AnyEntityIsItem()
Properties: SetRoll(9);RemoveStatus(OBSERVER_OBSERVER,PORTENT_9);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_9:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_10
DisplayName: Portent Die: 10
DescriptionParams: 10
Icon: PassiveFeature_Portent_10
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(10, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(10))) and not AnyEntityIsItem()
Properties: SetRoll(10);RemoveStatus(OBSERVER_OBSERVER,PORTENT_10);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_10:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_11
DisplayName: Portent Die: 11
DescriptionParams: 11
Icon: PassiveFeature_Portent_11
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(11, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(11))) and not AnyEntityIsItem()
Properties: SetRoll(11);RemoveStatus(OBSERVER_OBSERVER,PORTENT_11);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_11:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_12
DisplayName: Portent Die: 12
DescriptionParams: 12
Icon: PassiveFeature_Portent_12
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(12, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(12))) and not AnyEntityIsItem()
Properties: SetRoll(12);RemoveStatus(OBSERVER_OBSERVER,PORTENT_12);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_12:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_13
DisplayName: Portent Die: 13
DescriptionParams: 13
Icon: PassiveFeature_Portent_13
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(13, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(13))) and not AnyEntityIsItem()
Properties: SetRoll(13);RemoveStatus(OBSERVER_OBSERVER,PORTENT_13);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_13:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_14
DisplayName: Portent Die: 14
DescriptionParams: 14
Icon: PassiveFeature_Portent_14
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(14, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(14))) and not AnyEntityIsItem()
Properties: SetRoll(14);RemoveStatus(OBSERVER_OBSERVER,PORTENT_14);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_14:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_15
DisplayName: Portent Die: 15
DescriptionParams: 15
Icon: PassiveFeature_Portent_15
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(15, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(15))) and not AnyEntityIsItem()
Properties: SetRoll(15);RemoveStatus(OBSERVER_OBSERVER,PORTENT_15);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_15:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_16
DisplayName: Portent Die: 16
DescriptionParams: 16
Icon: PassiveFeature_Portent_16
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(16, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(16))) and not AnyEntityIsItem()
Properties: SetRoll(16);RemoveStatus(OBSERVER_OBSERVER,PORTENT_16);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_16:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_17
DisplayName: Portent Die: 17
DescriptionParams: 17
Icon: PassiveFeature_Portent_17
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(17, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(17))) and not AnyEntityIsItem()
Properties: SetRoll(17);RemoveStatus(OBSERVER_OBSERVER,PORTENT_17);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_17:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_18
DisplayName: Portent Die: 18
DescriptionParams: 18
Icon: PassiveFeature_Portent_18
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(18, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(18))) and not AnyEntityIsItem()
Properties: SetRoll(18);RemoveStatus(OBSERVER_OBSERVER,PORTENT_18);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_18:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_19
DisplayName: Portent Die: 19
DescriptionParams: 19
Icon: PassiveFeature_Portent_19
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(19, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(19))) and not AnyEntityIsItem()
Properties: SetRoll(19);RemoveStatus(OBSERVER_OBSERVER,PORTENT_19);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_19:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_20
DisplayName: Portent Die: 20
DescriptionParams: 20
Icon: PassiveFeature_Portent_20
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(20, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(20))) and not AnyEntityIsItem()
Properties: SetRoll(20);RemoveStatus(OBSERVER_OBSERVER,PORTENT_20);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_20:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_RingOfEvasion
DisplayName: Ring of Evasion
Description: When you make a Dexterity Saving Throw, you can use your reaction to succeed instead.
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Target,context.Observer) and HasSavingThrowWithAbility(Ability.Dexterity) and not AnyEntityIsItem() and IsSetInterruptInteresting(20)
Properties: SetRoll(20)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Shield_Wizard
DisplayName: Shield
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.
Icon: PassiveFeature_Shield
InterruptContext: OnPostRoll;OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Shield_Sorcerer
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Warlock
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_2
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_2
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_2
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_3
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_3
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_3
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_4
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_4
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_4
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_5
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_5
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_5
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_6
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_6
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_6
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_TAD_LuckOfTheFarRealms
DisplayName: Luck of the Far Realms
Description: When you make a successful Attack Roll against a foe, you can change that hit into a Critical Hit.
Icon: TadpoleSuperPower_LuckOfTheFarRealm
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Source,context.Observer) and HasInterruptedAttack() and LuckOfTheFarRealmCheck() and not AnyEntityIsItem()
Properties: SetRoll(20)
Cost: ReactionActionPoint:1;Interrupt_LuckOfTheFarRealms_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_LuckOfTheFarRealms_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_TidesOfChaos
DisplayName: Tides of Chaos
Description: Gain Advantage on your next Attack Roll, Ability Check, or Saving Throw.

Increased chance of Wild Magic surge afterwards.
Icon: Skill_Sorcerer_Passive_TidesOfChaos
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and ((Self(context.Source,context.Observer) and HasInterruptedAttack() and IsRerollInterruptInteresting(context.Source)) or (Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and IsRerollInterruptInteresting())) and not AnyEntityIsItem()
Properties: SetAdvantage();ApplyStatus(OBSERVER_OBSERVER,TIDES_OF_CHAOS,100,-1)
Cost: TidesOfChaos:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_UncannyDodge
DisplayName: Uncanny Dodge
Description: On a hit, receive half damage from a foe's attack.
Icon: PassiveFeature_UncannyDodge
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem()
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_WardingFlare_Improved
DisplayName: Improved Warding Flare
Description: Impose Disadvantage on an ally's attacker, possibly causing their attack to miss.
Icon: PassiveFeature_ImprovedFlare
InterruptContextScope: Nearby
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and not Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_TARGET,PASSIVE_WARDING_FLARE,100,0);IF(not Self(context.Target,context.Observer)):UseSpell(OBSERVER_TARGET,Target_ImprovedFlare_Interrupt,true,true,true)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
ExtraDescription: Has no effect on creatures that can't be Blinded.*
InterruptContext: OnPostRoll*
Container: YesNoDecision*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_WardingFlare


Interrupt_WarGodsBlessing
DisplayName: War God's Blessing
Description: Grant a nearby ally a +[1] bonus to their Attack Roll.
Icon: PassiveFeature_WarGodsBlessing
InterruptContextScope: Nearby
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source,context.Observer) and Ally(context.Source,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_SOURCE,WAR_GODS_BLESSING,100,0);UseSpell(OBSERVER_SOURCE,Target_WarGodsBlessing_Interrupt,true,true,true)
Cost: ChannelDivinity:1;ReactionActionPoint:1
DescriptionParams: 10*
InterruptContext: OnPostRoll*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_GuidedStrike


Interrupt_ON_PRE_DAMAGE_DUPE_ENTRY_59008
origin: Shared_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_DampenElements
DisplayName: Dampen Elements
Description: When you or an ally gets hit with Acid, Cold, Fire, Lightning, or Thunder damage, you can use your reaction to halve the attack's damage.
Icon: PassiveFeature_DampenElements
InterruptContext: OnPreDamage
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and (Self(context.Target,context.Observer) or Ally(context.Target,context.Observer)) and DampenElementsCheck(context.HitDescription.MainDamageType, context.Target) and not AnyEntityIsItem()
Properties: SetDamageResistance(Acid);SetDamageResistance(Cold);SetDamageResistance(Fire);SetDamageResistance(Lightning);SetDamageResistance(Thunder);ApplyStatus(OBSERVER_TARGET,INTERRUPT_DAMPEN_ELEMENTS,100,0);IF(not Self(context.Target,context.Observer)):UseSpell(OBSERVER_TARGET,Target_DampenElements_Interrupt,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_DeflectMissiles
DisplayName: Deflect Missiles
Description: Reduce the damage from a ranged weapon attack by 1d10 + your Dexterity Modifier + your monk level.

If the damage is reduced to 0, you use a Ki Point to Deflect the Missile.
ExtraDescription: You can only reduce damage from the attack - any additional effects can't be negated.
Icon: PassiveFeature_DeflectMissiles
InterruptContext: OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsRangedWeaponAttack() and not HasStatus('SG_Polymorph_BeastShape') and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_OBSERVER,-(1d10+DexterityModifier+ClassLevel(Monk)));ApplyStatus(OBSERVER_TARGET,INTERRUPT_DEFLECT_MISSILES_HIT,100,1);RestoreResource(DeflectMissiles_Charge,1,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Parry
DisplayName: Parry
Description: Parry the next melee attack that hits you to reduce the damage by [1].
DescriptionParams: 1d8+DexterityModifier
Icon: PassiveFeature_Parry
InterruptContext: OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsMeleeWeaponAttack() and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_OBSERVER,-(LevelMapValue(SuperiorityDie)+DexterityModifier))
Cost: ReactionActionPoint:1;SuperiorityDie:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ProjectedWard
DisplayName: Projected Ward
Description: When a nearby ally takes damage, you can use your Arcane Ward to reduce the damage equal to its charges and then lose 1 charge.
DescriptionParams: RegainHitPoints(2*Level+IntelligenceModifier)
Icon: PassiveFeature_ProjectedWard
InterruptContext: OnPreDamage
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Ally(context.Target,context.Observer) and not Self(context.Target,context.Observer) and HasStatus('ARCANE_WARD',context.Observer) and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_TARGET,-(ARCANE_WARD.Duration));ApplyStatus(INTERRUPT_PROJECTED_WARD,100,0);ApplyStatus(OBSERVER_OBSERVER,ARCANE_WARD,100,ARCANE_WARD.Duration-1);UseSpell(OBSERVER_TARGET,Target_ProjectedWard_Interrupt,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ON_CAST_HIT_DUPE_ENTRY_97509
origin: Shared_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_DeflectMissiles_Return
DisplayName: Deflect Missiles
Description: Catch a projectile from a ranged weapon attack and shoot it back at your attacker.
Icon: PassiveFeature_DeflectMissiles
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsAttackType(AttackType.RangedWeaponAttack) and not (IsCriticalMiss() or IsMiss()) and HasActionResource('DeflectMissiles_Charge', 1, 0, false, false, context.Observer) and not AnyEntityIsItem()
Properties: UseSpell(SWAP,Projectile_Deflect_Missiles,true,true,true,c4598bdb-fc07-40dd-a62c-90cc138bd76f);UseActionResource(OBSERVER_OBSERVER,DeflectMissiles_Charge,1,0)
Cost: KiPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_DivineStrike_Cold
DisplayName: Divine Strike: Frigid Depths
Description: Deal an additional [1].
DescriptionParams: DealDamage(1d8,Cold)
Icon: Action_DivineStrike_Melee
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,Cold)
Cost: Interrupt_DivineStrike:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_DivineStrike_Cold_Critical
DisplayName: Divine Strike: Frigid Depths
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Description: Deal an additional [1].*
DescriptionParams: DealDamage(1d8,Cold)*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: DealDamage(1d8,Cold)*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Fire
DisplayName: Divine Strike: Molten Flame
DescriptionParams: DealDamage(1d8,Fire)
Properties: DealDamage(1d8,Fire)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Fire_Critical
DisplayName: Divine Strike: Molten Flame
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Fire)*
Properties: DealDamage(1d8,Fire)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Fire **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Lightning
DisplayName: Divine Strike: Scything Bolts
DescriptionParams: DealDamage(1d8,Lightning)
Properties: DealDamage(1d8,Lightning)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Lightning_Critical
DisplayName: Divine Strike: Doom Bolts
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Lightning)*
Properties: DealDamage(1d8,Lightning)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Lightning **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Poison
DisplayName: Divine Strike: Nightshade Poison
DescriptionParams: DealDamage(1d8,Poison)
Properties: DealDamage(1d8,Poison)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Poison_Critical
DisplayName: Divine Strike: Nightshade Poison
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Poison)*
Properties: DealDamage(1d8,Poison)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Poison **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Radiant
DisplayName: Divine Strike: Honour Shining Bright
DescriptionParams: DealDamage(1d8,Radiant)
Properties: DealDamage(1d8,Radiant)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Radiant_Critical
DisplayName: Divine Strike: Brightsoul Bash
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Radiant)*
Properties: DealDamage(1d8,Radiant)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Radiant **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Thunder
DisplayName: Divine Strike: Thunder
DescriptionParams: DealDamage(1d8,Thunder)
Properties: DealDamage(1d8,Thunder)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Thunder_Critical
DisplayName: Divine Strike: Thunder
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Thunder)*
Properties: DealDamage(1d8,Thunder)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Thunder **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_MeleeWeapon
DisplayName: Divine Strike: Brutish Slam
DescriptionParams: DealDamage(1d8,MainMeleeWeaponDamageType)
Icon: Action_DivineStrike_Melee
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsMeleeAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,MainMeleeWeaponDamageType)
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_MeleeWeapon_Critical
DisplayName: Divine Strike: Brutish Slam
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsMeleeAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,MainMeleeWeaponDamageType)*
Icon: Action_DivineStrike_Melee*
Properties: DealDamage(1d8,MainMeleeWeaponDamageType)*
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_MeleeWeapon **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_RangedWeapon
DisplayName: Divine Strike: Death From Afar
DescriptionParams: DealDamage(1d8,MainRangedWeaponDamageType)
Icon: Action_DivineStrike_Ranged
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsRangedAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,MainRangedWeaponDamageType)
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_RangedWeapon_Critical
DisplayName: Divine Strike: Death From Afar
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsRangedAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,MainRangedWeaponDamageType)*
Icon: Action_DivineStrike_Ranged*
Properties: DealDamage(1d8,MainRangedWeaponDamageType)*
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_RangedWeapon **Interrupt_DivineStrike_Cold


Interrupt_GuardianOfFaith_Retaliate
DisplayName: Divine Retaliation
Description: Strike back at the enemy that attacked you.
Icon: Spell_Evocation_SacredFlame
InterruptContext: OnCastHit
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Ally(context.Observer,context.Target) and Enemy(context.Source,context.Observer) and not DistanceToGreaterThan(context.ObserverPosition, context.SourcePosition, 3) and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseAttack(OBSERVER_SOURCE)
InterruptDefaultValue: Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_HellishRebuke_Myrmidon
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not HasStatus('SILENCED',context.Source) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_HellishRebuke_Myrmidon,true,true,true)
Cost: ReactionActionPoint:1
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved
DisplayName: Hellish Rebuke*
Description: React to your next attacker with flames that deal [1].*
DescriptionParams: DealDamage(2d10,Fire)*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
Stats inherited from: *Interrupt_HellishRebuke


Interrupt_MistyEscape
DisplayName: Misty Escape
Description: Upon taking damage, become Invisible. On your next turn, you can cast Misty Step, though this will break your invisibility.
Icon: PassiveFeature_MistyEscape
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(OBSERVER_OBSERVER,Shout_Invisibility_MistyEscape,true,true,true)
Cost: ReactionActionPoint:1;Interrupt_MistyEscape:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_MistyEscape', 1, 0, false, false, context.Source) and (not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged;OnStatusApplied;OnStatusRemoved


Interrupt_Overwhelm
DisplayName: Tenacity
Description: When you miss an attack, deal [1] anyway.
DescriptionParams: DealDamage(max(1,StrengthModifier), Bludgeoning)
Icon: PassiveAction_Overwhelm
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and (IsCriticalMiss() or IsMiss()) and IsMeleeWeaponAttack() and IsProficientWithEquippedWeapon() and not AnyEntityIsItem()
Properties: DealDamage(max(1,StrengthModifier), Bludgeoning)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Sentinel
DisplayName: Sentinel
Description: When an ally is attacked by a nearby creature, you may strike the attacker.
Icon: PassiveFeature_Sentinel_Attack
InterruptContext: OnCastHit
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: not Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Ally(context.Target, context.Observer) and Enemy(context.Source, context.Observer) and not HasPassive('Sentinel_Attack',context.Target) and IsAbleToReact(context.Observer) and IsMeleeAttack() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseAttack(OBSERVER_SOURCE)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_SneakAttack
DisplayName: Sneak Attack
Description: Deal extra damage to a foe you have Advantage against.
Icon: Action_SneakAttack_Melee
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and ((WieldingFinesseWeaponInSpecificHand(context.Observer,false) and IsMainHandAttack()) or (WieldingFinesseWeaponInSpecificHand(context.Observer,true) and IsOffHandAttack()) or IsThrowAttackRoll()) and not IsCritical() and not IsKillingBlow() and (HasDamageEffectFlag(DamageFlags.AttackAdvantage) or HasAllyWithinRange('SG_Incapacitated',1.5)) and not HasDamageEffectFlag(DamageFlags.AttackDisadvantage) and not (SpellId('Projectile_SneakAttack') or SpellId('Target_SneakAttack')) and not AnyEntityIsItem()
Properties: IF(IsMeleeAttack()):DealDamage(LevelMapValue(SneakAttack), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(LevelMapValue(SneakAttack), MainRangedWeaponDamageType);IF(HasPassive('MAG_ForcefulSneakAttack_Passive', context.Source)):DealDamage(1d4, Force)
Cost: SneakAttack_Charge:1
Stack: SneakAttack
Cooldown: OncePerTurn
InterruptDefaultValue: Enabled
EnableCondition: HasActionResource('SneakAttack_Charge',1,0,false,false,context.Source) and (WieldingFinesseWeaponInSpecificHand(context.Source, false) or WieldingFinesseWeaponInSpecificHand(context.Source, true) or WieldingWeapon('Ammunition', false, true, context.Source) or SpellTypeIs(SpellType.Throw)) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged;OnEquip


Interrupt_SneakAttack_Critical
DisplayName: Sneak Attack (Critical Hit)
Conditions: Self(context.Source,context.Observer) and ((WieldingFinesseWeaponInSpecificHand(context.Observer,false) and IsMainHandAttack()) or (WieldingFinesseWeaponInSpecificHand(context.Observer,true) and IsOffHandAttack()) or IsThrowAttackRoll()) and HasDamageEffectFlag(DamageFlags.Hit) and IsCritical() and not IsKillingBlow() and (HasDamageEffectFlag(DamageFlags.AttackAdvantage) or HasAllyWithinRange('SG_Incapacitated',1.5)) and not HasDamageEffectFlag(DamageFlags.AttackDisadvantage) and not (SpellId('Projectile_SneakAttack') or SpellId('Target_SneakAttack')) and not AnyEntityIsItem()
InterruptDefaultValue: Enabled
Description: Deal extra damage to a foe you have Advantage against.*
Icon: Action_SneakAttack_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: IF(IsMeleeAttack()):DealDamage(LevelMapValue(SneakAttack), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(LevelMapValue(SneakAttack), MainRangedWeaponDamageType);IF(HasPassive('MAG_ForcefulSneakAttack_Passive', context.Source)):DealDamage(1d4, Force)*
Cost: SneakAttack_Charge:1*
Stack: SneakAttack*
Cooldown: OncePerTurn*
EnableCondition: HasActionResource('SneakAttack_Charge',1,0,false,false,context.Source) and (WieldingFinesseWeaponInSpecificHand(context.Source, false) or WieldingFinesseWeaponInSpecificHand(context.Source, true) or WieldingWeapon('Ammunition', false, true, context.Source) or SpellTypeIs(SpellType.Throw)) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged;OnEquip*
Stats inherited from: *Interrupt_SneakAttack


Interrupt_StormsFury
DisplayName: Storm's Fury
Description: When struck by a melee attack, you may deal thunder damage to the attacker and possibly push them back.
Icon: GenericIcon_DamageType_Thunder
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and IsMeleeAttack() and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_StormsFury,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WrathOfTheStorm_Lightning
DisplayName: Wrath of the Storm: Lightning
Description: If a nearby enemy attacks you, you can retaliate with a strike of lightning that deals [1].
DescriptionParams: DealDamage(2d8,Lightning)
ExtraDescription: On Save: Target still takes half damage.
Icon: PassiveFeature_WrathOfTheStorm_Lightning
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Enemy(context.Source,context.Observer) and IsAbleToReact(context.Observer) and IsAttack() and IsHit() and not DistanceToGreaterThan(context.SourcePosition, context.TargetPosition, 2) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(OBSERVER_SOURCE,Target_WrathOfTheStorm_Lightning,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WrathOfTheStorm_Thunder
DisplayName: Wrath of the Storm: Thunder
Description: If a nearby enemy attacks you, you can retaliate with a burst of thunder that deals [1].
DescriptionParams: DealDamage(2d8,Thunder)
Icon: PassiveFeature_WrathOfTheStorm_Thunder
Properties: UseSpell(OBSERVER_SOURCE,Target_WrathOfTheStorm_Thunder,true,true,true)
ExtraDescription: On Save: Target still takes half damage.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Enemy(context.Source,context.Observer) and IsAbleToReact(context.Observer) and IsAttack() and IsHit() and not DistanceToGreaterThan(context.SourcePosition, context.TargetPosition, 2) and not AnyEntityIsItem() and HasLastAttackTriggered()*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_WrathOfTheStorm_Lightning


Interrupt_TAD_Charm
DisplayName: Charm
Description: Charm an enemy that attacks you, preventing them from attacking you until their next turn.
Icon: TadpoleSuperPower_Charm
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and IsAttack() and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and HasLastAttackTriggered() and not IsImmuneToStatus('SG_Charmed',context.Source)
Properties: UseSpell(OBSERVER_SOURCE,Target_TAD_Charm,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_Unstable_Backlash
DisplayName: Unstable Backlash
Description: While Raging, when you take damage or fail a Saving Throw, you trigger another Wild Magic effect. This replaces your current Wild Magic effect.
Icon: PassiveFeature_Generic_Magical
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasStatus('SG_Rage') and IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and not AnyEntityIsItem() and not IsKillingBlow() and (TotalDamageDoneGreaterThan(0) or not (HasSavingThrowWithAbility(Ability.None) or HasDamageEffectFlag(DamageFlags.SavingThrow))) and HasLastAttackTriggered()
Properties: RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_TELEPORT);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_WEAPON_INFUSION);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_MAGIC_RETRIBUTION);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_PROTECTIVE_LIGHTS);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_VINE_GROWTH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_LIGHT_BOLT);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);TriggerRandomCast(1,0,WildMagicBarbarian)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_OTHERS_DUPE_ENTRY_48248
origin: Shared_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_PolearmMaster
DisplayName: Polearm Master: Opportunity Attack
Description: Make an Opportunity Attack whenever a creature enters your reach.
ExtraDescription: Prerequisite: Must be wielding a glaive, halberd, quarterstaff, or spear.
Icon: PassiveFeature_PolearmMaster_AttackOfOpportunity
InterruptContext: OnEnterAttackRange
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and (HasWeaponProperty(WeaponProperties.Reach, GetActiveWeapon(context.Source)) or Tagged('WPN_STAVE', GetActiveWeapon(context.Source, true)) or Tagged('WPN_SPEAR', GetActiveWeapon(context.Source, true))) and Enemy() and not WieldingWeapon('Ammunition', false, false, context.Source) and not (not Player(context.Source) and Tagged('AI_IGNORED_TARGET') and not HasStatus('GNOLL_SUDDENRUSH')) and not HasStatus('SHOCKWAVE') and not (HasStatus('MOBILE_NO_AOO', context.Source) and HasStatus('MOBILE_NO_AOO_SOURCE', context.Target)) and not HasStatus('FLAMING_SPHERE_AURA') and not HasStatus('SNEAKING',context.Target) and not HasStatus('SG_Ignore_AOO',context.Target) and not AnyEntityIsItem()
Properties: IF(not HasPassive('Sentinel_ZeroSpeed',context.Source)):UseAttack();IF(HasPassive('Sentinel_ZeroSpeed',context.Source)):UseSpell(Target_Sentinel_AttackOfOpportunity,true,true,true)
Cost: ReactionActionPoint:1
Stack: AttackOfOpportunity
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WarCaster
DisplayName: War Caster: Opportunity Spell
Description: Cast Shocking Grasp at a creature moving out of range.
Icon: PassiveFeature_WarCaster_OpportunitySpell
InterruptContext: OnLeaveAttackRange
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and Self(context.Observer, context.Source) and not Self(context.Observer, context.Target) and Enemy() and not WieldingWeapon('Ammunition', false, false, context.Source) and not HasStatus('SG_Incapacitated', context.Source) and not HasStatus('SG_Unconscious', context.Source) and not (not Player(context.Source) and Tagged('AI_IGNORED_TARGET') and not HasStatus('GNOLL_SUDDENRUSH')) and not HasStatus('SHOCKWAVE') and not (HasStatus('MOBILE_NO_AOO', context.Source) and HasStatus('MOBILE_NO_AOO_SOURCE', context.Target)) and not HasStatus('FLAMING_SPHERE_AURA') and not HasStatus('SNEAKING',context.Target) and not HasStatus('SG_Ignore_AOO',context.Target) and not AnyEntityIsItem()
Properties: UseSpell(Target_ShockingGrasp,true,true,true)
Cost: ReactionActionPoint:1
Stack: AttackOfOpportunity
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_MONSTER


Interrupt_SteelWatcher_Biped_SelfDestruct_Begin
DisplayName: Self-Detonation Protocol
Description: Initiate a countdown sequence that ends with Self-Detonation.
Icon: PassiveFeature_Generic_Explosion
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(30, context.Observer) and not HasStatus('STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN', context.Observer) and not (SpellId('Target_Smite_Banishing') or SpellId('Projectile_Smite_Banishing'))
Properties: UseSpell(OBSERVER_OBSERVER,Shout_SteelWatcher_Biped_SelfDestruct_Begin,true,true,true)
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Blinded')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_SteelWatcher_Biped_SelfDestruct_Begin_BanishingSmite
DisplayName: Self-Detonation Protocol
Description: Initiate a countdown sequence that ends with Self-Detonation.
Icon: PassiveFeature_Generic_Explosion
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(30, context.Observer) and not HasStatus('STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN', context.Observer) and (SpellId('Target_Smite_Banishing') or SpellId('Projectile_Smite_Banishing'))
Properties: ApplyStatus(OBSERVER_OBSERVER,STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN,100,1)
InterruptDefaultValue: Enabled


Interrupt_Berserk_FleshGolem
DisplayName: Corpulent Rage
Description: As your health diminishes, let out a bone-quaking roar that pushes back anyone near you, and go Berserk.
Icon: Action_Barbarian_Frenzy
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(40, context.Observer) and not HasStatus('SHA_NECROMANCER_FLESH_BERSERK', context.Observer)
Properties: UseSpell(OBSERVER_OBSERVER,Shout_Berserk_FleshGolem,true,true,true)
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Blinded')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_Shield_Mindflayer
Cost: ReactionActionPoint:1;Interupt_Shield_MindFlayer:1
Cooldown: OncePerCombat
EnableCondition: HasActionResource('Interupt_Shield_MindFlayer', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext:
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_CounterSpell_MindFlayer
Cost: ReactionActionPoint:1;Interupt_CounterSpell_MindFlayer:1
Cooldown: OncePerCombat
EnableCondition: HasActionResource('Interupt_CounterSpell_MindFlayer', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext:
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Roll: TryCounterspellHigherLevel(3)*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Counterspell


Interrupt_ON_SPELL_CAST_DUPE_ENTRY_95928
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_ControlledChaos_DUPE_ENTRY_20582
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Controlled Chaos
Description: Induce a Wild Magic Surge on the nearby spellcaster.
Icon: PassiveFeature_WildMagicSurge
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not AnyEntityIsItem()
Properties: TriggerRandomCast(OBSERVER_SOURCE,1,0,WildMagicEvil);UseSpell(OBSERVER_SOURCE,Target_ControlledChaos,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Counterspell_4_DUPE_ENTRY_94480
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Roll: TryCounterspellHigherLevel(4)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_Counterspell_5_DUPE_ENTRY_49711
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Roll: TryCounterspellHigherLevel(5)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_Counterspell_6_DUPE_ENTRY_80146
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Roll: TryCounterspellHigherLevel(6)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Counterspell


Interrupt_DestructiveWrath_DUPE_ENTRY_73125
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Destructive Wrath
Description: When you roll Thunder or Lightning damage, you can use your Channel Divinity to deal maximum damage instead.
Icon: PassiveFeature_DestructiveWrath
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and (SpellDamageTypeIs(DamageType.Lightning) or SpellDamageTypeIs(DamageType.Thunder)) and not AnyEntityIsItem()
Properties: ApplyStatus(OBSERVER_OBSERVER,DESTRUCTIVE_WRATH,100,1)
Cost: ChannelDivinity:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ElementalAffinity_DUPE_ENTRY_27307
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Elemental Affinity: Resistance
Description: When you cast a spell that deals damage matching your draconic ancestry, you can spend 1 Sorcery Point to gain Resistance to that damage type.
Icon: Skill_Sorcerer_Passive_ElementalAffinity_Resistance
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and ElementalAffinityCheck() and not AnyEntityIsItem()
Properties: IF(HasPassive('DraconicAncestry_Black',context.Source) or HasPassive('DraconicAncestry_Copper',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_ACID,100,-1);IF(HasPassive('DraconicAncestry_Silver',context.Source) or HasPassive('DraconicAncestry_White',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_COLD,100,-1);IF(HasPassive('DraconicAncestry_Red',context.Source) or HasPassive('DraconicAncestry_Gold',context.Source) or HasPassive('DraconicAncestry_Brass',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_FIRE,100,-1);IF(HasPassive('DraconicAncestry_Blue',context.Source) or HasPassive('DraconicAncestry_Bronze',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_LIGHTNING,100,-1);IF(HasPassive('DraconicAncestry_Green',context.Source)):ApplyStatus(OBSERVER_OBSERVER,ELEMENTALAFFINITY_POISON,100,-1)
Cost: SorceryPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_HeartOfTheStorm_Lightning_DUPE_ENTRY_1176
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Heart of the Storm: Lightning
Description: When you cast a spell of Level 1 or higher that deals Lightning damage, you cause a small, local storm. All enemies within [2] take [1].
DescriptionParams: DealDamage(ClassLevel(Sorcerer)/2,Lightning);Distance(6)
Icon: PassiveFeature_HeartOfTheStorm_Lightning
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source, context.Observer) and IsSpell() and SpellDamageTypeIs(DamageType.Lightning) and not AnyEntityIsItem()
Properties: CreateExplosion(OBSERVER_OBSERVER,Projectile_HeartOfTheStorm_Lightning)
Stack: HeartOfTheStorm
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_HeartOfTheStorm_Thunder_DUPE_ENTRY_12540
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Heart of the Storm: Thunder
Description: When you cast a spell of Level 1 or higher that deals Thunder damage, you cause a small, local storm. All enemies within [2] take [1].
DescriptionParams: DealDamage(ClassLevel(Sorcerer)/2,Thunder);Distance(6)
Icon: PassiveFeature_HeartOfTheStorm_Thunder
Conditions: Self(context.Source, context.Observer) and IsSpell() and SpellDamageTypeIs(DamageType.Thunder) and not AnyEntityIsItem()
Properties: CreateExplosion(OBSERVER_OBSERVER,Projectile_HeartOfTheStorm_Thunder)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
InterruptContext: OnSpellCast*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: HeartOfTheStorm*
InterruptDefaultValue: Enabled*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_HeartOfTheStorm_Lightning


Interrupt_InstinctiveCharm_DUPE_ENTRY_70298
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Instinctive Charm
Description: Charm an enemy attacking you. They will attack a new target if possible.
Icon: PassiveFeature_InstinctiveCharm
InterruptContext: OnSpellCast
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasStringInSpellRoll('Attack') and not AnyEntityIsItem() and not HasStatus('INSTINCTIVE_CHARM_UNTARGETABLE',context.Source,context.Observer)
Roll: not SavingThrow(Ability.Wisdom, SourceSpellDC(14,context.Observer,Ability.Intelligence),AdvantageOnCharmPerson(),false,context.Source)
Success: Counterspell();ApplyStatus(SWAP,CHARMED,100,1);IF(HasAnyExtraAttack(context.Source)):ApplyStatus(SELF,EXTRA_ATTACK_Q,100,1);IF(not HasAnyExtraAttack(context.Source)):ApplyStatus(SELF,EXTRA_ATTACK,100,1)
Failure: ApplyStatus(OBSERVER_SOURCE,INSTINCTIVE_CHARM_UNTARGETABLE, 100, -1)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_MageSlayer_DUPE_ENTRY_18670
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Mage Slayer
Description: Attack an enemy as a reaction if they cast a spell near you.
Icon: PassiveFeature_MageSlayer_AttackACaster
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and not AnyEntityIsItem()
Properties: UseAttack(OBSERVER_SOURCE)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_TAD_PsionicBacklash_DUPE_ENTRY_79519
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Psionic Backlash
Description: When a nearby enemy casts a spell, you use your reaction to deal [1] for every level of that spell.
DescriptionParams: DealDamage(1d4, Psychic)
Icon: TadpoleSuperPower_PsionicBacklash
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and IsSpell() and not IsCantrip() and Enemy(context.Source, context.Observer) and not AnyEntityIsItem()
Properties: DealDamage(OBSERVER_SOURCE,1d4*SpellPowerLevel,Psychic);UseSpell(OBSERVER_SOURCE,Target_TAD_PsionicBacklash,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_TAD_PsionicDominance_DUPE_ENTRY_33952
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Psionic Dominance
Description: When an enemy within [1] targets you with a spell of a Level that is lower than or equal to your Proficiency Bonus, you can use your reaction to nullify the spell.
DescriptionParams: Distance(18)
Icon: TadpoleSuperPower_PsionicDominance
InterruptContext: OnSpellCast
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and SpellPowerLevelEqualOrLessThan(context.Observer.ProficiencyBonus) and not AnyEntityIsItem() and not HasStringInSpellRoll('WeaponAttack')
Properties: Counterspell();UseSpell(OBSERVER_SOURCE,Target_TAD_PsionicDominance,true,true,true)
Cost: ReactionActionPoint:1;Interrupt_TAD_PsionicDominance_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_TAD_PsionicDominance_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_ON_POST_ROLL_DUPE_ENTRY_72581
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_BendLuck_Bonus_DUPE_ENTRY_40478
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Bend Luck
Description: When an ally makes an Attack Roll or Saving Throw, it receives a +[1] bonus.
DescriptionParams: 1d4
Icon: Skill_Sorcerer_Passive_BendLuck
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and ((not Self(context.Source,context.Observer) and HasInterruptedAttack() and Ally(context.Source, context.Observer) and IsFlatValueInterruptInteresting(4, context.Source)) or (not Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and Ally(context.Target, context.Observer) and IsFlatValueInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: AdjustRoll(1d4);IF(not Self(context.Target,context.Observer) and HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_BendLuck_Interrupt_Positive,true,true,true);IF(not Self(context.Target,context.Observer) and HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_BendLuck_Interrupt_Positive,true,true,true)
Cost: ReactionActionPoint:1;SorceryPoint:2
Stack: BendLuck
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_BendLuck_Malus_DUPE_ENTRY_8188
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Description: When an enemy makes an Attack Roll or Saving Throw, it receives a -[1] penalty.
Conditions: IsAbleToReact(context.Observer) and ((not Self(context.Source,context.Observer) and HasInterruptedAttack() and Enemy(context.Source, context.Observer) and IsFlatValueInterruptInteresting(4, context.Source)) or (not Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and Enemy(context.Target, context.Observer) and IsFlatValueInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: AdjustRoll(-1d4);IF(not Self(context.Target,context.Observer) and HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_BendLuck_Interrupt_Negative,true,true,true);IF(not Self(context.Target,context.Observer) and HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_BendLuck_Interrupt_Negative,true,true,true)
DisplayName: Bend Luck*
DescriptionParams: 1d4*
Icon: Skill_Sorcerer_Passive_BendLuck*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Cost: ReactionActionPoint:1;SorceryPoint:2*
Stack: BendLuck*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_BendLuck_Bonus


Interrupt_EntropicWard_DUPE_ENTRY_56820
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Entropic Ward
Description: Impose Disadvantage on an Attack Roll against you.

If the attack misses, you gain Advantage on your next Attack Roll against the attacker for 1 turn.
Icon: PassiveFeature_EntropicWard
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_OBSERVER,ENTROPIC_WARD_USED,100,1)
Cost: ReactionActionPoint:1;Interrupt_EntropicWard_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_EntropicWard_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_FightingStyle_Protection_DUPE_ENTRY_53540
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Protection
Description: When you have a shield, impose Disadvantage on an attack against your allies when you are within [1]. You must be able to see the attacker.
DescriptionParams: Distance(1.5)
Icon: PassiveFeature_FightingStyle_Protection
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and HasShieldEquipped(context.Observer) and not Self(context.Source,context.Observer) and not Self(context.Target,context.Observer) and Ally(context.Target, context.Observer) and HasInterruptedAttack() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_TARGET,INTERRUPT_FIGHTINGSTYLE_PROTECTION,100,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasShieldEquipped(context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnStatusApplied;OnEquip


Interrupt_GuidedStrike_DUPE_ENTRY_32234
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Guided Strike
Description: Gain a +[1] bonus to your Attack Roll.
DescriptionParams: 10
Icon: PassiveFeature_GuidedStrike
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_SOURCE,GUIDED_STRIKE,100,1)
Cost: ChannelDivinity:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_IllusorySelf_DUPE_ENTRY_24466
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Illusory Self
Description: Interpose an illusory duplicate of yourself between you and an attacker's strike, making them miss their attack.
ExtraDescription: You must Short Rest to use this feature again.
Icon: PassiveFeature_IllusorySelf
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsSetInterruptInteresting(1, context.Source)
Properties: SetRoll(1);ApplyStatus(INTERRUPT_ILLUSORY_SELF,100,0)
Cost: ReactionActionPoint:1;Interrupt_IllusorySelf_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_IllusorySelf_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_Indomitable_DUPE_ENTRY_90
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Indomitable
Description: Whenever you fail a Saving Throw, you can roll again, using the new result instead.
Icon: PassiveFeature_Indomitable
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting()
Properties: SetReroll(19,true)
Cost: Interrupt_Indomitable:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_Indomitable', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_LegendaryResistance_DUPE_ENTRY_2479
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Saving Throw result by 10.
Icon: Action_TransmuterStone_Resistance
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and not AnyEntityIsItem()
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)
Cost: LegendaryResistanceCharge:1
Stack: LegendaryResistance
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_LegendaryResistance_Strength_DUPE_ENTRY_17786
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Strength Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Strength) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Dexterity_DUPE_ENTRY_38806
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Dexterity Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Dexterity) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Constitution_DUPE_ENTRY_39007
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance:
Description: Use a reaction to increase your Constitution Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Constitution) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Intelligence_DUPE_ENTRY_3234
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Intelligence Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Intelligence) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Wisdom_DUPE_ENTRY_37886
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Wisdom Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Wisdom) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_Charisma_DUPE_ENTRY_32877
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your Charisma Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and HasSavingThrowWithAbility(Ability.Charisma) and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_LegendaryResistance_CrowdControl_DUPE_ENTRY_271
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Legendary Resistance
Description: Use a reaction to increase your crowd control Saving Throw result by 10.
Conditions: not Self(context.Source,context.Observer) and Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and AppliesCrowdControlStatus() and not AnyEntityIsItem()
Icon: Action_TransmuterStone_Resistance*
InterruptContext: OnPostRoll*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_OBSERVER,INTERRUPT_LEGENDARY_RESISTANCE,100,0)*
Cost: LegendaryResistanceCharge:1*
Stack: LegendaryResistance*
InterruptDefaultValue: Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_LegendaryResistance


Interrupt_Lucky_ReplaceAttackersDie_DUPE_ENTRY_50188
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Lucky: Reroll Attacker's Die
Description: Spend a Luck Point to force a creature to reroll its Attack Roll.
Icon: PassiveFeature_Lucky_ReplaceAttackersDie
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and HasInterruptedAttack() and Self(context.Observer,context.Target) and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetReroll(20,true)
Cost: LuckPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Lucky_RollAdditionalDie_DUPE_ENTRY_1857
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Lucky: Reroll with Advantage
Description: Spend a Luck Point to gain Advantage on your Attack Roll or Saving Throw.
Icon: PassiveFeature_Lucky_RollAdditionalDie
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and (HasInterruptedAttack() and Self(context.Observer,context.Source) and IsRerollInterruptInteresting(context.Source)) or (HasInterruptedSavingThrow() and Self(context.Observer,context.Target) and IsRerollInterruptInteresting()) and not AnyEntityIsItem()
Properties: SetReroll(19,false)
Cost: LuckPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Portent_1_DUPE_ENTRY_5355
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].
DescriptionParams: 1
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.
Icon: PassiveFeature_Portent_1
InterruptContext: OnPostRoll
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(1, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(1))) and not AnyEntityIsItem()
Properties: SetRoll(1);RemoveStatus(OBSERVER_OBSERVER,PORTENT_1);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_1:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Portent_2_DUPE_ENTRY_61600
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 2
DescriptionParams: 2
Icon: PassiveFeature_Portent_2
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(2, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(2))) and not AnyEntityIsItem()
Properties: SetRoll(2);RemoveStatus(OBSERVER_OBSERVER,PORTENT_2);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_2:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_3_DUPE_ENTRY_39891
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 3
DescriptionParams: 3
Icon: PassiveFeature_Portent_3
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(3, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(3))) and not AnyEntityIsItem()
Properties: SetRoll(3);RemoveStatus(OBSERVER_OBSERVER,PORTENT_3);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_3:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_4_DUPE_ENTRY_9803
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 4
DescriptionParams: 4
Icon: PassiveFeature_Portent_4
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(4, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(4))) and not AnyEntityIsItem()
Properties: SetRoll(4);RemoveStatus(OBSERVER_OBSERVER,PORTENT_4);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_4:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_5_DUPE_ENTRY_11141
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 5
DescriptionParams: 5
Icon: PassiveFeature_Portent_5
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(5, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(5))) and not AnyEntityIsItem()
Properties: SetRoll(5);RemoveStatus(OBSERVER_OBSERVER,PORTENT_5);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_5:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_6_DUPE_ENTRY_12943
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 6
DescriptionParams: 6
Icon: PassiveFeature_Portent_6
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(6, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(6))) and not AnyEntityIsItem()
Properties: SetRoll(6);RemoveStatus(OBSERVER_OBSERVER,PORTENT_6);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_6:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_7_DUPE_ENTRY_23126
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 7
DescriptionParams: 7
Icon: PassiveFeature_Portent_7
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(7, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(7))) and not AnyEntityIsItem()
Properties: SetRoll(7);RemoveStatus(OBSERVER_OBSERVER,PORTENT_7);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_7:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_8_DUPE_ENTRY_51610
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 8
DescriptionParams: 8
Icon: PassiveFeature_Portent_8
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(8, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(8))) and not AnyEntityIsItem()
Properties: SetRoll(8);RemoveStatus(OBSERVER_OBSERVER,PORTENT_8);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_8:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_9_DUPE_ENTRY_59710
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 9
DescriptionParams: 9
Icon: PassiveFeature_Portent_9
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(9, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(9))) and not AnyEntityIsItem()
Properties: SetRoll(9);RemoveStatus(OBSERVER_OBSERVER,PORTENT_9);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_9:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_10_DUPE_ENTRY_77036
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 10
DescriptionParams: 10
Icon: PassiveFeature_Portent_10
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(10, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(10))) and not AnyEntityIsItem()
Properties: SetRoll(10);RemoveStatus(OBSERVER_OBSERVER,PORTENT_10);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_10:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_11_DUPE_ENTRY_72562
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 11
DescriptionParams: 11
Icon: PassiveFeature_Portent_11
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(11, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(11))) and not AnyEntityIsItem()
Properties: SetRoll(11);RemoveStatus(OBSERVER_OBSERVER,PORTENT_11);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_11:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_12_DUPE_ENTRY_27955
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 12
DescriptionParams: 12
Icon: PassiveFeature_Portent_12
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(12, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(12))) and not AnyEntityIsItem()
Properties: SetRoll(12);RemoveStatus(OBSERVER_OBSERVER,PORTENT_12);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_12:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_13_DUPE_ENTRY_37467
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 13
DescriptionParams: 13
Icon: PassiveFeature_Portent_13
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(13, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(13))) and not AnyEntityIsItem()
Properties: SetRoll(13);RemoveStatus(OBSERVER_OBSERVER,PORTENT_13);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_13:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_14_DUPE_ENTRY_28285
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 14
DescriptionParams: 14
Icon: PassiveFeature_Portent_14
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(14, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(14))) and not AnyEntityIsItem()
Properties: SetRoll(14);RemoveStatus(OBSERVER_OBSERVER,PORTENT_14);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_14:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_15_DUPE_ENTRY_95693
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 15
DescriptionParams: 15
Icon: PassiveFeature_Portent_15
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(15, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(15))) and not AnyEntityIsItem()
Properties: SetRoll(15);RemoveStatus(OBSERVER_OBSERVER,PORTENT_15);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_15:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_16_DUPE_ENTRY_49380
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 16
DescriptionParams: 16
Icon: PassiveFeature_Portent_16
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(16, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(16))) and not AnyEntityIsItem()
Properties: SetRoll(16);RemoveStatus(OBSERVER_OBSERVER,PORTENT_16);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_16:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_17_DUPE_ENTRY_31113
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 17
DescriptionParams: 17
Icon: PassiveFeature_Portent_17
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(17, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(17))) and not AnyEntityIsItem()
Properties: SetRoll(17);RemoveStatus(OBSERVER_OBSERVER,PORTENT_17);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_17:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_18_DUPE_ENTRY_79074
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 18
DescriptionParams: 18
Icon: PassiveFeature_Portent_18
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(18, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(18))) and not AnyEntityIsItem()
Properties: SetRoll(18);RemoveStatus(OBSERVER_OBSERVER,PORTENT_18);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_18:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_19_DUPE_ENTRY_96308
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 19
DescriptionParams: 19
Icon: PassiveFeature_Portent_19
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(19, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(19))) and not AnyEntityIsItem()
Properties: SetRoll(19);RemoveStatus(OBSERVER_OBSERVER,PORTENT_19);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_19:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_Portent_20_DUPE_ENTRY_52575
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Portent Die: 20
DescriptionParams: 20
Icon: PassiveFeature_Portent_20
Conditions: IsAbleToReact(context.Observer) and ((HasInterruptedAttack() and IsPortentInterruptInteresting(20, context.Source)) or (HasInterruptedSavingThrow() and IsPortentInterruptInteresting(20))) and not AnyEntityIsItem()
Properties: SetRoll(20);RemoveStatus(OBSERVER_OBSERVER,PORTENT_20);IF(HasInterruptedAttack()):UseSpell(OBSERVER_SOURCE,Target_Portent_Interrupt,true,true,true);IF(HasInterruptedSavingThrow()):UseSpell(OBSERVER_TARGET,Target_Portent_Interrupt,true,true,true)
Cost: Interrupt_Portent_20:1
Description: Change the die of a nearby Attack Roll or Saving Throw to [1].*
ExtraDescription: Bonuses and penalties will still be added to the number.
You regain your Portent Dice when you take a Long Rest.*
InterruptContext: OnPostRoll*
InterruptContextScope: Nearby*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Portent_1


Interrupt_RingOfEvasion_DUPE_ENTRY_43776
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Ring of Evasion
Description: When you make a Dexterity Saving Throw, you can use your reaction to succeed instead.
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Target,context.Observer) and HasSavingThrowWithAbility(Ability.Dexterity) and not AnyEntityIsItem() and IsSetInterruptInteresting(20)
Properties: SetRoll(20)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Shield_Wizard_DUPE_ENTRY_38291
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Shield
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.
Icon: PassiveFeature_Shield
InterruptContext: OnPostRoll;OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not HasVerbalComponentBlocked(context.Observer) and IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Shield_Sorcerer_DUPE_ENTRY_49622
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_DUPE_ENTRY_69634
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_2_DUPE_ENTRY_38483
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_2_DUPE_ENTRY_39891
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_2_DUPE_ENTRY_32609
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:2
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_3_DUPE_ENTRY_22273
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_3_DUPE_ENTRY_66315
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_3_DUPE_ENTRY_72415
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:3
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_4_DUPE_ENTRY_30038
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_4_DUPE_ENTRY_25522
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_4_DUPE_ENTRY_34344
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:4
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_5_DUPE_ENTRY_84218
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_5_DUPE_ENTRY_95001
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_5_DUPE_ENTRY_68294
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:5
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_Shield_Sorcerer_6_DUPE_ENTRY_19394
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_SORCERER,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Sorcerer **Interrupt_Shield_Wizard


Interrupt_Shield_Warlock_6_DUPE_ENTRY_94217
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WARLOCK,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Warlock **Interrupt_Shield_Wizard


Interrupt_Shield_Wizard_6_DUPE_ENTRY_51324
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;SpellSlotsGroup:1:1:6
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_TAD_LuckOfTheFarRealms_DUPE_ENTRY_8438
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Luck of the Far Realms
Description: When you make a successful Attack Roll against a foe, you can change that hit into a Critical Hit.
Icon: TadpoleSuperPower_LuckOfTheFarRealm
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Source,context.Observer) and HasInterruptedAttack() and LuckOfTheFarRealmCheck() and not AnyEntityIsItem()
Properties: SetRoll(20)
Cost: ReactionActionPoint:1;Interrupt_LuckOfTheFarRealms_Charge:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_LuckOfTheFarRealms_Charge', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_TidesOfChaos_DUPE_ENTRY_74474
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Tides of Chaos
Description: Gain Advantage on your next Attack Roll, Ability Check, or Saving Throw.

Increased chance of Wild Magic surge afterwards.
Icon: Skill_Sorcerer_Passive_TidesOfChaos
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not Dead(context.Observer) and ((Self(context.Source,context.Observer) and HasInterruptedAttack() and IsRerollInterruptInteresting(context.Source)) or (Self(context.Target,context.Observer) and HasInterruptedSavingThrow() and IsRerollInterruptInteresting())) and not AnyEntityIsItem()
Properties: SetAdvantage();ApplyStatus(OBSERVER_OBSERVER,TIDES_OF_CHAOS,100,-1)
Cost: TidesOfChaos:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_UncannyDodge_DUPE_ENTRY_1209
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Uncanny Dodge
Description: On a hit, receive half damage from a foe's attack.
Icon: PassiveFeature_UncannyDodge
InterruptContext: OnPostRoll
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem()
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_WardingFlare_Improved_DUPE_ENTRY_59713
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Improved Warding Flare
Description: Impose Disadvantage on an ally's attacker, possibly causing their attack to miss.
Icon: PassiveFeature_ImprovedFlare
InterruptContextScope: Nearby
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and not Self(context.Target,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsRerollInterruptInteresting(context.Source)
Properties: SetDisadvantage();ApplyStatus(OBSERVER_TARGET,PASSIVE_WARDING_FLARE,100,0);IF(not Self(context.Target,context.Observer)):UseSpell(OBSERVER_TARGET,Target_ImprovedFlare_Interrupt,true,true,true)
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied
ExtraDescription: Has no effect on creatures that can't be Blinded.*
InterruptContext: OnPostRoll*
Container: YesNoDecision*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_WardingFlare


Interrupt_WarGodsBlessing_DUPE_ENTRY_25456
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: War God's Blessing
Description: Grant a nearby ally a +[1] bonus to their Attack Roll.
Icon: PassiveFeature_WarGodsBlessing
InterruptContextScope: Nearby
Conditions: IsAbleToReact(context.Observer) and not Self(context.Source,context.Observer) and Ally(context.Source,context.Observer) and HasInterruptedAttack() and not AnyEntityIsItem() and IsFlatValueInterruptInteresting(10, context.Source)
Properties: AdjustRoll(10);ApplyStatus(OBSERVER_SOURCE,WAR_GODS_BLESSING,100,0);UseSpell(OBSERVER_SOURCE,Target_WarGodsBlessing_Interrupt,true,true,true)
Cost: ChannelDivinity:1;ReactionActionPoint:1
DescriptionParams: 10*
InterruptContext: OnPostRoll*
Container: YesNoDecision*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied*
Stats inherited from: *Interrupt_GuidedStrike


Interrupt_ON_PRE_DAMAGE_DUPE_ENTRY_52045
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_DampenElements_DUPE_ENTRY_71518
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Dampen Elements
Description: When you or an ally gets hit with Acid, Cold, Fire, Lightning, or Thunder damage, you can use your reaction to halve the attack's damage.
Icon: PassiveFeature_DampenElements
InterruptContext: OnPreDamage
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and (Self(context.Target,context.Observer) or Ally(context.Target,context.Observer)) and DampenElementsCheck(context.HitDescription.MainDamageType, context.Target) and not AnyEntityIsItem()
Properties: SetDamageResistance(Acid);SetDamageResistance(Cold);SetDamageResistance(Fire);SetDamageResistance(Lightning);SetDamageResistance(Thunder);ApplyStatus(OBSERVER_TARGET,INTERRUPT_DAMPEN_ELEMENTS,100,0);IF(not Self(context.Target,context.Observer)):UseSpell(OBSERVER_TARGET,Target_DampenElements_Interrupt,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_DeflectMissiles_DUPE_ENTRY_67596
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Deflect Missiles
Description: Reduce the damage from a ranged weapon attack by 1d10 + your Dexterity Modifier + your monk level.

If the damage is reduced to 0, you use a Ki Point to Deflect the Missile.
ExtraDescription: You can only reduce damage from the attack - any additional effects can't be negated.
Icon: PassiveFeature_DeflectMissiles
InterruptContext: OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsRangedWeaponAttack() and not HasStatus('SG_Polymorph_BeastShape') and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_OBSERVER,-(1d10+DexterityModifier+ClassLevel(Monk)));ApplyStatus(OBSERVER_TARGET,INTERRUPT_DEFLECT_MISSILES_HIT,100,1);RestoreResource(DeflectMissiles_Charge,1,0)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Parry_DUPE_ENTRY_19543
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Parry
Description: Parry the next melee attack that hits you to reduce the damage by [1].
DescriptionParams: 1d8+DexterityModifier
Icon: PassiveFeature_Parry
InterruptContext: OnPreDamage
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsMeleeWeaponAttack() and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_OBSERVER,-(LevelMapValue(SuperiorityDie)+DexterityModifier))
Cost: ReactionActionPoint:1;SuperiorityDie:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ProjectedWard_DUPE_ENTRY_19314
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Projected Ward
Description: When a nearby ally takes damage, you can use your Arcane Ward to reduce the damage equal to its charges and then lose 1 charge.
DescriptionParams: RegainHitPoints(2*Level+IntelligenceModifier)
Icon: PassiveFeature_ProjectedWard
InterruptContext: OnPreDamage
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Ally(context.Target,context.Observer) and not Self(context.Target,context.Observer) and HasStatus('ARCANE_WARD',context.Observer) and not AnyEntityIsItem()
Properties: AdjustRoll(OBSERVER_TARGET,-(ARCANE_WARD.Duration));ApplyStatus(INTERRUPT_PROJECTED_WARD,100,0);ApplyStatus(OBSERVER_OBSERVER,ARCANE_WARD,100,ARCANE_WARD.Duration-1);UseSpell(OBSERVER_TARGET,Target_ProjectedWard_Interrupt,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_ON_CAST_HIT_DUPE_ENTRY_85935
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_DeflectMissiles_Return_DUPE_ENTRY_46552
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Deflect Missiles
Description: Catch a projectile from a ranged weapon attack and shoot it back at your attacker.
Icon: PassiveFeature_DeflectMissiles
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and IsAttackType(AttackType.RangedWeaponAttack) and not (IsCriticalMiss() or IsMiss()) and HasActionResource('DeflectMissiles_Charge', 1, 0, false, false, context.Observer) and not AnyEntityIsItem()
Properties: UseSpell(SWAP,Projectile_Deflect_Missiles,true,true,true,c4598bdb-fc07-40dd-a62c-90cc138bd76f);UseActionResource(OBSERVER_OBSERVER,DeflectMissiles_Charge,1,0)
Cost: KiPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_DivineStrike_Cold_DUPE_ENTRY_43034
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Frigid Depths
Description: Deal an additional [1].
DescriptionParams: DealDamage(1d8,Cold)
Icon: Action_DivineStrike_Melee
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,Cold)
Cost: Interrupt_DivineStrike:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged


Interrupt_DivineStrike_Cold_Critical_DUPE_ENTRY_51819
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Frigid Depths
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Description: Deal an additional [1].*
DescriptionParams: DealDamage(1d8,Cold)*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: DealDamage(1d8,Cold)*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Fire_DUPE_ENTRY_16679
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Molten Flame
DescriptionParams: DealDamage(1d8,Fire)
Properties: DealDamage(1d8,Fire)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Fire_Critical_DUPE_ENTRY_6138
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Molten Flame
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Fire)*
Properties: DealDamage(1d8,Fire)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Fire **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Lightning_DUPE_ENTRY_63933
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Scything Bolts
DescriptionParams: DealDamage(1d8,Lightning)
Properties: DealDamage(1d8,Lightning)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Lightning_Critical_DUPE_ENTRY_75102
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Doom Bolts
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Lightning)*
Properties: DealDamage(1d8,Lightning)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Lightning **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Poison_DUPE_ENTRY_54352
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Nightshade Poison
DescriptionParams: DealDamage(1d8,Poison)
Properties: DealDamage(1d8,Poison)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Poison_Critical_DUPE_ENTRY_42039
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Nightshade Poison
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Poison)*
Properties: DealDamage(1d8,Poison)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Poison **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Radiant_DUPE_ENTRY_60676
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Honour Shining Bright
DescriptionParams: DealDamage(1d8,Radiant)
Properties: DealDamage(1d8,Radiant)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Radiant_Critical_DUPE_ENTRY_52780
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Brightsoul Bash
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Radiant)*
Properties: DealDamage(1d8,Radiant)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Radiant **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Thunder_DUPE_ENTRY_13798
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Thunder
DescriptionParams: DealDamage(1d8,Thunder)
Properties: DealDamage(1d8,Thunder)
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_Thunder_Critical_DUPE_ENTRY_51182
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Thunder
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,Thunder)*
Properties: DealDamage(1d8,Thunder)*
Description: Deal an additional [1].*
Icon: Action_DivineStrike_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Thunder **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_MeleeWeapon_DUPE_ENTRY_27257
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Brutish Slam
DescriptionParams: DealDamage(1d8,MainMeleeWeaponDamageType)
Icon: Action_DivineStrike_Melee
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsMeleeAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,MainMeleeWeaponDamageType)
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_MeleeWeapon_Critical_DUPE_ENTRY_87447
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Brutish Slam
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsMeleeAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,MainMeleeWeaponDamageType)*
Icon: Action_DivineStrike_Melee*
Properties: DealDamage(1d8,MainMeleeWeaponDamageType)*
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_MeleeWeapon **Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_RangedWeapon_DUPE_ENTRY_82468
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Death From Afar
DescriptionParams: DealDamage(1d8,MainRangedWeaponDamageType)
Icon: Action_DivineStrike_Ranged
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsRangedAttack() and not IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
Properties: DealDamage(1d8,MainRangedWeaponDamageType)
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_Cold


Interrupt_DivineStrike_RangedWeapon_Critical_DUPE_ENTRY_98900
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Strike: Death From Afar
Conditions: Self(context.Source,context.Observer) and IsWeaponAttack() and IsRangedAttack() and IsCritical() and not IsKillingBlow() and IsHit() and not IsDivineStrike() and Character() and not AnyEntityIsItem()
DescriptionParams: DealDamage(1d8,MainRangedWeaponDamageType)*
Icon: Action_DivineStrike_Ranged*
Properties: DealDamage(1d8,MainRangedWeaponDamageType)*
Description: Deal an additional [1].*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Cost: Interrupt_DivineStrike:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: HasActionResource('Interrupt_DivineStrike', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged*
Stats inherited from: *Interrupt_DivineStrike_RangedWeapon **Interrupt_DivineStrike_Cold


Interrupt_GuardianOfFaith_Retaliate_DUPE_ENTRY_40635
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Divine Retaliation
Description: Strike back at the enemy that attacked you.
Icon: Spell_Evocation_SacredFlame
InterruptContext: OnCastHit
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Ally(context.Observer,context.Target) and Enemy(context.Source,context.Observer) and not DistanceToGreaterThan(context.ObserverPosition, context.SourcePosition, 3) and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseAttack(OBSERVER_SOURCE)
InterruptDefaultValue: Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_HellishRebuke_Myrmidon_DUPE_ENTRY_92861
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not HasStatus('SILENCED',context.Source) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_HellishRebuke_Myrmidon,true,true,true)
Cost: ReactionActionPoint:1
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved
DisplayName: Hellish Rebuke*
Description: React to your next attacker with flames that deal [1].*
DescriptionParams: DealDamage(2d10,Fire)*
Icon: PassiveFeature_HellishRebuke*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Stack: HellishRebuke*
InterruptDefaultValue: Enabled;Ask*
Stats inherited from: *Interrupt_HellishRebuke


Interrupt_MistyEscape_DUPE_ENTRY_1388
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Misty Escape
Description: Upon taking damage, become Invisible. On your next turn, you can cast Misty Step, though this will break your invisibility.
Icon: PassiveFeature_MistyEscape
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(OBSERVER_OBSERVER,Shout_Invisibility_MistyEscape,true,true,true)
Cost: ReactionActionPoint:1;Interrupt_MistyEscape:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: HasActionResource('Interrupt_MistyEscape', 1, 0, false, false, context.Source) and (not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged;OnStatusApplied;OnStatusRemoved


Interrupt_Overwhelm_DUPE_ENTRY_17645
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Tenacity
Description: When you miss an attack, deal [1] anyway.
DescriptionParams: DealDamage(max(1,StrengthModifier), Bludgeoning)
Icon: PassiveAction_Overwhelm
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and (IsCriticalMiss() or IsMiss()) and IsMeleeWeaponAttack() and IsProficientWithEquippedWeapon() and not AnyEntityIsItem()
Properties: DealDamage(max(1,StrengthModifier), Bludgeoning)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_Sentinel_DUPE_ENTRY_25032
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Sentinel
Description: When an ally is attacked by a nearby creature, you may strike the attacker.
Icon: PassiveFeature_Sentinel_Attack
InterruptContext: OnCastHit
InterruptContextScope: Nearby
Container: YesNoDecision
Conditions: not Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Ally(context.Target, context.Observer) and Enemy(context.Source, context.Observer) and not HasPassive('Sentinel_Attack',context.Target) and IsAbleToReact(context.Observer) and IsMeleeAttack() and not DistanceToEntityGreaterThan(2, context.ObserverPosition, context.Source) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseAttack(OBSERVER_SOURCE)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_SneakAttack_DUPE_ENTRY_12940
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Sneak Attack
Description: Deal extra damage to a foe you have Advantage against.
ExtraDescription: You can also Sneak Attack targets Threatened by adjacent allies provided you aren't attacking with Disadvantage.
Icon: Action_SneakAttack_Melee
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Source,context.Observer) and HasDamageEffectFlag(DamageFlags.Hit) and ((WieldingFinesseWeaponInSpecificHand(context.Observer,false) and IsMainHandAttack()) or (WieldingFinesseWeaponInSpecificHand(context.Observer,true) and IsOffHandAttack()) or IsThrowAttackRoll() or (WieldingWeapon('Ammunition', false, true, context.Observer) and IsRangedAttack())) and not IsCritical() and not IsKillingBlow() and (HasDamageEffectFlag(DamageFlags.AttackAdvantage) or HasAllyWithinRange('SG_Incapacitated',1.5)) and not HasDamageEffectFlag(DamageFlags.AttackDisadvantage) and not (SpellId('Projectile_SneakAttack') or SpellId('Target_SneakAttack')) and not AnyEntityIsItem()
Properties: IF(IsMeleeAttack()):DealDamage(LevelMapValue(SneakAttack), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(LevelMapValue(SneakAttack), MainRangedWeaponDamageType);IF(HasPassive('MAG_ForcefulSneakAttack_Passive', context.Source)):DealDamage(1d4, Force)
Cost: SneakAttack_Charge:1
Stack: SneakAttack
Cooldown: OncePerTurn
InterruptDefaultValue: Enabled
EnableCondition: HasActionResource('SneakAttack_Charge',1,0,false,false,context.Source) and (WieldingFinesseWeaponInSpecificHand(context.Source, false) or WieldingFinesseWeaponInSpecificHand(context.Source, true) or WieldingWeapon('Ammunition', false, true, context.Source) or SpellTypeIs(SpellType.Throw)) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext: OnActionResourcesChanged;OnEquip


Interrupt_SneakAttack_Critical_DUPE_ENTRY_75036
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Sneak Attack (Critical Hit)
Conditions: Self(context.Source,context.Observer) and ((WieldingFinesseWeaponInSpecificHand(context.Observer,false) and IsMainHandAttack()) or (WieldingFinesseWeaponInSpecificHand(context.Observer,true) and IsOffHandAttack()) or IsThrowAttackRoll() or (WieldingWeapon('Ammunition', false, true, context.Observer) and IsRangedAttack())) and HasDamageEffectFlag(DamageFlags.Hit) and IsCritical() and not IsKillingBlow() and (HasDamageEffectFlag(DamageFlags.AttackAdvantage) or HasAllyWithinRange('SG_Incapacitated',1.5)) and not HasDamageEffectFlag(DamageFlags.AttackDisadvantage) and not (SpellId('Projectile_SneakAttack') or SpellId('Target_SneakAttack')) and not AnyEntityIsItem()
InterruptDefaultValue: Enabled
Description: Deal extra damage to a foe you have Advantage against.*
Icon: Action_SneakAttack_Melee*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Properties: IF(IsMeleeAttack()):DealDamage(LevelMapValue(SneakAttack), MainMeleeWeaponDamageType);IF(IsRangedAttack()):DealDamage(LevelMapValue(SneakAttack), MainRangedWeaponDamageType);IF(HasPassive('MAG_ForcefulSneakAttack_Passive', context.Source)):DealDamage(1d4, Force)*
Cost: SneakAttack_Charge:1*
Stack: SneakAttack*
Cooldown: OncePerTurn*
EnableCondition: HasActionResource('SneakAttack_Charge',1,0,false,false,context.Source) and (WieldingFinesseWeaponInSpecificHand(context.Source, false) or WieldingFinesseWeaponInSpecificHand(context.Source, true) or WieldingWeapon('Ammunition', false, true, context.Source) or SpellTypeIs(SpellType.Throw)) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))*
EnableContext: OnActionResourcesChanged;OnEquip*
Stats inherited from: *Interrupt_SneakAttack


Interrupt_StormsFury_DUPE_ENTRY_84807
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Storm's Fury
Description: When struck by a melee attack, you may deal thunder damage to the attacker and possibly push them back.
Icon: GenericIcon_DamageType_Thunder
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and HasFunctor(StatsFunctorType.DealDamage) and IsHit() and IsMeleeAttack() and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(SWAP,Target_StormsFury,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WrathOfTheStorm_Lightning_DUPE_ENTRY_71984
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Wrath of the Storm: Lightning
Description: If a nearby enemy attacks you, you can retaliate with a strike of lightning that deals [1].
DescriptionParams: DealDamage(2d8,Lightning)
ExtraDescription: On Save: Target still takes half damage.
Icon: PassiveFeature_WrathOfTheStorm_Lightning
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Enemy(context.Source,context.Observer) and IsAbleToReact(context.Observer) and IsAttack() and IsHit() and not DistanceToGreaterThan(context.SourcePosition, context.TargetPosition, 2) and not AnyEntityIsItem() and HasLastAttackTriggered()
Properties: UseSpell(OBSERVER_SOURCE,Target_WrathOfTheStorm_Lightning,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WrathOfTheStorm_Thunder_DUPE_ENTRY_7745
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Wrath of the Storm: Thunder
Description: If a nearby enemy attacks you, you can retaliate with a burst of thunder that deals [1].
DescriptionParams: DealDamage(2d8,Thunder)
Icon: PassiveFeature_WrathOfTheStorm_Thunder
Properties: UseSpell(OBSERVER_SOURCE,Target_WrathOfTheStorm_Thunder,true,true,true)
ExtraDescription: On Save: Target still takes half damage.*
InterruptContext: OnCastHit*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: Self(context.Target,context.Observer) and not Self(context.Source,context.Observer) and Enemy(context.Source,context.Observer) and IsAbleToReact(context.Observer) and IsAttack() and IsHit() and not DistanceToGreaterThan(context.SourcePosition, context.TargetPosition, 2) and not AnyEntityIsItem() and HasLastAttackTriggered()*
Cost: ReactionActionPoint:1*
InterruptDefaultValue: Ask;Enabled*
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')*
EnableContext: OnStatusApplied;OnStatusRemoved*
Stats inherited from: *Interrupt_WrathOfTheStorm_Lightning


Interrupt_TAD_Charm_DUPE_ENTRY_37588
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Charm
Description: Charm an enemy that attacks you, preventing them from attacking you until their next turn.
Icon: TadpoleSuperPower_Charm
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and IsAttack() and not HasStatus('INVISIBILITY') and not AnyEntityIsItem() and HasLastAttackTriggered() and not IsImmuneToStatus('SG_Charmed',context.Source)
Properties: UseSpell(OBSERVER_SOURCE,Target_TAD_Charm,true,true,true)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_Unstable_Backlash_DUPE_ENTRY_22644
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Unstable Backlash
Description: While Raging, when you take damage or fail a Saving Throw, you trigger another Wild Magic effect. This replaces your current Wild Magic effect.
Icon: PassiveFeature_Generic_Magical
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasStatus('SG_Rage') and IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and Enemy(context.Source,context.Observer) and not AnyEntityIsItem() and not IsKillingBlow() and (TotalDamageDoneGreaterThan(0) or not (HasSavingThrowWithAbility(Ability.None) or HasDamageEffectFlag(DamageFlags.SavingThrow))) and HasLastAttackTriggered()
Properties: RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_TELEPORT);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_WEAPON_INFUSION);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_MAGIC_RETRIBUTION);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_PROTECTIVE_LIGHTS);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_VINE_GROWTH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN_LIGHT_BOLT);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);RemoveStatus(OBSERVER_OBSERVER,WILD_MAGIC_BARBARIAN__EXPLODING_FLUMPH);TriggerRandomCast(1,0,WildMagicBarbarian)
Cost: ReactionActionPoint:1
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied


Interrupt_OTHERS_DUPE_ENTRY_53875
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_PolearmMaster_DUPE_ENTRY_4188
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Polearm Master: Opportunity Attack
Description: Make an Opportunity Attack whenever a creature enters your reach.
ExtraDescription: Prerequisite: Must be wielding a glaive, halberd, quarterstaff, or spear.
Icon: PassiveFeature_PolearmMaster_AttackOfOpportunity
InterruptContext: OnEnterAttackRange
InterruptContextScope: Self
Container: YesNoDecision
Conditions: IsAbleToReact(context.Observer) and (HasWeaponProperty(WeaponProperties.Reach, GetActiveWeapon(context.Source)) or Tagged('WPN_STAVE', GetActiveWeapon(context.Source, true)) or Tagged('WPN_SPEAR', GetActiveWeapon(context.Source, true))) and Enemy() and not WieldingWeapon('Ammunition', false, false, context.Source) and not (not Player(context.Source) and Tagged('AI_IGNORED_TARGET') and not HasStatus('GNOLL_SUDDENRUSH')) and not HasStatus('SHOCKWAVE') and not (HasStatus('MOBILE_NO_AOO', context.Source) and HasStatus('MOBILE_NO_AOO_SOURCE', context.Target)) and not HasStatus('FLAMING_SPHERE_AURA') and not HasStatus('SNEAKING',context.Target) and not HasStatus('SG_Ignore_AOO',context.Target) and not AnyEntityIsItem()
Properties: IF(not HasPassive('Sentinel_ZeroSpeed',context.Source)):UseAttack();IF(HasPassive('Sentinel_ZeroSpeed',context.Source)):UseSpell(Target_Sentinel_AttackOfOpportunity,true,true,true)
Cost: ReactionActionPoint:1
Stack: AttackOfOpportunity
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_WarCaster_DUPE_ENTRY_11694
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: War Caster: Opportunity Spell
Description: Cast Shocking Grasp at a creature moving out of range.
Icon: PassiveFeature_WarCaster_OpportunitySpell
InterruptContext: OnLeaveAttackRange
InterruptContextScope: Self
Container: YesNoDecision
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and Self(context.Observer, context.Source) and not Self(context.Observer, context.Target) and Enemy() and not WieldingWeapon('Ammunition', false, false, context.Source) and not HasStatus('SG_Incapacitated', context.Source) and not HasStatus('SG_Unconscious', context.Source) and not (not Player(context.Source) and Tagged('AI_IGNORED_TARGET') and not HasStatus('GNOLL_SUDDENRUSH')) and not HasStatus('SHOCKWAVE') and not (HasStatus('MOBILE_NO_AOO', context.Source) and HasStatus('MOBILE_NO_AOO_SOURCE', context.Target)) and not HasStatus('FLAMING_SPHERE_AURA') and not HasStatus('SNEAKING',context.Target) and not HasStatus('SG_Ignore_AOO',context.Target) and not AnyEntityIsItem()
Properties: UseSpell(Target_ShockingGrasp,true,true,true)
Cost: ReactionActionPoint:1
Stack: AttackOfOpportunity
InterruptDefaultValue: Ask;Enabled
EnableCondition: not HasAnyStatus({'SG_Polymorph','SG_Blinded'}) or Tagged('MINDFLAYER')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_MONSTER_DUPE_ENTRY_27050
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt


Interrupt_SteelWatcher_Biped_SelfDestruct_Begin_DUPE_ENTRY_66745
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Self-Detonation Protocol
Description: Initiate a countdown sequence that ends with Self-Detonation.
Icon: PassiveFeature_Generic_Explosion
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(30, context.Observer) and not HasStatus('STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN', context.Observer) and not (SpellId('Target_Smite_Banishing') or SpellId('Projectile_Smite_Banishing'))
Properties: UseSpell(OBSERVER_OBSERVER,Shout_SteelWatcher_Biped_SelfDestruct_Begin,true,true,true)
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Blinded')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_SteelWatcher_Biped_SelfDestruct_Begin_BanishingSmite_DUPE_ENTRY_57158
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Self-Detonation Protocol
Description: Initiate a countdown sequence that ends with Self-Detonation.
Icon: PassiveFeature_Generic_Explosion
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(30, context.Observer) and not HasStatus('STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN', context.Observer) and (SpellId('Target_Smite_Banishing') or SpellId('Projectile_Smite_Banishing'))
Properties: ApplyStatus(OBSERVER_OBSERVER,STEELWATCHER_BIPED_SELFDESTRUCT_BEGIN,100,1)
InterruptDefaultValue: Enabled


Interrupt_Berserk_FleshGolem_DUPE_ENTRY_23739
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
DisplayName: Corpulent Rage
Description: As your health diminishes, let out a bone-quaking roar that pushes back anyone near you, and go Berserk.
Icon: Action_Barbarian_Frenzy
InterruptContext: OnCastHit
InterruptContextScope: Self
Container: YesNoDecision
Conditions: HasFunctor(StatsFunctorType.DealDamage) and IsHit() and HasHPPercentageLessThan(40, context.Observer) and not HasStatus('SHA_NECROMANCER_FLESH_BERSERK', context.Observer)
Properties: UseSpell(OBSERVER_OBSERVER,Shout_Berserk_FleshGolem,true,true,true)
InterruptDefaultValue: Enabled
EnableCondition: not HasStatus('SG_Blinded')
EnableContext: OnStatusApplied;OnStatusRemoved


Interrupt_Shield_Mindflayer_DUPE_ENTRY_27939
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;Interupt_Shield_MindFlayer:1
Cooldown: OncePerCombat
EnableCondition: HasActionResource('Interupt_Shield_MindFlayer', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext:
DisplayName: Shield*
Description: When you are about to be hit by an enemy, increase your Armour Class by 5. You take no damage from Magic Missile.*
Icon: PassiveFeature_Shield*
InterruptContext: OnPostRoll;OnPreDamage*
InterruptContextScope: Self*
Container: YesNoDecision*
Conditions: IsAbleToReact(context.Observer) and Self(context.Target,context.Observer) and ((HasInterruptedAttack() and IsFlatValueInterruptInteresting(5, context.Source)) or IsSpellChildOrVariantFromContext('Projectile_MagicMissile')) and not AnyEntityIsItem() and not HasStatus('SHIELD',context.Observer)*
Properties: IF(HasInterruptedAttack()):AdjustRoll(-5);IF(IsSpellChildOrVariantFromContext('Projectile_MagicMissile')):SetRoll(0);ApplyStatus(INTERRUPT_SHIELD_WIZARD,100,1);ApplyStatus(OBSERVER_OBSERVER,SHIELD,100,1)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Shield_Wizard


Interrupt_CounterSpell_MindFlayer_DUPE_ENTRY_12251
origin: Patch1_pak\Public\SharedDev\Stats\Generated\Data\Interrupt.txt
Cost: ReactionActionPoint:1;Interupt_CounterSpell_MindFlayer:1
Cooldown: OncePerCombat
EnableCondition: HasActionResource('Interupt_CounterSpell_MindFlayer', 1, 0, false, false, context.Source) and (not HasStatus('SG_Polymorph') or Tagged('MINDFLAYER'))
EnableContext:
DisplayName: Counterspell*
Description: Make a creature fail when it casts a spell. Spells of 3rd level or lower can always be interrupted. Higher level spells are harder.*
Icon: PassiveFeature_Counterspell*
InterruptContext: OnSpellCast*
InterruptContextScope: Nearby*
Container: YesNoDecision*
Conditions: not HasSpellCastBlocked(context.Observer) and IsAbleToReact(context.Observer) and not Self(context.Source, context.Observer) and Enemy(context.Source, context.Observer) and IsSpell() and not Uninterruptible() and not HasStringInSpellRoll('WeaponAttack') and not AnyEntityIsItem()*
Roll: TryCounterspellHigherLevel(3)*
Success: Counterspell();UseSpell(OBSERVER_SOURCE,Target_Counterspell_Success,true,true,true)*
Failure: UseSpell(OBSERVER_SOURCE,Target_Counterspell_Failure,true,true,true)*
InterruptDefaultValue: Ask;Enabled*
Stats inherited from: *Interrupt_Counterspell