Skip to content
xxr5566833 edited this page Dec 2, 2017 · 2 revisions

Bank

银行类

properties

Loan Loans_[]

所有借出的活期和定期贷款都放在这个数组里

Number currentLoanNum_

当前你申请了几笔贷款(活期)

Number fixedLoanNum_

申请了几笔定期贷款(目前定期贷款最大数量为1)

Number maxFixedLoanNum_

最大定期贷款数量(目前为1)

目前没有活期贷款的数量限制,仅有最大贷款额度的限制

Loan

functions:

#####loan[] getLoans()

返回自己的贷款数组供前端显示信息

return this.loans_

double getMaxLoanMoney()

"GETCREDIT"

return (double)event.detail.back / 10.0 * 10000

double getOutMoney()

sum = 0

  • 遍历this.loans_,记每个元素为loan
    • sum += loan.getOriginMoney()

返回 sum

double getProtectedLoanMoney()
double getCurrentLoanNum()
double getRemainLoanMoney()

remain = this.getMaxLoanMoney() - this.getOutMoney()

return remain <= 0 ? 0 : remain

void increaseMaxLoanMoney()

(暂定)

最大贷款额度this.maxLoanMoney_肯定是需要随着游戏的进行而提高的,但是具体怎么提高还暂定

void applyLoan(double money, boolean isfixed)

申请贷款,money,isfixed 由ui传入

@require: 由UI的滑动块保证money满足: money > 0 && money <= this.getRemainLoanMoney()

  • if isfixed && this.fixedLoanNum_ >= this.maxFixedLoanNum_ then 设置event.detail.id = maxloannum"MESSAGE"
  • else
    • 设置一个利率interest,这里根据isfixed ? 3%: 5%
    • 设置一个截止日期deadline ,这里固定为 isfixed ? 8个月: 6个月 ,需要转化为天
    • 根据interest,deadline,money初始化一个贷款对象:loan.init(money, deadline, interest, isfixed)
    • loan加入到loans
    • 如果是定期,那么this.fixedLoanNum_ ++ ,如果是活期,那么this.currentLoanNum_ ++
    • 设置event.detail.money event.detail.record = "贷款" ,然后"MONEYADD"
    • 设置event.detail.id = loansuccess"MESSAGE"
void grow()

调用this.loans_的每一个元素的grow()

void pause()

this.unshedule(this.grow)

this.unshedule(this.demandLoans)

void resume(double time)

目前利息的增加暂定为一月一次,所以这里schedule时需要 *30

this.shedule(this.grow, time * 30)

this.schedule(this.demandLoans, time)

void demandLoans()

检查当前有没有截止时间到的贷款,如果有,那么自动扣除相应的金钱,且去掉这笔贷款的记录

遍历this.loans_,假设每个元素为loan

  • if this.isDue(loan)
    • 调用this.repay(loan, 1),并做记录

遍历完后,把所有做了记录的loan元素从this.loans中去掉

具体实现自行处理,最后数组不再包含 成功还款的贷款 就好

boolean isDue(Loan loan)

"GETDATE"

date = event.detail.back

return loan.isDue(date)

void repay(Loan loan, boolean force)

用户可以主动还款,在用户主动点击还款后,调用这个方法, 其中force为false,表示主动还款,还款时会检查当前金钱是否足够, force为true,表示被动还款,还款时不会检查

注意设置event.detail.force= force

"MONEYCUT"

  • if 事件返回false,那么说明当前钱不够还,id = backfail "MESSAGE"

  • else 事件返回 true,那么说明当前钱够还,id = backsuccess "MESSAGE"

Clone this wiki locally