Skip to content

loan_util

Source: base/tealdef/game_mechanics/finance/loan_util.d.tl

Notes

Creation and payment calculation of loans.

LoanUtil

record global base/tealdef/game_mechanics/finance/loan_util.d.tl:3

global record LoanUtil

Notes

Creation and payment calculation of loans.

Fields

Name Type Description
maximalObtainableLoans integer Maximum number of loans at the same time (4).

Functions

createSmallLoan() : Loan base/tealdef/game_mechanics/finance/loan_util.d.tl:6

Notes

Creates a random small offer. The amount range scales with the game year (1900 to 2020).

Returns Loan: Loan offer.

createMediumLoan() : Loan base/tealdef/game_mechanics/finance/loan_util.d.tl:7

Notes

Creates a random medium offer.

Returns Loan: Loan offer.

createLargeLoan() : Loan base/tealdef/game_mechanics/finance/loan_util.d.tl:8

Notes

Creates a random large offer.

Returns Loan: Loan offer.

createExtraLargeLoan() : Loan base/tealdef/game_mechanics/finance/loan_util.d.tl:9

Notes

Creates a random extra-large offer.

Returns Loan: Loan offer.

createAvailableLoans() : {Loan} base/tealdef/game_mechanics/finance/loan_util.d.tl:10

Notes

Creates four offers labelled Small, Medium, Large and ExtraLarge, each with random terms of any size class.

Returns {Loan}: Loan offers.

createNewObtainedLoan(Loan, integer) : Loan base/tealdef/game_mechanics/finance/loan_util.d.tl:11

Notes

Turns an offer into a taken loan.

Parameter Type Description
#1 Loan Offer to copy.
#2 integer Loan id.

Returns Loan: Taken loan with timesPaid = 0.

getDurationInMonths(integer) : integer base/tealdef/game_mechanics/finance/loan_util.d.tl:12

Notes

Converts a term into game months.

Parameter Type Description
#1 integer Term in ms.

Returns integer: Number of months, rounded.

getMonthlyLoanAndInterestWithErrors(integer, integer, number) : integer, integer, integer, integer base/tealdef/game_mechanics/finance/loan_util.d.tl:13

Notes

Splits a loan into rounded monthly repayment and interest, plus the rounding remainders.

Parameter Type Description
#1 integer Amount.
#2 integer Term in ms.
#3 number Interest fraction.

Returns integer, integer, integer, integer: Monthly repayment, monthly interest, repayment remainder, interest remainder.

getMonthlyPaymentRounded(integer, integer, number, integer) : integer base/tealdef/game_mechanics/finance/loan_util.d.tl:14

Notes

Returns the monthly payment (repayment plus interest) rounded to a step.

Parameter Type Description
#1 integer Amount.
#2 integer Term in ms.
#3 number Interest fraction.
#4 integer Rounding step (0 returns 0).

Returns integer: Monthly payment.

getAnnualPaymentRounded(integer, integer, number) : integer base/tealdef/game_mechanics/finance/loan_util.d.tl:15

Notes

Returns the yearly payment (repayment plus interest), counting at least one year.

Parameter Type Description
#1 integer Amount.
#2 integer Term in ms.
#3 number Interest fraction.

Returns integer: Yearly payment.

getPaymentRoundedPerMinute(integer, integer, number) : integer base/tealdef/game_mechanics/finance/loan_util.d.tl:16

Notes

Returns the payment per minute of game time.

Parameter Type Description
#1 integer Amount.
#2 integer Term in ms.
#3 number Interest fraction.

Returns integer: Payment per minute.

getPaymentLeftoverRounded(integer, integer, number, integer, integer) : integer base/tealdef/game_mechanics/finance/loan_util.d.tl:17

Notes

Returns the amount still to repay (without interest) rounded to a step.

Parameter Type Description
#1 integer Amount.
#2 integer Term in ms.
#3 number Interest fraction.
#4 integer Monthly payments made.
#5 integer Rounding step (0 returns 0).

Returns integer: Remaining amount.

getFullLoanAndInterestPayBack(Loan) : integer, integer base/tealdef/game_mechanics/finance/loan_util.d.tl:18

Notes

Returns what an early full repayment costs.

Parameter Type Description
#1 Loan Taken loan.

Returns integer, integer: Remaining repayment and remaining interest.

isEqual({Loan}, {Loan}) : boolean base/tealdef/game_mechanics/finance/loan_util.d.tl:19

Notes

Compares two loan lists field by field.

Parameter Type Description
#1 {Loan} First list.
#2 {Loan} Second list.

Returns boolean: true if equal.

makeLoan(integer, integer) : JournalEntry base/tealdef/game_mechanics/finance/loan_util.d.tl:20

Notes

Builds a journal entry of type LOAN.

Parameter Type Description
#1 integer Amount.
#2 integer Time.

Returns JournalEntry: Journal entry.

makeInterest(integer, integer) : JournalEntry base/tealdef/game_mechanics/finance/loan_util.d.tl:21

Notes

Builds a journal entry of type INTEREST.

Parameter Type Description
#1 integer Amount.
#2 integer Time.

Returns JournalEntry: Journal entry.