private static bool TryPurchasing(int price, List <Item[]> inv, List <Point> slotCoins, List <Point> slotsEmpty, List <Point> slotEmptyBank, List <Point> slotEmptyBank2, List <Point> slotEmptyBank3, List <Point> slotEmptyBank4, Player player) { int priceRemaining = price; foreach (Item pItem in player.inventory) { if (pItem.ModItem is Wallet wallet) { ItemStorage storage = wallet.GetItemStorage(); long walletCoins = storage.CountCoins(); long sub = Math.Min(walletCoins, priceRemaining); priceRemaining -= (int)sub; storage.RemoveCoins(player, ref sub); if (priceRemaining <= 0) { return(false); } } } return(Orig_TryPurchasing.InvokeStatic <bool>(priceRemaining, inv, slotCoins, slotsEmpty, slotEmptyBank, slotEmptyBank2, slotEmptyBank3, slotEmptyBank4)); }