private static void UseItems(Obj_AI_Base target) { var PlayerServerPosition = Player.ServerPosition.To2D(); var targetServerPosition = target.ServerPosition.To2D(); if (HDR.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= HDR.Range) { HDR.Cast(); } if (TIA.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= TIA.Range) { TIA.Cast(); } if (BKR.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= BKR.Range) { BKR.Cast(target); } if (YOU.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= YOU.Range) { YOU.Cast(target); } if (BWC.IsReady() && Vector2.Distance(PlayerServerPosition, targetServerPosition) <= BWC.Range) { BWC.Cast(target); } }
private static void JungleClear() { var pos = new List <Vector2>(); List <Obj_AI_Base> mobs = MinionManager.GetMinions( Player.ServerPosition, Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.Health); foreach (Obj_AI_Base minion in mobs) { if (minion != null) { pos.Add(minion.Position.To2D()); } // Orbwalker.SetAttacks(!(Q.IsReady() || W.IsReady() || E.IsReady()) || TIA.IsReady() || HDR.IsReady()); // Normal Farms if (Q.IsReady() && minion.IsValidTarget() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= Q.Range && Config.Item("UseQFarm").GetValue <bool>()) { Orbwalker.SetAttack(false); Q.Cast(minion); Orbwalker.SetAttack(true); } if (W.IsReady() && minion.IsValidTarget() && Wnorm && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= W.Range && Config.Item("UseWFarm").GetValue <bool>() && (pos.Any())) { MinionManager.FarmLocation pred = MinionManager.GetBestLineFarmLocation(pos, 70, 1025); W.Cast(pred.Position); } if (E.IsReady() && minion.IsValidTarget() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= E.Range && Config.Item("UseEFarm").GetValue <bool>() && (pos.Any())) { MinionManager.FarmLocation pred = MinionManager.GetBestCircularFarmLocation(pos, 300, 600); E.Cast(pred.Position); } //Evolved if (W.IsReady() && minion.IsValidTarget() && Wevolved && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= WE.Range && Config.Item("UseWFarm").GetValue <bool>() && (pos.Any())) { MinionManager.FarmLocation pred = MinionManager.GetBestLineFarmLocation(pos, 70, 1025); W.Cast(pred.Position); } if (Config.Item("UseItems").GetValue <bool>()) { if (HDR.IsReady() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= HDR.Range) { HDR.Cast(); // Items.UseItem(3077, ObjectManager.Player); } if (TIA.IsReady() && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= TIA.Range) { TIA.Cast(); } } } }
public SystemBus() { // create the bus devices cartridge = new Cartridge(); pia = new PIA(); ram = new RAM(); cpu = new CPU(this); tia = new TIA(cpu); // create the chain of command for Read and Write DeviceInterface = new BusDeviceInterface(cartridge, CARTRIDGE_SELECT_MASK, CARTRIDGE_CHIP_SELECT); BusDeviceInterface PIAInterface = new BusDeviceInterface(pia, PIA_SELECT_MASK, PIA_CHIP_SELECT); BusDeviceInterface RAMInterface = new BusDeviceInterface(ram, RAM_SELECT_MASK, RAM_CHIP_SELECT); BusDeviceInterface TIAInterface = new BusDeviceInterface(tia, TIA_SELECT_MASK, TIA_CHIP_SELECT); DeviceInterface.SetNext(PIAInterface); PIAInterface.SetNext(RAMInterface); RAMInterface.SetNext(TIAInterface); }
public Machine2600(Cart cart, ILogger logger, int slines, int startl, int fHZ, int sRate, int[] p) : base(logger, slines, startl, fHZ, sRate, p, 160) { Mem = new AddressSpace(this, 13, 6); // 2600: 13bit, 64byte pages CPU = new M6502(this, 1); TIA = new TIA(this); for (ushort i = 0; i < 0x1000; i += 0x100) { Mem.Map(i, 0x0080, TIA); } PIA = new PIA(this); for (ushort i = 0x0080; i < 0x1000; i += 0x100) { Mem.Map(i, 0x0080, PIA); } Cart = cart; Mem.Map(0x1000, 0x1000, Cart); }
public Machine2600(DeserializationContext input, int[] palette) : base(input, palette) { input.CheckVersion(1); Mem = input.ReadAddressSpace(this, 13, 6); // 2600: 13bit, 64byte pages CPU = input.ReadM6502(this, 1); TIA = input.ReadTIA(this); for (ushort i = 0; i < 0x1000; i += 0x100) { Mem.Map(i, 0x0080, TIA); } PIA = input.ReadPIA(this); for (ushort i = 0x0080; i < 0x1000; i += 0x100) { Mem.Map(i, 0x0080, PIA); } Cart = input.ReadCart(this); Mem.Map(0x1000, 0x1000, Cart); }
private static void KillSteal() { Obj_AI_Hero target = HeroList .Where(x => x.IsValidTarget() && x.Distance(Player.Position) < 1000f && !x.IsZombie) .MinOrDefault(x => x.Health); var usePacket = Config.Item("usePackets").GetValue <bool>(); if (target != null) { if (Config.Item("UseIgnite").GetValue <bool>() && IgniteSlot != SpellSlot.Unknown && Player.Spellbook.CanUseSpell(IgniteSlot) == SpellState.Ready) { double igniteDmg = Player.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite); if (igniteDmg > target.Health) { Player.Spellbook.CastSpell(IgniteSlot, target); return; } } if (Config.Item("autoescape").GetValue <bool>() && !ishealthy()) { var ally = HeroList.Where(h => h.HealthPercent > 50 && h.CountEnemiesInRange(400) == 0 && !PointUnderEnemyTurret(h.ServerPosition)).FirstOrDefault(); if (ally != null && ally.IsValid) { E.Cast(ally.ServerPosition); return; } var objAiturret = EnemyTurretPositions.Where(x => Vector3.Distance(Player.ServerPosition, x) <= 900f); if (objAiturret.Any() || Player.CountEnemiesInRange(500) >= 1) { var bestposition = Player.ServerPosition.Extend(NexusPosition, E.Range); E.Cast(bestposition, usePacket); return; } } if (Config.Item("UseQKs").GetValue <bool>() && Q.IsReady() && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= Q.Range) { double QDmg = GetQDamage(target); if (!Jumping && target.Health <= QDmg) { Q.Cast(target, usePacket); return; } } if (Config.Item("UseEKs").GetValue <bool>() && E.IsReady() && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= E.Range && Vector3.Distance(Player.ServerPosition, target.ServerPosition) > Q.Range) { double EDmg = Player.GetSpellDamage(target, SpellSlot.E); if (!Jumping && target.Health < EDmg) { Utility.DelayAction.Add( Game.Ping + Config.Item("EDelay").GetValue <Slider>().Value, delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead) { E.Cast(pred.CastPosition, usePacket); return; } }); } } if (W.IsReady() && Wnorm && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range && Config.Item("UseWKs").GetValue <bool>()) { double WDmg = Player.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { var pred = W.GetPrediction(target); if (pred.Hitchance >= HitChance.Medium) { W.Cast(pred.CastPosition); return; } } } if (W.IsReady() && Wevolved && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range && Config.Item("UseWKs").GetValue <bool>()) { double WDmg = Player.GetSpellDamage(target, SpellSlot.W); PredictionOutput pred = W.GetPrediction(target); if (target.Health <= WDmg && pred.Hitchance > HitChance.Medium) { CastWE(target, pred.UnitPosition.To2D()); return; } if (pred.Hitchance >= HitChance.Collision) { List <Obj_AI_Base> PCollision = pred.CollisionObjects; var x = PCollision.Where(PredCollisionChar => PredCollisionChar.Distance(target) <= 30) .FirstOrDefault(); if (x != null) { W.Cast(x.Position, Config.Item("usePackets").GetValue <bool>()); return; } } } // Mixed's EQ KS if (Q.IsReady() && E.IsReady() && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= E.Range + Q.Range && Config.Item("UseEQKs").GetValue <bool>()) { double QDmg = GetQDamage(target); double EDmg = Player.GetSpellDamage(target, SpellSlot.E); if ((target.Health <= QDmg + EDmg)) { Utility.DelayAction.Add(Config.Item("EDelay").GetValue <Slider>().Value, delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValidTarget() && !target.IsZombie) { E.Cast(pred.CastPosition); return; } }); } } // MIXED EW KS if (W.IsReady() && E.IsReady() && Wnorm && Vector3.Distance(Player.ServerPosition, target.ServerPosition) <= W.Range + E.Range && Config.Item("UseEWKs").GetValue <bool>()) { double WDmg = Player.GetSpellDamage(target, SpellSlot.W); if (target.Health <= WDmg) { Utility.DelayAction.Add(Config.Item("EDelay").GetValue <Slider>().Value, delegate { PredictionOutput pred = E.GetPrediction(target); if (target.IsValid && !target.IsDead) { E.Cast(pred.CastPosition); return; } }); } } if (TIA.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), target.ServerPosition.To2D()) <= TIA.Range && Config.Item("UseTiaKs").GetValue <bool>()) { double tiamatdmg = Player.GetItemDamage(target, Damage.DamageItems.Tiamat); if (target.Health <= tiamatdmg) { TIA.Cast(); return; } } if (HDR.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), target.ServerPosition.To2D()) <= HDR.Range && Config.Item("UseTiaKs").GetValue <bool>()) { double hydradmg = Player.GetItemDamage(target, Damage.DamageItems.Hydra); if (target.Health <= hydradmg) { HDR.Cast(); return; } } } }
private static void OnWaveClear() { List <Obj_AI_Base> allMinions = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range); if (Config.Item("UseQFarm").GetValue <bool>() && Q.IsReady()) { foreach (Obj_AI_Base minion in allMinions.Where( minion => minion.IsValidTarget() && HealthPrediction.GetHealthPrediction( minion, (int)(Vector3.Distance(Player.ServerPosition, minion.ServerPosition) * 1000 / 1400)) < 0.75 * Player.GetSpellDamage(minion, SpellSlot.Q))) { if (Vector3.Distance(minion.ServerPosition, ObjectManager.Player.ServerPosition) > Orbwalking.GetRealAutoAttackRange(ObjectManager.Player) && Vector3.Distance(Player.ServerPosition, minion.ServerPosition) <= Q.Range) { Orbwalker.SetAttack(false); Q.CastOnUnit(minion, false); Orbwalker.SetAttack(true); return; } } } if (Config.Item("UseWFarm").GetValue <bool>() && W.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Player.Position, W.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), W.Width, W.Range); if (Wnorm && !Wevolved) { if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range) { W.Cast(farmLocation.Position); } } if (Wevolved && !Wnorm) { if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= WE.Range) { W.Cast(farmLocation.Position); } } } if (Config.Item("UseEFarm").GetValue <bool>() && E.IsReady()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Player.Position, E.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), E.Width, E.Range); if (Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= W.Range) { E.Cast(farmLocation.Position); } } if (Config.Item("UseItemsFarm").GetValue <bool>()) { MinionManager.FarmLocation farmLocation = MinionManager.GetBestCircularFarmLocation( MinionManager.GetMinions(Player.Position, HDR.Range) .Select(minion => minion.ServerPosition.To2D()) .ToList(), HDR.Range, HDR.Range); if (HDR.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= HDR.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3074, ObjectManager.Player); } if (TIA.IsReady() && Vector2.Distance(Player.ServerPosition.To2D(), farmLocation.Position) <= TIA.Range && farmLocation.MinionsHit >= 2) { Items.UseItem(3077, ObjectManager.Player); } } }
private static bool tstCx(int i, TIA.CxFlags cxf1, TIA.CxFlags cxf2) { int f1 = (int) cxf1; int f2 = (int) cxf2; return ((i & (int)f1) != 0) && ((i & (int)f2) != 0); }
public TiaDebugger(Compound gui, TIA t) : base(gui, new Rectangle(32, 32, 488, 300), new DisplayCaption("TIA Registers"), new List <Atom>()) { tia = t; ColorBK = new Surface(new Size(16, 16)); ColorPF = new Surface(new Size(16, 16)); ColorP0 = new Surface(new Size(16, 16)); ColorP1 = new Surface(new Size(16, 16)); Add(PosP0t = new Lable(gui, new Rectangle(64, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(PosP1t = new Lable(gui, new Rectangle(64, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(PosBLt = new Lable(gui, new Rectangle(64, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(PosM0t = new Lable(gui, new Rectangle(64, 200, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(PosM1t = new Lable(gui, new Rectangle(64, 220, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(HPost = new Lable(gui, new Rectangle(64, 40, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(VPost = new Lable(gui, new Rectangle(96, 40, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(P0Del = new Lable(gui, new Rectangle(128, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(P1Del = new Lable(gui, new Rectangle(128, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(BLDel = new Lable(gui, new Rectangle(128, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); GRPF = new Surface(new Size(320, 16)); GRP0 = new Surface(new Size(128, 16)); GRP1 = new Surface(new Size(128, 16)); GRP0A = new Surface(new Size(128, 16)); GRP1A = new Surface(new Size(128, 16)); GRBL = new Surface(new Size(16, 16)); GRM0 = new Surface(new Size(16, 16)); GRM1 = new Surface(new Size(16, 16)); GRBLA = new Surface(new Size(16, 16)); ScanLine = new Surface(new Size(456, 4)); for (int i = 0; i < 136; i++) { Rectangle r = new Rectangle(i, 0, 0, 3); ScanLine.Fill(r, Color.FromArgb(i * 255 / 136, i * 255 / 136, i * 255 / 136)); } Add(moveP0 = new Lable(gui, new Rectangle(96, 140, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(moveP1 = new Lable(gui, new Rectangle(96, 160, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(moveBL = new Lable(gui, new Rectangle(96, 180, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(moveM0 = new Lable(gui, new Rectangle(96, 200, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(moveM1 = new Lable(gui, new Rectangle(96, 220, 48, 32), "0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new Lable(gui, new Rectangle(0, 80, 64, 48), "BK", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new Lable(gui, new Rectangle(64, 80, 64, 48), "PF", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(32, 80, 0, 0), ColorBK)); Add(new StaticImage(gui, new Rectangle(32 + 64, 80, 0, 0), ColorPF)); Add(new StaticImage(gui, new Rectangle(64 + 64, 80, 0, 0), GRPF)); Add(new StaticImage(gui, new Rectangle(360 + 16, 204 - 8 - 32, 0, 0), matrix)); Add(new Lable(gui, new Rectangle(0, 140, 64, 48), "P0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(32, 140, 0, 0), ColorP0)); Add(new StaticImage(gui, new Rectangle(96 + 64, 140, 0, 0), GRP0)); Add(new StaticImage(gui, new Rectangle(240 + 64, 140, 0, 0), GRP0A)); Add(new Lable(gui, new Rectangle(0, 160, 64, 48), "P1", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(32, 160, 0, 0), ColorP1)); Add(new StaticImage(gui, new Rectangle(96 + 64, 160, 0, 0), GRP1)); Add(new StaticImage(gui, new Rectangle(240 + 64, 160, 0, 0), GRP1A)); Add(new Lable(gui, new Rectangle(0, 180, 64, 48), "BL", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(96 + 64, 180, 0, 0), GRBL)); Add(new StaticImage(gui, new Rectangle(128 + 64, 180, 0, 0), GRBLA)); Add(new Lable(gui, new Rectangle(0, 200, 64, 48), "M0", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(96 + 64, 200, 0, 0), GRM0)); Add(new Lable(gui, new Rectangle(0, 220, 64, 48), "M1", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(96 + 64, 220, 0, 0), GRM1)); Add(new Lable(gui, new Rectangle(0, 40, 64, 48), "Raster", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new Lable(gui, new Rectangle(128, 120, 64, 48), "Del", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new Lable(gui, new Rectangle(96, 120, 64, 48), "HM", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new Lable(gui, new Rectangle(64, 120, 64, 48), "Pos", Alignment.LEFT, Color.White, DisplaySettings.captionFont)); Add(new StaticImage(gui, new Rectangle(8, 16, 0, 0), ScanLine)); Add(PFModes = new Lable(gui, new Rectangle(144, 80, 200, 32), "", Alignment.LEFT, Color.FromArgb(160, 160, 160), DisplaySettings.captionFont)); }