Skip to main content

Thorn Shield

Blocks incoming attacks.

Perfectly timed blocks perform a parry and negate all damage.

Reflects incoming ranged attacks back at enemies.

Implementation​

Thorn Shield is a toggle Skill. While it is toggled on, WhileToggleOn applies four Effects: ActivateAim, MoveBlock (the player cannot move while blocking), Shield (raises the Shielded flag), and Parry (raises the Parry flag for a short 0.4 second window at the start of the block).

ThornShield — Skill Model Normal
Skill Model Normal: ThornShield
Id › Id:61
Name:Thorn Shield
State › Name:Thorn Shield
State › Use Type:Toggleable
State › Queue Window:0.4
State › Interruptible Transition:true
State › Caster:Skill_ThornShield_Casting
State › Targeter:Skill_ThornShield_Targeting

Blocking and parry​

While Shielded, the ThornShield_ConditionalAttackDamageModifier Stat is injected into incoming attack damage to reduce it. It is signature-separated, so each attacker is tracked independently.

BlockDamageModifier — Stat (ConditionalModifier Float)
Stat (ConditionalModifier Float): BlockDamageModifier
Stat Key:ThornShield / ConditionalModifier_SigSep / ConditionalDamageModifier / BlockDamageModifier
Default:0.25
Max:0.25
Single Stat Checker › Stat › Actor:Target
Single Stat Checker › Condition:Is1(Int)
Contribution Type:Multiplier

During the Parry window, the ThornShield_AttackDamageImmune Stat grants full immunity, negating all damage and emitting an Immune result. The parry also drives skill-specific CritRate and CritMultiplier conditional modifiers so the counter hit lands critically, and applies ParryDamage back to the attacker.

Parry — Stat (Clamped Int)
Stat (Clamped Int): Parry
Stat Key:ThornShield / Int_SigSep / AttackDamageImmune / Parry
Relation: CriticalRate_Applying:Parry_CritRate
Relation: CriticalMultiplier_Applying:Parry_CritMultiplier
Allow Exceed:true
Max:1

Countering attacks​

BlockMeleeCounterEffects is an Intervener Effect list: it reacts to received melee attacks while blocking, before they land, again signature-separated per attacker (relation IntervenerEffect_ReceivingAS on the attack's attribute stat).

For ranged attacks, the BlockRangedCounterEffects Intervener runs a set of Effects on the blocked projectile: ReverseDirection flips its travel vector, ChangeTeam switches its team so it now damages enemies, and ResetHitCount / ResetTravelDistance restore its range — sending the shot back the way it came.

BlockRangedCounterEffects — Stat (IntervenerEffect)
Stat (IntervenerEffect): BlockRangedCounterEffects
Stat Key:ThornShield / IntervenerEffect_SigSep / IntervenerReceivingRangedAttacks / BlockRangedCounterEffects
Redirection Target:Effector
Redirected Effect Source:Target
State Check:true
Single Stat Checker › Stat › Actor:Target
Single Stat Checker › Condition:Is1(Int)
Targeting Environment Id:Default
Default: BlockRangedCounterEffects
Vector3 Stat Effect (BS): ReverseDirection
Target Stat:Movement / Vector3 / Direction
Processor:Set_Vector3
Float Stat Effect (BS): ResetTravelDistance
Target Stat:Default / FloatClamped / TravelDistance
Processor:Set_Float
Int Stat Effect (BS): ResetHitCount
Target Stat:Default / IntClamped / HitCount
Value:-1
Processor:Set_Int
Int Stat Effect (BS): ChangeTeam
Target Stat:Default / Int / TeamNo
Value:-1
Processor:Set_Int

When the Skill is toggled off, OnToggleOff syncs the movement and look destination and removes the casting block. A SkillExtension_BodyPartExtender script binds the block to a body-part Actor so it originates from the correct bone.