Legion Spear
Deals a critical hit when a single attack hits multiple enemies.
The critical damage multiplier increases based on the number of enemies hit.
Implementation
The Legion Spear skill object contains two Effectors.
The LegionSpear skill prefab has two children: Damager deals the damage, Toucher counts the foes it touches.
The Toucher is initially active. Its EnterExit Effector increases the source Actor's TouchCount for each target inside the area.
Toucher › Effector_EnterExit — Prefab component
ToucherToucher (Trigger Detector 3D)EnemyUnlimitedSourceEverythingIncreaseTouchCountThe Damage Effector is activated after a 0.15 second delay. It uses an OnCollide Effector to apply damage to the TriggerActors.
Damager › Effector_OnCollide — Prefab component
DamagerEnemyUnlimitedSourcePassivatetrueLegionSpearTo modify the CritRate and CritMultiplier values based on the number of touched targets, we use ConditionalModifiers with the CritProcessor.
MASContribution_CriticalHit_Float — MASContribution Critical Hit Float
MASContribution_CriticalHit_FloatModibifiable|Critable|AttributeStatsProcessableCriticalRate_ReceivingCriticalRate_ApplyingCriticalMultiplier_ReceivingCriticalMultiplier_ApplyingCriticaltruetrueASContribution_ConditionalModifier(Float-Generic)The CritRate Conditional Modifier checks whether the TouchCount is greater than 1. If the condition is met, it adds 1 to the CritRate as a flat contribution.
LegionSpear_CritRate — Stat (Clamped Float)
LegionSpear_CritRateLegionSpear / FloatClamped / CritRateTouchingTargetBasedCritRateModifierTouchingTargetBasedCritRateModifier — Stat (ConditionalModifier Float)
TouchingTargetBasedCritRateModifierLegionSpear / ConditionalModifier / CritRateModifier11GTE2(Int)For the CritMultiplier, we use a StatScaler to scale the CritMultiplierModifier based on the number of touched targets. It adds 0.25 to the CritMultiplier for each target.
LegionSpear_CritMultiplier — Stat (Clamped Float)
LegionSpear_CritMultiplierLegionSpear / FloatClamped / CritMultiplierTouchingTargetBasedCritMultiplierModifier15TouchingTargetBasedCritMultiplierModifier — Stat (ConditionalModifier Float)
TouchingTargetBasedCritMultiplierModifierLegionSpear / ConditionalModifier / CritMultiplierModifier0.250.25GTE2(Int)trueStatToMultiplier_TouchingTargetCount