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
GlacierPulse_AttackDamageDefault / FloatClamped / Health-2Standard_FloatFreezeMob / IntClamped / Frozen1TemporaryRemoveCastingModifiers(AttackInteruption)Default / IntClamped / SkillCastingOnProgress_ModifierRemoverThe 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)
FrozenToControlBlockerInjectorLinkerEverythingTemporaryManaged By CodeControlBlocker2FrozenToControlBlockerThe GlacierPulse attack also cancels the enemy's ongoing attack by removing its CastingOnProgress Stat modifiers.
RemoveCastingModifiers(AttackInteruption) — Modifier Remover Effect (BS)
RemoveCastingModifiers(AttackInteruption)ModifierRemoverEverythingCastingOnProgressAppliedOn 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
GlacierPulse_CastingCastingOnProgressCastingOnProgresstrueTriggerWeaponActiveWeaponId1To prevent GlacierPulse from dealing damage when the target is already frozen, we use a ConditionalModifier.
GlacierPulse_Attack — Stat (Clamped Float)
GlacierPulse_AttackGlacierPulse / FloatClamped / AttackGlacierPulse_ConditionalAttackModifierThe 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)
GlacierPulse_ConditionalAttackModifierGlacierPulse / ConditionalModifier / ConditionalAttackModifier1TargetIs1(Int)MultipliertrueImmuneFor the slow effect after the freeze expires, we use a StateBasedEffect to trigger the slow effects.
ThawSlowTrigger — Stat (StateBasedEffect)
ThawSlowTriggerMob / StateBasedEffect / ThawSlowTriggerIs0(Int)PersistentThawSlowTriggerThawSlowMovement / FloatClamped / SpeedScaler-0.75Standard_FloatTemporaryThe slow effect targets the SpeedScaler Stat, which is used by both movement speed and animation speed.
ThawSlow — Float Stat Effect (BS)
ThawSlowStandard_FloatTemporary4SpeedScalerPercentage Of Value-0.75