From: Erik V. <ev...@us...> - 2009-12-28 13:21:23
|
Update of /cvsroot/rails/18xx/rails/game/special In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv21015/rails/game/special Modified Files: SellBonusToken.java Log Message: Fixed bookkeeping on sold bonus tokens, in particular in relation to dropping duplicate tokens acquired by the CGR Index: SellBonusToken.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/special/SellBonusToken.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SellBonusToken.java 26 Dec 2009 13:53:01 -0000 1.3 --- SellBonusToken.java 28 Dec 2009 13:21:12 -0000 1.4 *************** *** 5,8 **** --- 5,9 ---- import rails.game.*; + import rails.game.state.IntegerState; import rails.game.state.State; import rails.util.Tag; *************** *** 18,22 **** private int value; private int maxNumberToSell; ! private int numberSold = 0; @Override --- 19,23 ---- private int value; private int maxNumberToSell; ! private IntegerState numberSold; @Override *************** *** 46,49 **** --- 47,52 ---- seller = new State ("SellerOf_"+name+"_Bonus", CashHolder.class); + + numberSold = new IntegerState ("Bonus_"+name+"_sold", 0); } *************** *** 56,64 **** @Override public void setExercised () { ! numberSold++; ! if (maxNumberToSell >= 0 && numberSold >= maxNumberToSell) { ! super.setExercised(); ! } } public boolean isExecutionable() { return true; --- 59,73 ---- @Override public void setExercised () { ! numberSold.add(1); ! } ! ! public void makeResellable () { ! numberSold.add(-1); } + + public boolean isExercised () { + return maxNumberToSell >= 0 && numberSold.intValue() >= maxNumberToSell; + } + public boolean isExecutionable() { return true; *************** *** 96,100 **** public String toString() { return "SellBonusToken comp=" + privateCompany.getName() + " hex=" ! + locationCodes + " value=" + value + " price=" + price; } --- 105,110 ---- public String toString() { return "SellBonusToken comp=" + privateCompany.getName() + " hex=" ! + locationCodes + " value=" + value + " price=" + price ! + " sold="+numberSold.intValue(); } |