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); } } } }