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); } }
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()); } }