예제 #1
0
    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;
            }
        }
    }
예제 #2
0
        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;
            }
        }