/// <summary> /// Empties up to the first three pouches and crafts their runes. /// Does nothing if the player is not using small, medium, or large pouch. /// </summary> /// <returns>true if successful</returns> protected bool CraftSmallMediumLargePouches() { if (UserSelections.NumberOfPouches == 0) { return(true); } for (int i = 0; i < Math.Min(3, UserSelections.NumberOfPouches); i++) { Inventory.RightClickInventoryOption(PouchSlots[i].X, PouchSlots[i].Y, 1); } Point altarLocation = new Point(Screen.Center.X, Screen.Center.Y - Screen.ArtifactLength(0.120)); if (UserSelections.NumberOfPouches > 3) { Inventory.InventoryToScreen(ref InventorySlotGiantPouch); CraftInventory(altarLocation, InventorySlotGiantPouch); WaitForRunesToCraft(); } else { CraftInventory(altarLocation, null); WaitForRunesToCraft(true); } return(true); }
/// <summary> /// Clicks the exterior nature altar to enter it and clicks the nature altar to craft the first inventory of essence /// </summary> /// <returns>true if successful</returns> protected bool EnterAltar() { int minimumSize = Screen.ArtifactArea(0.01); //ex 0.0236 Blob exteriorAltar; Point searchCenter = new Point(Screen.Center.X + Screen.ArtifactLength(0.25), Screen.Center.Y - Screen.ArtifactLength(0.24)); if (!HandEye.MouseOverStationaryObject(new Blob(searchCenter), true, 10, 1000)) //click on the exterior nature altar to enter { if (!LocateAltar(out exteriorAltar, searchCenter, Screen.ArtifactLength(0.3))) { return(false); } Vision.WaitDuringPlayerAnimation(3000); if (!HandEye.MouseOverStationaryObject(exteriorAltar, true, 10, 2000)) { return(false); } } SafeWaitPlus((int)(2.5 * BotRegistry.GAME_TICK), 150); //click on the interior nature altar to craft inventory by guessing the location Point altarLocation = new Point(Screen.Center.X, Screen.Center.Y - Screen.ArtifactLength(0.311)); int x = InventorySlotSmallPouch.X, y = InventorySlotSmallPouch.Y; Inventory.InventoryToScreen(ref x, ref y); for (int i = 0; i < 5; i++) { CraftInventory(altarLocation, new Point(x, y)); if (WaitForRunesToCraft(false, 3 * BotRegistry.GAME_TICK)) { break; } SafeWait(BotRegistry.GAME_TICK); } return(true); }