public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { if (HasBuff(owner, "YasuoE")) { spell.SpellAnimation("SPELL3b", owner); AddParticleTarget(owner, "Yasuo_Base_EQ3_cas.troy", owner); AddParticleTarget(owner, "Yasuo_Base_EQ_SwordGlow.troy", owner, bone: "C_BUFFBONE_GLB_Weapon_1"); foreach (var affectEnemys in GetUnitsInRange(owner, 270f, true)) { if (affectEnemys is IAttackableUnit && affectEnemys.Team != owner.Team) { affectEnemys.TakeDamage(owner, spell.Level * 20f + owner.Stats.AttackDamage.Total, DamageType.DAMAGE_TYPE_PHYSICAL, DamageSource.DAMAGE_SOURCE_ATTACK, false); AddParticleTarget(owner, "Yasuo_Base_Q_WindStrike.troy", affectEnemys); AddParticleTarget(owner, "Yasuo_Base_Q_windstrike_02.troy", affectEnemys); AddParticleTarget(owner, "Yasuo_Base_Q_hit_tar.troy", affectEnemys); DashToLocation((ObjAiBase)affectEnemys, affectEnemys.X + 10f, affectEnemys.Y + 10f, 13f, true, "RUN", 16.5f, travelTime: 1.15f); } } } else { spell.AddProjectile("YasuoQ3Mis", owner.X, owner.Y, trueCoords.X, trueCoords.Y); spell.SpellAnimation("SPELL1C", owner); (owner as IChampion).SetSpell("YasuoQW", 0, true); AddParticleTarget(owner, "Yasuo_Base_Q3_Hand.troy", owner); AddParticleTarget(owner, "Yasuo_Base_Q3_cast_sound.troy", owner); } if (HasBuff(owner, "YasuoQ02")) { RemoveBuff(owner, "YasuoQ02"); } }
public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - castcoords); var range = to * 1500f; var trueCoords = castcoords + range; spell.AddProjectile("JavelinToss", castcoords.X, castcoords.Y, trueCoords.X, trueCoords.Y, true); }
public void OnFinishCasting(IChampion owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * 925; var trueCoords = current + range; spell.AddProjectile("RocketGrabMissile", trueCoords.X, trueCoords.Y); }
public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * 900; var trueCoords = current + range; spell.AddProjectile("LucianWMissile", owner.X, owner.Y, trueCoords.X, trueCoords.Y); }
public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * 1150; var trueCoords = current + range; spell.AddProjectile("CaitlynPiltoverPeacemaker", owner.X, owner.Y, trueCoords.X, trueCoords.Y, true); }
public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(target.X, target.Y) - current); var range = to * 1150; var trueCoords = current + range; spell.AddProjectile("AkaliMota", owner.X, owner.Y, trueCoords.X, trueCoords.Y); }
public void OnFinishCasting(IChampion owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * 20000; var trueCoords = current + range; spell.AddProjectile("EzrealTrueshotBarrage", trueCoords.X, trueCoords.Y, true); }
public void OnFinishCasting(IObjAiBase owner, ISpell spell, IAttackableUnit target) { adder = false; casting = true; _owner = owner as IChampion; var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * spell.SpellData.CastRangeDisplayOverride[0]; trueCoords = current + range; CreateTimer(0.03f, () => { owner.IsCastingSpell = true; }); if (HasBuff(owner, "YasuoE")) { CurrentCastTime = MaxCastTimeQE; spell.SpellAnimation("SPELL1_Dash", owner); AddParticleTarget(owner, "Yasuo_Base_EQ3_cas.troy", owner); AddParticleTarget(owner, "Yasuo_Base_EQ_SwordGlow.troy", owner, bone: "C_BUFFBONE_GLB_Weapon_1"); foreach (var affectEnemys in GetUnitsInRange(owner, 270f, true)) { if (affectEnemys is IAttackableUnit && affectEnemys.Team != owner.Team) { affectEnemys.TakeDamage(owner, spell.Level * 20f + owner.Stats.AttackDamage.Total, DamageType.DAMAGE_TYPE_PHYSICAL, DamageSource.DAMAGE_SOURCE_ATTACK, false); AddParticleTarget(owner, "Yasuo_Base_Q_WindStrike.troy", affectEnemys); AddParticleTarget(owner, "Yasuo_Base_Q_windstrike_02.troy", affectEnemys); AddParticleTarget(owner, "Yasuo_Base_Q_hit_tar.troy", affectEnemys); //DashToLocation((ObjAiBase)affectEnemys, affectEnemys.X + 10f, affectEnemys.Y + 10f, 13f, true, "RUN", 16.5f, travelTime: 1.15f); } } } else { (owner as IChampion).StopChampionMovement(); FaceDirection(owner, to, true, 0f); CurrentCastTime = MaxCastTime; spell.AddProjectile("YasuoQ3Mis", owner.X, owner.Y, trueCoords.X, trueCoords.Y); spell.SpellAnimation("SPELL1C", owner); AddParticleTarget(owner, "Yasuo_Base_Q3_Hand.troy", owner); AddParticleTarget(owner, "Yasuo_Base_Q3_cast_sound.troy", owner); } if (HasBuff(owner, "YasuoQ02")) { adder = true; } }
public void OnFinishCasting(IChampion owner, ISpell spell, IAttackableUnit target) { // Calculate net coords var current = new Vector2(owner.X, owner.Y); var to = Vector2.Normalize(new Vector2(spell.X, spell.Y) - current); var range = to * 750; var trueCoords = current + range; // Calculate dash coords/vector var dash = Vector2.Negate(to) * 500; var dashCoords = current + dash; DashToLocation(owner, dashCoords.X, dashCoords.Y, 1000, true, "Spell3b"); spell.AddProjectile("CaitlynEntrapmentMissile", trueCoords.X, trueCoords.Y); }
public void OnFinishCasting(IChampion owner, ISpell spell, IAttackableUnit target) { var current = new Vector2(owner.X, owner.Y); var to = new Vector2(spell.X, spell.Y) - current; Vector2 trueCoords; if (to.Length() > 1651) { to = Vector2.Normalize(to); var range = to * 1651; trueCoords = current + range; } else { trueCoords = new Vector2(spell.X, spell.Y); } spell.AddProjectile("OlafAxeThrowDamage", trueCoords.X, trueCoords.Y); }
public void OnFinishCasting(IChampion owner, ISpell spell, IAttackableUnit target) { bool game = owner.RefGame.IsRunning; int poof = rand.Next(1, 2); var health = 150; var fearduration = 0.5f + (0.25 * (spell.Level - 1)); var apbonus = owner.Stats.AbilityPower.Total * 0.2f; var damage = 35 + ((15 * (spell.Level - 1)) + apbonus); var attspeed = 1 / 1.8f; // 1.8 attacks a second = .55... seconds per attack var castrange = spell.SpellData.CastRange[0]; var triggrange = 300; var sightrange = 600; var armor = 50; var magresist = 100; var spellPos = new Vector2(spell.X, spell.Y); var ownerPos = new Vector2(owner.X, owner.Y); if (owner.WithinRange(ownerPos, spellPos, castrange)) { IMinion Jack = new Minion(owner.RefGame, owner, spell.X, spell.Y, "ShacoBox", "ShacoBox", sightrange, 0); owner.RefGame.ObjectManager.AddObject(Jack); Jack.SetVisibleByTeam(owner.Team, true); if (poof == 1) { AddParticle(owner, "JackintheboxPoof.troy", spell.X, spell.Y); } else if (poof == 2) { AddParticle(owner, "JackintheboxPoof2.troy", spell.X, spell.Y); } if (Jack.IsVisibleByTeam(owner.Team)) { try { CreateTimer(attspeed, () => { if (!Jack.IsDead) { var units = GetUnitsInRange(Jack, sightrange, true); foreach (var value in units) { if (owner.Team != value.Team && value is AttackableUnit) { Jack.SetTargetUnit(value); Jack.AutoAttackTarget = value; Jack.AutoAttackProjectileSpeed = 1450; Jack.AutoAttackHit(value); spell.AddProjectile("ShacoBoxBasicAttack", value.X, value.Y); value.TakeDamage(owner, damage, DamageType.DAMAGE_TYPE_MAGICAL, DamageSource.DAMAGE_SOURCE_ATTACK, false); } } } }); CreateTimer(5, () => { if (!Jack.IsDead) { Jack.Die(Jack); } LogInfo("Jack dead."); }); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } }