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
ThornShield61Thorn ShieldThorn ShieldToggleable0.4trueSkill_ThornShield_CastingSkill_ThornShield_TargetingBlocking 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)
BlockDamageModifierThornShield / ConditionalModifier_SigSep / ConditionalDamageModifier / BlockDamageModifier0.250.25TargetIs1(Int)MultiplierDuring 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)
ParryThornShield / Int_SigSep / AttackDamageImmune / ParryParry_CritRateParry_CritMultipliertrue1Countering 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)
BlockRangedCounterEffectsThornShield / IntervenerEffect_SigSep / IntervenerReceivingRangedAttacks / BlockRangedCounterEffectsEffectorTargettrueTargetIs1(Int)DefaultBlockRangedCounterEffectsReverseDirectionMovement / Vector3 / DirectionSet_Vector3ResetTravelDistanceDefault / FloatClamped / TravelDistanceSet_FloatResetHitCountDefault / IntClamped / HitCount-1Set_IntChangeTeamDefault / Int / TeamNo-1Set_IntWhen 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.