Advertisement
Guest User

Untitled

a guest
Jul 29th, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.11 KB | None | 0 0
  1. #region
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Drawing;
  6. using System.Linq;
  7. using LeagueSharp;
  8. using LeagueSharp.Common;
  9.  
  10. #endregion
  11.  
  12. namespace Miss_Fortune
  13. {
  14. internal class Program
  15. {
  16. public const string ChampionName = "Miss Fortune";
  17. public static Orbwalking.Orbwalker Orbwalker;
  18. public static List<Spell> SpellList = new List<Spell>();
  19. public static Menu Config;
  20. private static readonly Obj_AI_Hero Player = ObjectManager.Player;
  21. private static SpellSlot Flash;
  22. public static Spell Q, W, E, R;
  23. private static bool _rBlock;
  24. public static float RCastTime { get; set; }
  25.  
  26. private static void Main(string[] args)
  27. {
  28. CustomEvents.Game.OnGameLoad += OnLoad;
  29. }
  30.  
  31. private static void OnLoad(EventArgs args)
  32. {
  33. if (Player.ChampionName != "MissFortune") return;
  34.  
  35. Q = new Spell(SpellSlot.Q, 650);
  36. Q.SetTargetted(0.29f, 1400f);
  37.  
  38. W = new Spell(SpellSlot.W);
  39.  
  40. E = new Spell(SpellSlot.E, 800);
  41. E.SetSkillshot(0.5f, 100f, float.MaxValue, false, SkillshotType.SkillshotCircle);
  42.  
  43. R = new Spell(SpellSlot.R, 1200);
  44.  
  45. SpellList.Add(Q);
  46. SpellList.Add(W);
  47. SpellList.Add(E);
  48. SpellList.Add(R);
  49.  
  50. Config = new Menu("Washington Redskins", "Washington Redskins", true);
  51.  
  52. var targetSelectorMenu = new Menu("Target Selector", "Target Selector");
  53. TargetSelector.AddToMenu(targetSelectorMenu);
  54. Config.AddSubMenu(targetSelectorMenu);
  55.  
  56. Config.AddSubMenu(new Menu("Orbwalker Settings", "Orbwalker Settings"));
  57. Orbwalker = new Orbwalking.Orbwalker(Config.SubMenu("Orbwalker Settings"));
  58.  
  59. Config.AddSubMenu(new Menu("Combo Settings", "Combo Settings"));
  60. Config.SubMenu("Combo Settings").AddItem(new MenuItem("qCombo", "Use Q").SetValue(true));
  61. Config.SubMenu("Combo Settings").AddItem(new MenuItem("wCombo", "Use W").SetValue(true));
  62. Config.SubMenu("Combo Settings").AddItem(new MenuItem("eCombo", "Use E").SetValue(true));
  63. Config.SubMenu("Combo Settings").AddItem(new MenuItem("rCombo", "Use R").SetValue(true));
  64. Config.SubMenu("Combo Settings")
  65. .AddItem(new MenuItem("rComboxEnemy", "R on x Enemy").SetValue(new Slider(3, 1, 5)));
  66.  
  67. Config.AddSubMenu(new Menu("Laneclear Settings", "Laneclear Settings"));
  68. Config.SubMenu("Laneclear Settings").AddItem(new MenuItem("qLaneclear", "Use Q").SetValue(true));
  69. Config.SubMenu("Laneclear Settings").AddItem(new MenuItem("eLaneclear", "Use E").SetValue(true));
  70. Config.SubMenu("Laneclear Settings")
  71. .AddItem(new MenuItem("siegeminionstoQ", "Use Q for Siege Minions").SetValue(true));
  72. Config.SubMenu("Laneclear Settings")
  73. .AddItem(new MenuItem("clearMana", "LaneClear Mana Percent").SetValue(new Slider(30, 1)));
  74.  
  75. Config.AddSubMenu(new Menu("Harass Settings", "Harass Settings"));
  76. Config.SubMenu("Harass Settings").AddItem(new MenuItem("qHarass", "Use Q").SetValue(true));
  77. Config.SubMenu("Harass Settings")
  78. .AddItem(new MenuItem("harassMana", "Harass Mana Percent").SetValue(new Slider(30, 1)));
  79.  
  80. Config.AddSubMenu(new Menu("Draw Settings", "Draw Settings"));
  81. Config.SubMenu("Draw Settings")
  82. .AddItem(new MenuItem("qDraw", "Q Range").SetValue(new Circle(true, Color.SpringGreen)));
  83. Config.SubMenu("Draw Settings")
  84. .AddItem(new MenuItem("eDraw", "E Range").SetValue(new Circle(true, Color.Crimson)));
  85. Config.SubMenu("Draw Settings")
  86. .AddItem(new MenuItem("rDraw", "R Range").SetValue(new Circle(true, Color.Gold)));
  87. Config.SubMenu("Draw Settings")
  88. .AddItem(new MenuItem("aaRangeDraw", "AA Range").SetValue(new Circle(true, Color.White)));
  89.  
  90. Config.AddToMainMenu();
  91.  
  92. Game.OnUpdate += Game_OnGameUpdate;
  93. Drawing.OnDraw += Drawing_OnDraw;
  94. Orbwalking.AfterAttack += Orbwalking_AfterAttack;
  95. Obj_AI_Base.OnIssueOrder += Obj_AI_Hero_OnIssueOrder;
  96. Orbwalking.BeforeAttack += BeforeAttack;
  97. Obj_AI_Base.OnProcessSpellCast += OnSpell;
  98. Obj_AI_Base.OnPlayAnimation += OnAnimation;
  99. }
  100.  
  101. private static void OnAnimation(Obj_AI_Base sender, GameObjectPlayAnimationEventArgs args)
  102. {
  103. if (!sender.IsMe) return;
  104. if (args.Animation == "Spell4")
  105. {
  106. _rBlock = true;
  107. }
  108. else if (args.Animation == "Run" || args.Animation == "Idle1" || args.Animation == "Attack2" ||
  109. args.Animation == "Attack1")
  110. {
  111. _rBlock = false;
  112. }
  113. }
  114.  
  115. private static void OnSpell(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
  116. {
  117. if (!sender.IsMe) return;
  118. if (args.SData.Name == "MissFortuneBulletTime")
  119. {
  120. _rBlock = true;
  121. }
  122. }
  123.  
  124. private static void Game_OnGameUpdate(EventArgs args)
  125. {
  126. if (_rBlock = true)
  127. {
  128. Orbwalker.SetAttack(false);
  129. Orbwalker.SetMovement(false);
  130. }
  131. else
  132. {
  133. Orbwalker.SetAttack(true);
  134. Orbwalker.SetMovement(true);
  135. }
  136.  
  137.  
  138. switch (Orbwalker.ActiveMode)
  139. {
  140. case Orbwalking.OrbwalkingMode.Combo:
  141. Combo();
  142. break;
  143.  
  144. case Orbwalking.OrbwalkingMode.LaneClear:
  145. LaneClear();
  146. break;
  147.  
  148. case Orbwalking.OrbwalkingMode.LastHit:
  149. break;
  150.  
  151. case Orbwalking.OrbwalkingMode.Mixed:
  152. Harass();
  153. break;
  154.  
  155. case Orbwalking.OrbwalkingMode.None:
  156. break;
  157. }
  158. }
  159.  
  160. private static void Orbwalking_AfterAttack(AttackableUnit unit, AttackableUnit target)
  161. {
  162. if (!unit.IsMe || Player.IsChannelingImportantSpell() || _rBlock || Orbwalker.ActiveMode != Orbwalking.OrbwalkingMode.Combo)
  163. return;
  164. if (Q.CanCast(target as Obj_AI_Hero))
  165. {
  166. Q.Cast(target as Obj_AI_Hero);
  167. Utility.DelayAction.Add(150, Orbwalking.ResetAutoAttackTimer);
  168. }
  169. }
  170.  
  171. private static void BeforeAttack(Orbwalking.BeforeAttackEventArgs args)
  172. {
  173. if (args.Unit.IsMe)
  174. {
  175. args.Process = !_rBlock;
  176. }
  177. }
  178.  
  179. private static void Obj_AI_Hero_OnIssueOrder(Obj_AI_Base sender, GameObjectIssueOrderEventArgs args)
  180. {
  181. if (sender.IsMe)
  182. {
  183. args.Process = !_rBlock;
  184. }
  185. }
  186.  
  187. private static void Combo()
  188. {
  189. var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Magical);
  190.  
  191. if (target == null) return;
  192.  
  193. if (W.IsReady() && Config.Item("wCombo").GetValue<bool>() && target.IsValidTarget(500))
  194. {
  195. W.Cast();
  196. }
  197.  
  198. if (E.CanCast(target) && Config.Item("eCombo").GetValue<bool>() && !Orbwalker.InAutoAttackRange(target))
  199. {
  200. E.Cast(target);
  201. }
  202.  
  203. if (R.CanCast(target) && Config.Item("rCombo").GetValue<bool>() && !Q.IsReady() && !W.IsReady() && !E.IsReady())
  204. {
  205. var slidercount = Config.Item("rComboxEnemy").GetValue<Slider>().Value;
  206.  
  207. R.CastIfWillHit(target, slidercount);
  208.  
  209. if (R.IsKillable(target) || (target.MaxHealth / target.Health) < 0.2)
  210. R.Cast(target.Position);
  211. }
  212. }
  213.  
  214. private static void Harass()
  215. {
  216. if (ObjectManager.Player.ManaPercent < Config.Item("harassMana").GetValue<Slider>().Value) return;
  217.  
  218. var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
  219.  
  220. if (Q.CanCast(target) && Config.Item("qHarass").GetValue<bool>())
  221. {
  222. Q.Cast(target);
  223. }
  224. }
  225.  
  226. private static void LaneClear()
  227. {
  228. if (ObjectManager.Player.ManaPercent < Config.Item("clearMana").GetValue<Slider>().Value) return;
  229. var allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range);
  230. var qminion = allMinions.FirstOrDefault(y => Q.IsKillable(y));
  231.  
  232. //siegeminionstoQ
  233. if (Q.CanCast(qminion) && Config.Item("qLaneclear").GetValue<bool>())
  234. {
  235. Q.Cast(qminion);
  236. }
  237. if (E.IsReady() && Config.Item("eLaneclear").GetValue<bool>())
  238. {
  239. var efarm = Q.GetCircularFarmLocation(allMinions, 200);
  240. if (efarm.MinionsHit >= 3)
  241. {
  242. E.Cast(efarm.Position);
  243. }
  244. }
  245. }
  246.  
  247. private static void Drawing_OnDraw(EventArgs args)
  248. {
  249. var menuItem1 = Config.Item("qDraw").GetValue<Circle>();
  250. var menuItem2 = Config.Item("eDraw").GetValue<Circle>();
  251. var menuItem3 = Config.Item("rDraw").GetValue<Circle>();
  252.  
  253. if (menuItem1.Active && Q.IsReady()) Render.Circle.DrawCircle(Player.Position, Q.Range, Color.SpringGreen);
  254. if (menuItem2.Active && E.IsReady()) Render.Circle.DrawCircle(Player.Position, E.Range, Color.Crimson);
  255.  
  256. if (menuItem3.Active && R.IsReady()) Render.Circle.DrawCircle(Player.Position, R.Range, Color.Gold);
  257. }
  258.  
  259. public struct Spells
  260. {
  261. public string ChampionName;
  262. public SpellSlot slot;
  263. public string SpellName;
  264. }
  265. }
  266. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement