示例#1
0
        public override void DoMagicAttack(Attack baseAttack)
        {
            var gameObject = DebuffVfx.ConstructAoeVfx();
            var aoe        = gameObject.AddComponent <SunderAoe>();

            var statusEffect = ScriptableObject.CreateInstance <SE_Sunder>();

            statusEffect.m_ttl = baseDuration * _Effectiveness;
            switch (_Quality)
            {
            case RuneQuality.Common:
                statusEffect.targetDamageModifier = DamageModifier.Normal;
                break;

            case RuneQuality.Ancient:
                statusEffect.targetDamageModifier = DamageModifier.Weak;
                break;

            case RuneQuality.Dark:
                statusEffect.targetDamageModifier = DamageModifier.VeryWeak;
                statusEffect.modifyElemental      = true;
                break;
            }
            aoe.m_statusEffect = statusEffect.Serialize();
            aoe.m_hitOwner     = false;

            var go = GameObject.Instantiate(gameObject, targetLocation, Quaternion.identity);

            go.GetComponent <Aoe>().Setup(baseAttack.GetCharacter(), Vector3.zero, 0, null, null);
        }
示例#2
0
        public override void DoMagicAttack(Attack baseAttack)
        {
            var gameObject = DebuffVfx.ConstructAoeVfx();

            var statusEffect = ScriptableObject.CreateInstance <SE_Slow>();

            statusEffect.m_ttl    = baseDuration * _Effectiveness * (_Quality == RuneQuality.Ancient ? 3 : 1);
            statusEffect.speedMod = (_Quality == RuneQuality.Dark ? darkSpeedMod : baseSpeedMod) / _Effectiveness;

            var aoe = gameObject.AddComponent <SlowAoe>();

            aoe.m_statusEffect = statusEffect.Serialize();

            var go = GameObject.Instantiate(gameObject, targetLocation, Quaternion.identity);

            go.GetComponent <Aoe>().Setup(baseAttack.GetCharacter(), Vector3.zero, 0, null, null);
        }
示例#3
0
        public override void DoMagicAttack(Attack baseAttack)
        {
            var vfxPrefab  = DebuffVfx.ConstructAoeVfx();
            var gameObject = GameObject.Instantiate(vfxPrefab);
            var aoe        = gameObject.AddComponent <Aoe>();

            var curseEffect = ScriptableObject.CreateInstance <SE_Curse>();

            curseEffect.m_ttl            = baseDuration * _Effectiveness * (_Quality == RuneQuality.Ancient ? 2 : 1);
            curseEffect.m_damageModifier = baseDamageMod / _Effectiveness / (_Quality == RuneQuality.Dark ? 2 : 1);

            aoe.m_statusEffect = curseEffect.Serialize();
            aoe.m_ttl          = 2;
            aoe.m_radius       = 3;
            aoe.m_hitOwner     = false;

            var go = GameObject.Instantiate(gameObject, targetLocation, Quaternion.identity);

            go.GetComponent <Aoe>().Setup(baseAttack.GetCharacter(), Vector3.zero, 0, null, null);
        }