Ejemplo n.º 1
0
    public void AdvanceTransaction()
    {
        int costLeft      = 0;
        int agentCoins    = 0;
        int actualPayment = 0;
        int change        = 0;

        if ((transactionAgent != null) && transactionCreated && (paid < cost))
        {
            costLeft      = cost - paid;
            actualPayment = (payment > costLeft) ? costLeft : payment;
            agentCoins    = transactionAgent.GetCurrentCoins();
            if (agentCoins > 0)
            {
                actualPayment = (actualPayment > agentCoins) ? agentCoins : actualPayment;
                if (graph != null)
                {
                    graph.PayToUnlockArea(areaLockIndex, actualPayment, ref change);
                }
                paid += actualPayment;
                if (paid >= cost)
                {
                    UnlockAnimators();
                }
                transactionAgent.SetCurrentCoins(agentCoins - actualPayment);
                paymentsDone++;
                if (paymentsDone == paymentsToChange)
                {
                    payment            *= paymentChangeFactor;
                    paymentChangeFactor = (paymentChangeFactor == PAYMENT_CHANGE_FACTOR_1) ? PAYMENT_CHANGE_FACTOR_2 : PAYMENT_CHANGE_FACTOR_1;
                    paymentsDone        = 0;
                }
                paymentElapsed = 0f;
                if (transactionBoxManager != null)
                {
                    transactionBoxManager.UpdateTransaction(gameObject, cost, paid, payment, true, worldSpaceGaugeModel);
                }
            }
        }
    }