public static Composite MoveItemFromStashToInventory(ItemToGrabFromStashDelegate itemToGrabFromStashDelegate) { return(new Sequence( new Action(delegate(object context) { var item = itemToGrabFromStashDelegate(context); int itemCountInPlayerInventoryBeforeMovingItem = GameController.Game.IngameState.IngameUi.InventoryPanel[InventoryIndex.PlayerInventory].VisibleInventoryItems.Count; Console.WriteLine("item address init: {0}", item.sellItItem.NormalInventoryItem.Address); Input.KeyDown(Keys.LControlKey); Thread.Sleep(10); Mouse.SetCursorPosAndLeftOrRightClick(item.rect, Latency, randomClick: true); Thread.Sleep(15); Input.KeyUp(Keys.LControlKey); ControlTimer.Restart(); // Will the NormalInventoryItem be set to null?? what happens to it when I move it while (ControlTimer.ElapsedMilliseconds < 2000) { int itemCountInPlayerInventoryAfterMovingItem = GameController.Game.IngameState.IngameUi.InventoryPanel[InventoryIndex.PlayerInventory].VisibleInventoryItems.Count; if (itemCountInPlayerInventoryAfterMovingItem != itemCountInPlayerInventoryBeforeMovingItem) { Console.WriteLine("player inventory contains the item now"); return RunStatus.Success; } Thread.Sleep(50); } Console.WriteLine("player inventory DOES NOT scontain the item"); return RunStatus.Failure; }) )); }
public static Composite GrabItem(ItemToGrabFromStashDelegate itemToGrabFromStashDelegate) { return(new Sequence( TownBehavior.OpenStash(), StashBehavior.SwitchToTab(x => itemToGrabFromStashDelegate(x).stashIndex), MoveItemFromStashToInventory(itemToGrabFromStashDelegate), new Action(delegate { Thread.Sleep(100); currentItemToGrab = null; return RunStatus.Success; }) )); }