Skip to main content

Glacier Pulse

Freezes enemies and deals a small amount of damage.

Already frozen enemies cannot be damaged by the freezing hit again.

When the freeze expires, enemies are slowed, reducing both their movement speed and attack speed.

Implementation​

This is the GlacierPulse attack Effect Pack.

GlacierPulse_Attack — Effect Pack
Effect Pack: GlacierPulse_Attack
Float Stat Effect (MAS): Damage
Target Stat:Default / FloatClamped / Health
Value:-2
Processor:Standard_Float
Int Stat Effect (BS): Freeze
Target Stat:Mob / IntClamped / Frozen
Value:1
Apply Type:Temporary
Modifier Remover Effect (BS): RemoveCastingModifiers(AttackInteruption)
Target Stat:Default / IntClamped / SkillCastingOnProgress_
Processor:ModifierRemover

The freeze attack targets the enemy's Frozen Stat.

The Frozen Stat also injects its value into ControlBlocker, which prevents the Actor from moving or attacking while frozen.

FrozenToControlBlockerInjector — Linker Effect (BS)
Linker Effect (BS): FrozenToControlBlockerInjector
Processor Id:Linker
Attributes:Everything
Apply Type:Temporary
Modifier Type:Managed By Code
Target Stat:ControlBlocker
Injection Order:2
Injector:FrozenToControlBlocker

The GlacierPulse attack also cancels the enemy's ongoing attack by removing its CastingOnProgress Stat modifiers.

RemoveCastingModifiers(AttackInteruption) — Modifier Remover Effect (BS)
Modifier Remover Effect (BS): RemoveCastingModifiers(AttackInteruption)
Processor Id:ModifierRemover
Attributes:Everything
Target Stat:CastingOnProgress
Remove Scope:Applied

On the skill side, the skill casting state is tracked by the CastingOnProgress Stat. When its modifiers are removed externally, the Skill system can be configured to cancel the ongoing skill cast.

GlacierPulse_Casting — Skill Casting Unity Mecanim Multiple Weapons
Skill Casting Unity Mecanim Multiple Weapons: GlacierPulse_Casting
Casting On Progress Stat Key:CastingOnProgress
Casting On Progress Effect:CastingOnProgress
Casting State Stat Controls The Casting State:true
Animation Key:TriggerWeapon
Weapon Id Key:ActiveWeaponId
Weapon No:1

To prevent GlacierPulse from dealing damage when the target is already frozen, we use a ConditionalModifier.

GlacierPulse_Attack — Stat (Clamped Float)
Stat (Clamped Float): GlacierPulse_Attack
Stat Key:GlacierPulse / FloatClamped / Attack
Relation: ConditionalModifier_ApplyingAS:GlacierPulse_ConditionalAttackModifier

The Conditional Modifier essentially multiplies the attack value by 0 and adds an Immune result attribute when the target is already frozen.

GlacierPulse_ConditionalAttackModifier — Stat (ConditionalModifier Float)
Stat (ConditionalModifier Float): GlacierPulse_ConditionalAttackModifier
Stat Key:GlacierPulse / ConditionalModifier / ConditionalAttackModifier
Max:1
Single Stat Checker › Stat › Actor:Target
Single Stat Checker › Condition:Is1(Int)
Contribution Type:Multiplier
Add Result Attribute If Pass:true
Adding Attribute:Immune

For the slow effect after the freeze expires, we use a StateBasedEffect to trigger the slow effects.

ThawSlowTrigger — Stat (StateBasedEffect)
Stat (StateBasedEffect): ThawSlowTrigger
Stat Key:Mob / StateBasedEffect / ThawSlowTrigger
Single Stat Checker › Condition:Is0(Int)
Effect Apply Type:Persistent
Default: ThawSlowTrigger
Float Stat Effect (BS): ThawSlow
Target Stat:Movement / FloatClamped / SpeedScaler
Value:-0.75
Processor:Standard_Float
Apply Type:Temporary

The slow effect targets the SpeedScaler Stat, which is used by both movement speed and animation speed.

ThawSlow — Float Stat Effect (BS)
Float Stat Effect (BS): ThawSlow
Processor Id:Standard_Float
Apply Type:Temporary
Duration_Float:4
Target Stat:SpeedScaler
Usage Type:Percentage Of Value
Value:-0.75