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