示例#1
0
        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;
            }
        }
示例#2
0
        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;
            }
        }