public void OnAbnormalAttack(PEAbnormalAttack attack, Vector3 effectPos) { bool typeMatch = false; switch (effCamera.type) { case 0: typeMatch = attack.type == PEAbnormalAttackType.BlurredVision; break; case 1: typeMatch = attack.type == PEAbnormalAttackType.Dazzling; break; case 2: typeMatch = attack.type == PEAbnormalAttackType.Flashlight; break; } if (typeMatch) { this.effectPos = effectPos; effectStrength = attack.strength; effectTime = attack.duration; switch (effCamera.type) { case 1: case 2: if (attack.radius > PETools.PEMath.Epsilon) { effectStrength *= 0.5f + 0.5f * (entity.position - effectPos).magnitude / attack.radius; } break; } } }
public void ApplyAbnormalAttack(PEAbnormalAttack attack, Vector3 effectPos) { if (null != evtAbnormalAttack) { evtAbnormalAttack(attack, effectPos); } switch (attack.type) { case PEAbnormalAttackType.Dazzling: StartAbnormalCondition(PEAbnormalType.Dazzling); break; case PEAbnormalAttackType.Flashlight: StartAbnormalCondition(PEAbnormalType.Flashlight); break; case PEAbnormalAttackType.Tinnitus: StartAbnormalCondition(PEAbnormalType.Tinnitus); break; case PEAbnormalAttackType.Deafness: StartAbnormalCondition(PEAbnormalType.Deafness); break; case PEAbnormalAttackType.BlurredVision: StartAbnormalCondition(PEAbnormalType.BlurredVision); break; } }