public static void WithdrawUpTo(Mobile from, int amount, Item[] currency, BankCheck[] checks, ulong credit) { for (int i = 0; amount > 0 && i < currency.Length; ++i) { int consume = Math.Min(currency[i].Amount, amount); currency[i].Consume(consume); amount -= consume; } for (int i = 0; amount > 0 && i < checks.Length; ++i) { BankCheck check = checks[i]; int consume = Math.Min(check.Worth, amount); check.ConsumeWorth(consume); amount -= consume; } BankBox bank = from.FindBankNoCreate(); if (bank != null) // sanity check? { ulong cons = Math.Min((ulong)amount, credit); bank.Credit -= cons; amount -= (int)cons; } }
public static void WithdrawUpTo(Mobile from, int amount, Gold[] gold, BankCheck[] checks) { for (int i = 0; amount > 0 && i < gold.Length; ++i) { int consume = Math.Min(gold[i].Amount, amount); gold[i].Consume(consume); amount -= consume; } for (int i = 0; amount > 0 && i < checks.Length; ++i) { BankCheck check = checks[i]; int consume = Math.Min(check.Worth, amount); check.ConsumeWorth(consume); amount -= consume; } }