From: Erik V. <ev...@us...> - 2008-12-24 22:02:25
|
Update of /cvsroot/rails/18xx/rails/game/action In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv19740/rails/game/action Modified Files: MergeCompanies.java Log Message: Cases like 18EU brown Paris are now also covered: a check is added that token replacement is only allowed if there is not yet a token in the same station. Index: MergeCompanies.java =================================================================== RCS file: /cvsroot/rails/18xx/rails/game/action/MergeCompanies.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MergeCompanies.java 24 Dec 2008 14:55:11 -0000 1.4 --- MergeCompanies.java 24 Dec 2008 22:02:20 -0000 1.5 *************** *** 49,60 **** } else { b.append(target.getName()); canReplaceToken.add(target.getNumberOfFreeBaseTokens() > 0 ! && (!mergingCompany.getHomeHex().hasTokenOfCompany(target) ! || mergingCompany.getHomeHex().getCurrentTile().allowsMultipleBasesOfOneCompany())); ! /* The above does not yet take care of cases where a tile where two ! * bases of the same company are allowed has different multi-slot ! * stations (e.g. the 18EU brown Paris tile #583). ! * Duplicate tokens in one station are not yet prevented here. ! */ } } --- 49,58 ---- } else { b.append(target.getName()); + MapHex hex = mergingCompany.getHomeHex(); canReplaceToken.add(target.getNumberOfFreeBaseTokens() > 0 ! && (!hex.hasTokenOfCompany(target) ! || hex.getCurrentTile().allowsMultipleBasesOfOneCompany() ! && hex.getCityOfBaseToken(mergingCompany) ! != hex.getCityOfBaseToken(target))); } } |