Exemplo n.º 1
0
        public override void OnKill(Character target, SkillId skillId)
        {
            if (target != null && skillId == SkillId.SneezeShot)
            {
                SneezeShot ss = Owner.Skills.GetSkill(skillId) as SneezeShot;

                GameObject explosion = ss.CreateParticleEffect("Explosion", false, target.GetData().GetBody().transform.position);
                explosion.GetComponent <ParticleSystem>().Play();
                Object.Destroy(explosion, 2f);

                EffectAuraDamage ef = new EffectAuraDamage((int)AddValueByLevel(DAMAGE, AMOUNT_LEVEL_ADD), 0, AddValueByLevel(RANGE, RANGE_LEVEL_ADD));
                ef.Source     = Owner;
                ef.attackTeam = target.Team;

                ef.ApplyEffect(target, null);
            }
        }
Exemplo n.º 2
0
        public override void OnFinish()
        {
            PauseParticleEffect(particleSystem);
            DeleteParticleEffect(particleSystem, 5f);

            if (penetrateThroughTargets)
            {
                Owner.GetData().GetBody().GetComponent <Collider2D>().isTrigger = false;
            }

            if (areaDamage)
            {
                SkillEffect auraDmg = new EffectAuraDamage(hitEnemyDamage, 0, areaDamageRadius);
                ApplyEffect(Owner, Owner.GetData().GetBody(), auraDmg);

                GameObject explosion = CreateParticleEffect("Explosion", false, Owner.GetData().GetBody().transform.position);
                explosion.GetComponent <ParticleSystem>().Play();
                Object.Destroy(explosion, 2f);
            }

            if (autoattacksOnJump > 0)
            {
                for (int i = 0; i < autoattacksOnJump; i++)
                {
                    ActiveSkill sk = Owner.GetMeleeAttackSkill();

                    if (sk != null)
                    {
                        sk.TriggerSkill(Owner.GetData().GetForwardVector(i * 45));
                    }

                    /*GameObject activeProjectile = CreateSkillProjectile("projectile_00", true);
                     * if (activeProjectile != null)
                     * {
                     *      activeProjectile.name = "DodgeProjectile";
                     *      Rigidbody2D rb = activeProjectile.GetComponent<Rigidbody2D>();
                     *      rb.velocity = (GetOwnerData().GetForwardVector(i * 90) * 30);
                     *
                     *      Object.Destroy(activeProjectile, 5f);
                     * }*/
                }
            }

            if (jumpBack)
            {
                float range = (Owner.GetData().GetBody().transform.position - jumpFrom).magnitude;

                Owner.GetData().GetBody().GetComponent <Collider2D>().isTrigger = true;
                GetOwnerData().cancelForcedVelocityOnCollision = false;

                if (GetOwnerData().GetOwner().AI is PlayerAI)
                {
                    GetOwnerData().JumpForward(-mouseDirection, range, jumpSpeed);
                }
                else
                {
                    GetOwnerData().JumpForward(-GetOwnerData().GetForwardVector(), range, jumpSpeed);
                }

                particleSystem = CreateParticleEffect("JumpEffect", true);
                StartParticleEffect(particleSystem);

                Owner.StartTask(StopJumpBack());
            }
        }