static Camille() { Q = new Spell.Active(SpellSlot.Q, 325, DamageType.Physical); W = new Spell.Skillshot(SpellSlot.W, 800, SkillShotType.Cone, 500, int.MaxValue, 20, DamageType.Physical) { AllowedCollisionCount = int.MaxValue, ConeAngleDegrees = 45, }; E = new Spell.Skillshot(SpellSlot.E, 1400, SkillShotType.Linear, 250, int.MaxValue, (int)player.BoundingRadius + 1, DamageType.Physical) { AllowedCollisionCount = int.MaxValue, }; EToWall = new Spell.SimpleSkillshot(SpellSlot.E, 1400, DamageType.Physical); R = new Spell.Targeted(SpellSlot.R, 475, DamageType.Mixed); DamageIndicator.DamageDelegate = HandleDamageIndicator; Orbwalker.OnPostAttack += delegate(AttackableUnit target, EventArgs args) { if (target == null || !Q.IsReady()) { return; } switch (Orbwalker.ActiveModesFlags) { case Orbwalker.ActiveModes.Combo: { if (MenuValue.Combo.UseQ && MenuValue.Combo.QAfter) { Q.Cast(); Orbwalker.ResetAutoAttack(); } } break; case Orbwalker.ActiveModes.Harass: { if (MenuValue.Harass.UseQ && MenuValue.Harass.QAfter) { Q.Cast(); Orbwalker.ResetAutoAttack(); } } break; case Orbwalker.ActiveModes.JungleClear: { if (MenuValue.JungleClear.UseQ && Q.GetJungleMobs().Any()) { Q.Cast(); Orbwalker.ResetAutoAttack(); } } break; case Orbwalker.ActiveModes.LaneClear: { if (MenuValue.LaneClear.UseQ && Q.GetLaneMinions().Any()) { Q.Cast(); Orbwalker.ResetAutoAttack(); } } break; default: break; } }; Orbwalker.OnPreAttack += delegate(AttackableUnit target, Orbwalker.PreAttackArgs args) { var Target = target as AIHeroClient; if (Target == null) { return; } switch (Orbwalker.ActiveModesFlags) { case Orbwalker.ActiveModes.Combo: { if (MenuValue.Combo.UseW && !MenuValue.Combo.QAfter) { Q.Cast(); } } break; case Orbwalker.ActiveModes.Harass: { if (MenuValue.Harass.UseW && !MenuValue.Harass.QAfter) { Q.Cast(); } } break; default: break; } }; AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe || args.Slot != SpellSlot.Q) { return; } Orbwalker.ResetAutoAttack(); }; }
static Kassadin() { Q = new Spell.Targeted(SpellSlot.Q, 650, DamageType.Magical); W = new Spell.Active(SpellSlot.W, (uint)player.GetAutoAttackRange()); E = new Spell.Skillshot(SpellSlot.E, 700, SkillShotType.Cone, 250, int.MaxValue, 20, DamageType.Magical) { ConeAngleDegrees = 70, AllowedCollisionCount = int.MaxValue, }; R = new Spell.Skillshot(SpellSlot.R, DamageType.Magical); DamageIndicator.DamageDelegate = HandleDamageIndicator; Orbwalker.OnPostAttack += delegate(AttackableUnit target, EventArgs args) { if (target == null) { return; } switch (Orbwalker.ActiveModesFlags) { case Orbwalker.ActiveModes.Combo: { if (MenuValue.Combo.UseW && MenuValue.Combo.WAfter) { W.Cast(); } } break; case Orbwalker.ActiveModes.Harass: { if (MenuValue.Harass.UseW && MenuValue.Harass.WAfter) { W.Cast(); } } break; case Orbwalker.ActiveModes.JungleClear: { if (MenuValue.JungleClear.UseW && W.GetJungleMobs().Any()) { W.Cast(); } } break; case Orbwalker.ActiveModes.LaneClear: { if (MenuValue.LaneClear.UseW && W.GetLaneMinions().Any()) { W.Cast(); } } break; default: break; } }; Orbwalker.OnPreAttack += delegate(AttackableUnit target, Orbwalker.PreAttackArgs args) { var Target = target as AIHeroClient; if (Target == null) { return; } switch (Orbwalker.ActiveModesFlags) { case Orbwalker.ActiveModes.Combo: { if (MenuValue.Combo.UseW && !MenuValue.Combo.WAfter) { W.Cast(); } } break; case Orbwalker.ActiveModes.Harass: { if (MenuValue.Harass.UseW && !MenuValue.Harass.WAfter) { W.Cast(); } } break; default: break; } }; AIHeroClient.OnProcessSpellCast += delegate(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!sender.IsMe || args.Slot != SpellSlot.W) { return; } Orbwalker.ResetAutoAttack(); }; }