public override void onAttack() { for (int i = 0; i < 3; i++) { LifeDrainEffect fx = (Instantiate(drainEffect.gameObject) as GameObject).GetComponent <LifeDrainEffect>(); fx.target = character.transform.Find("LifeDrainTarget").gameObject; fx.source = character.currentTarget.transform.Find("LifeDrainSource" + i.ToString()).gameObject; } }
public override void TStart() { base.TStart(); character = gameObject.GetComponent <SoulAvenger.Character>(); if (BasicEnemy.sEnemies.Count <= 0) { (character as Hero).usingSkill = false; character.changeAnimation("idle"); Destroy(this); return; } character.changeAnimation("drainLife"); int total = 0; foreach (BasicEnemy enemy in BasicEnemy.sEnemies) { if (!enemy.canBeAttacked || !enemy.canBeAttackedByMagic) { continue; } counter++; LifeDrainEffect fx = (Instantiate(Resources.Load("Prefabs/Effects/LifeDrain")) as GameObject).GetComponent <LifeDrainEffect>(); fx.onDie = onEffectComplete; if (character.transform.Find("LifeDrainTarget") != null) { fx.target = character.transform.Find("LifeDrainTarget").gameObject; } else { fx.target = character.gameObject; } if (enemy.transform.Find("LifeDrainSource0") != null) { fx.source = enemy.transform.Find("LifeDrainSource0").gameObject; } else { fx.source = enemy.gameObject; } int damage = enemy.prefab.GetComponent <BasicEnemy>().stats.health / 4; if (enemy.stats.health < damage) { damage = enemy.stats.health; } Vector3 pos = enemy.transform.position; if (enemy.transform.FindChild("TextOrigin") != null) { pos = enemy.transform.FindChild("TextOrigin").position; } Game.game.emmitText(pos, damage.ToString(), Color.red); enemy.takeLife(damage); total += damage; } character.addToHealth(total); Game.game.emmitText(character.transform.position, "+" + total.ToString()); }