protected override void BasicCast() { hero.GainEnergy(energyGained); Enemy target = gameController.stage.getActiveEnemies()[0]; CombatUtils.DealDamage(caster, target, baseDamage); }
private void stealLife(float damage) { Enemy target = gameController.stage.getActiveEnemies()[0]; float damageDealt = CombatUtils.DealDamage(hero, target, damage); if (target.health <= 0) { SetCooldown(0); } IEnumerator coroutine = HealAfterTime(delay, damageDealt, caster); gameController.StartCoroutine(coroutine); }
public void ApplyEffect(Point target, Stat casterStats) { switch (AreaOfEffect) { case SpellAreaEffect.Target: Entity poorGuy = GameLoop.World.CurrentMap.GetEntityAt <Entity>(target); if (poorGuy == null) { return; } CombatUtils.DealDamage(Damage, poorGuy, SpellDamageType); if (poorGuy is Item) { // Custom logic here } if (poorGuy is Actor) { // Custom logic here } break; case SpellAreaEffect.Ball: break; case SpellAreaEffect.Shape: break; case SpellAreaEffect.Beam: break; case SpellAreaEffect.Level: break; case SpellAreaEffect.World: throw new NotImplementedException(); default: break; } }
IEnumerator DamageAfterTime() { int startNum = numEncounter; float finalDamage = caster.GetDamage(baseDamage); float time = 0; KeyCode bind = KeyCode.A; //Time before pressing the button again changes the effect while (time < 1) { time += Time.deltaTime; yield return(null); } foreach (SpellUI binding in gameController.spellUIs) { if (binding.spell == this) { bind = binding.GetKey(); } } while (time < 2) { time += Time.deltaTime; if (Input.GetKeyDown(bind)) { finalDamage = 10; } yield return(null); } if (startNum == gameController.stage.numEncounter) { CombatUtils.DealDamage(caster, GetTargets(), finalDamage); finalDamage = baseDamage; } }