BankTeller - ellenvoegtli/simcity GitHub Wiki
###Data: //shared list of accounts between all tellers and bankers List accounts; String name; myClient mc; BankAccount{ String name; int creditScore ; double balance; double debt; double accountNumber; } myClient{ BankCustomer bc; int amount; ClientState{withdrawing, depositing} } ###Messages: msgIWantToDeposit( BankCustomer bc, int amount){ mc.bc=bc; mc.amount=amount; }
msgIWantToWithdraw( BankCustomer bc, int amount){
mc.bc=bc;
mc.amount=amount;
}
###Scheduler: if myClient!=null{ if(mc.ClientState=depositing){ doDeposit(mc); } if(mc.ClientState=withdrawing){ doWithdraw(mc); }
###Actions: doDeposit(mc){ for (BankAccount ba: accounts) if(ba.accountNumber=mc.bc.accountNumber){ //somehow reduce customer's current cash ba.balance+=mc.amount; mc.ba.msgRequestComplete(mc.amount*-1, ba.balance); myClient=null; } }
doWithdraw(mc){
for (BankAccount ba: accounts){
if(ba.accountNumber=mc.bc.accountNumber){
//somehow increase customer's current cash
ba.balance-=mc.amount;
mc.ba.msgRequestComplete(mc.amount, ba.balance);
myClient=null;
}
}