示例#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 SE_Slow() : base()
            {
                name           = "SE_Slow";
                m_name         = "Slow";
                m_startMessage = "Slowed";
                m_time         = 0;
                m_ttl          = baseDuration;
                m_icon         = (from Sprite s in Resources.FindObjectsOfTypeAll <Sprite>() where s.name == "jackoturnip" select s).FirstOrDefault();

                var vfxPrefab = DebuffVfx.ConstructStatusVfx();

                m_startEffects.m_effectPrefabs = new EffectList.EffectData[] { new EffectList.EffectData {
                                                                                   m_prefab = vfxPrefab, m_enabled = true, m_attach = true, m_scale = true
                                                                               } };
            }
示例#3
0
            public SE_Fear() : base()
            {
                name           = "SE_Fear";
                m_name         = "Fear";
                m_tooltip      = "Fleeing";
                m_startMessage = "Fear overpowers you";
                m_time         = 0;
                m_ttl          = baseDuration;
                m_icon         = (from Sprite s in Resources.FindObjectsOfTypeAll <Sprite>() where s.name == "CorpseRun" select s).FirstOrDefault();

                var vfxPrefab = DebuffVfx.ConstructStatusVfx();

                m_startEffects.m_effectPrefabs = new EffectList.EffectData[] { new EffectList.EffectData {
                                                                                   m_prefab = vfxPrefab, m_enabled = true, m_attach = true, m_scale = true
                                                                               } };
            }
示例#4
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);
        }
示例#5
0
            public SE_Curse() : base()
            {
                name                = "SE_Curse";
                m_name              = "Cursed";
                m_startMessage      = "You have been cursed";
                m_time              = 0;
                m_repeatInterval    = 60;
                m_ttl               = baseDuration;
                m_icon              = (from Sprite s in Resources.FindObjectsOfTypeAll <Sprite>() where s.name == "jackoturnip" select s).FirstOrDefault();
                m_modifyAttackSkill = Skills.SkillType.All;
                m_damageModifier    = baseDamageMod;
                m_startEffects      = new EffectList();

                var vfxPrefab = DebuffVfx.ConstructStatusVfx();

                m_startEffects.m_effectPrefabs = new EffectList.EffectData[] { new EffectList.EffectData {
                                                                                   m_prefab = vfxPrefab, m_enabled = true, m_attach = true, m_scale = true
                                                                               } };
            }
示例#6
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);
        }