public override float CallAndWait(ProjectileController projControl) { Debug.Log("castSpell " + spell + " " + projControl); Debug.Log(projControl + " controler"); spell.Cast(projControl.transform, false, new Vector3(Random.Range(_minOff.x, _maxOff.x), Random.Range(_minOff.y, _maxOff.y), 0)); return(0); }
public override void Rebuff() { if (!Player.IsMainhandEnchanted()) { UseMoreUsefulEnchanceSpell(); return; } if (ShouldRebuffLightingShield()) { SpellBook.Cast(SpellNames.LightningShield); } }
private bool UseMoreUsefulEnchanceSpell() { var spell = EnchanmentSpellsPriority .FirstOrDefault(spellName => SpellBook.GetSpellRank(spellName) > 0); if (string.IsNullOrEmpty(spell)) { return(false); } SpellBook.Cast(spell); return(true); }
public void shoot(SpellBook spell) { //ScreenShake.instance.shake (.01f * spells[currentSpell].cost); ScreenShake.instance.shake(.2f); if (spell.chargesCurrent == spell.nextChargesTillReload + 1) { lastShot.Play(); } else { shootSource.pitch = Random.Range(.992f, 1.08f); shootSource.Play(); } spell.Cast(transform, true); }
public void shoot() { if (Time.time - lastShootTime < coolDown) { return; } lastShootTime = Time.time; if (ShotFired != null) { ShotFired(); } //ScreenShake.instance.shake (.001f * current_spell.mana); audioSource.Play(); current_spell.Cast(transform, parentsRotation); }
public override void Pull(WoWUnit target) { if (!target.CanBeKilled() || Player.IsCasting()) { return; } if (Player.IsInCombat && SpellBook.IsSpellReady(SpellNames.EarthShock) && target.InRange(20)) { SpellBook.Cast(SpellNames.EarthShock); return; } if (!Player.IsInCombat && Player.ManaPercent > 60 && SpellBook.IsSpellReady(SpellNames.LightningBolt) && target.InRange(28)) { SpellBook.Cast(SpellNames.LightningBolt); return; } _combatPosition = Enums.CombatPosition.Before; SpellBook.Attack(); }
public override void Fight(IEnumerable <WoWUnit> possibleTargets) { if (possibleTargets == null) { return; } var target = possibleTargets.FirstOrDefault(); if (!target.CanBeKilled() || Player.IsCasting()) { return; } if (!target.Equals(Target)) { Player.SetTarget(target); } //if (target.InRange(15)) //{ // SuppressBotMovement = true; //} if (Player.HealthPercent <= 10) { var potion = Bag .GetPotionsSortedByPriority() .Where(item => item.Info.RequiredLevel < Player.Level) .FirstOrDefault(); if (potion?.CanUse() == true) { potion.Use(); return; } } if (Player.HealthPercent < 50 && SpellBook.IsSpellReady(SpellNames.HealingWave)) { SpellBook.Cast(SpellNames.HealingWave); return; } if (World.GetAttackers().Count() >= 1) { if (HasTotem(ItemNames.Totems.EarthTotem) && Player.CanCastSpell(SpellNames.StoneclawTotem)) { SpellBook.Cast(SpellNames.StoneclawTotem); return; } if (HasTotem(ItemNames.Totems.EarthTotem) && IsTotemSpawned(SpellNames.StoneskinTotem) && Player.CanCastSpell(SpellNames.StoneskinTotem)) { SpellBook.Cast(SpellNames.StoneskinTotem); return; } if (HasTotem(ItemNames.Totems.WaterTotem) && IsTotemSpawned(SpellNames.HealingStreamTotem) && Player.CanCastSpell(SpellNames.HealingStreamTotem)) { SpellBook.Cast(SpellNames.HealingStreamTotem); return; } } if (target.CanBeKilled() && target.DistanceToPlayer > 20 && target.DistanceToPlayer < 30 && Player.ManaPercent > 50 && SpellBook.IsSpellReady(SpellNames.LightningBolt)) { SpellBook.Cast(SpellNames.LightningBolt); return; } // if target cast something we prefer to interrupt it if (target.CanBeKilled() && target.IsCasting() && Player.CanCastSpell(SpellNames.EarthShock)) { SpellBook.Cast(SpellNames.EarthShock); return; } if (Player.CanCastSpell(SpellNames.Stormstrike)) { SpellBook.Cast(SpellNames.Stormstrike); return; } if (target.CanBeKilled() && target.InRange(20) && Player.ManaPercent > 40) { if (!target.GotDebuff(SpellNames.FlameShock) && Player.CanCastSpell(SpellNames.FlameShock)) { SpellBook.Cast(SpellNames.FlameShock); return; } if (Player.CanCastSpell(SpellNames.FrostShock)) { SpellBook.Cast(SpellNames.FrostShock); return; } // or earth if (Player.CanCastSpell(SpellNames.EarthShock)) { SpellBook.Cast(SpellNames.EarthShock); return; } } if (HasTotem(ItemNames.Totems.FireTotem) && Player.CanCastSpell(SpellNames.SearingTotem) && IsTotemSpawned(SpellNames.SearingTotem)) { SpellBook.Cast(SpellNames.SearingTotem); return; } _combatPosition = Enums.CombatPosition.Before; SpellBook.Attack(); }