|
From: <ev...@us...> - 2011-02-15 22:40:23
|
Revision: 1487
http://rails.svn.sourceforge.net/rails/?rev=1487&view=rev
Author: evos
Date: 2011-02-15 22:40:16 +0000 (Tue, 15 Feb 2011)
Log Message:
-----------
1830 Coalfields: configured available trains and train obsolescence
Modified Paths:
--------------
trunk/18xx/data/1830/Game.xml
trunk/18xx/rails/game/TrainManager.java
trunk/18xx/rails/game/TrainType.java
trunk/18xx/rails/game/TrainTypeI.java
Modified: trunk/18xx/data/1830/Game.xml
===================================================================
--- trunk/18xx/data/1830/Game.xml 2011-02-13 19:57:47 UTC (rev 1486)
+++ trunk/18xx/data/1830/Game.xml 2011-02-15 22:40:16 UTC (rev 1487)
@@ -99,13 +99,15 @@
cities="double" if city-revenue is doubled (e.g. 1826 TGV).
-->
</Defaults>
- <Train name="2" majorStops="2" cost="80" amount="6"/>
- <Train name="3" majorStops="3" cost="180" amount="5" startPhase="3"/>
- <Train name="4" majorStops="4" cost="300" amount="4" startPhase="4"
- rustedTrain="2"/>
+ <Train name="2" majorStops="2" cost="80" amount="6" obsoleting="yes"/>
+ <Train name="3" majorStops="3" cost="180" amount="5" obsoleting="yes" startPhase="3"/>
+ <Train name="4" majorStops="4" cost="300" amount="4" obsoleting="yes" startPhase="4"
+ rustedTrain="2">
+ <IfOption name="Variant" value="Coalfields">
+ <Attributes amount="5"/>
+ </IfOption>
+ </Train>
<Train name="5" majorStops="5" cost="450" amount="3" startPhase="5"/>
- <!--Train name="6" majorStops="6" cost="630" amount="2" startPhase="6"
- rustedTrain="3" releasedTrain="D"/-->
<Train name="6" majorStops="6" cost="630" startPhase="6"
rustedTrain="3" releasedTrain="D">
<IfOption name="WithOptional6Train" value="yes">
@@ -114,12 +116,22 @@
<IfOption name="WithOptional6Train" value="no">
<Attributes amount="2"/>
</IfOption>
- <IfOption name="Variant" value="Pere Marquette">
- <Attributes amount="3"/>
+ <IfOption name="Variant" value="Pere Marquette,Coalfields">
+ <Attributes amount="3" releasedTrain="7,D"/>
</IfOption>
</Train>
- <Train name="D" majorStops="99" cost="1100" startPhase="D"
- rustedTrain="4">
+ <IfOption name="Variant" value="Coalfields">
+ <Train name="7" majorStops="7" cost="710" amount="2"/>
+ </IfOption>
+ <Train name="D" majorStops="99" startPhase="D" rustedTrain="4">
+ <IfOption name="Variant" value="Basegame,Pere Marquette">
+ <Attributes cost="1100"/>
+ <Exchange cost="800"/>
+ </IfOption>
+ <IfOption name="Variant" value="Coalfields">
+ <Attributes cost="900"/>
+ <Exchange cost="750"/>
+ </IfOption>
<IfOption name="UnlimitedTopTrains" value="yes">
<Attributes amount="-1"/>
</IfOption>
Modified: trunk/18xx/rails/game/TrainManager.java
===================================================================
--- trunk/18xx/rails/game/TrainManager.java 2011-02-13 19:57:47 UTC (rev 1486)
+++ trunk/18xx/rails/game/TrainManager.java 2011-02-15 22:40:16 UTC (rev 1487)
@@ -84,8 +84,12 @@
// Finish initialisation of the train types
for (TrainTypeI type : lTrainTypes) {
- if (type.getReleasedTrainTypeName() != null) {
- type.setReleasedTrainType(mTrainTypes.get(type.getReleasedTrainTypeName()));
+ if (type.getReleasedTrainTypeNames() != null) {
+ List<TrainTypeI> rtts = new ArrayList<TrainTypeI>(2);
+ for (String ttName : type.getReleasedTrainTypeNames().split(",")) {
+ rtts.add (mTrainTypes.get(ttName));
+ }
+ type.setReleasedTrainTypes(rtts);
}
if (type.getRustedTrainTypeName() != null) {
type.setRustedTrainType(mTrainTypes.get(type.getRustedTrainTypeName()));
@@ -173,11 +177,15 @@
trainAvailabilityChanged = true;
}
- TrainTypeI releasedType = boughtType.getReleasedTrainType();
- if (releasedType != null) {
- if (!releasedType.isAvailable()) releasedType.setAvailable(bank);
- ReportBuffer.add(LocalText.getText("TrainsAvailable",
+ List<TrainTypeI> releasedTypes = boughtType.getReleasedTrainTypes();
+ if (releasedTypes != null) {
+ for (TrainTypeI releasedType : releasedTypes) {
+ if (!releasedType.isAvailable()) {
+ releasedType.setAvailable(bank);
+ ReportBuffer.add(LocalText.getText("TrainsAvailable",
releasedType.getName()));
+ }
+ }
trainAvailabilityChanged = true;
}
}
Modified: trunk/18xx/rails/game/TrainType.java
===================================================================
--- trunk/18xx/rails/game/TrainType.java 2011-02-13 19:57:47 UTC (rev 1486)
+++ trunk/18xx/rails/game/TrainType.java 2011-02-15 22:40:16 UTC (rev 1487)
@@ -2,6 +2,7 @@
package rails.game;
import java.util.ArrayList;
+import java.util.List;
import org.apache.log4j.Logger;
@@ -60,8 +61,8 @@
private String rustedTrainTypeName = null;
protected TrainTypeI rustedTrainType = null;
- private String releasedTrainTypeName = null;
- protected TrainTypeI releasedTrainType = null;
+ private String releasedTrainTypeNames = null;
+ protected List<TrainTypeI> releasedTrainTypes = null;
protected ArrayList<TrainI> trains = null;
@@ -141,7 +142,7 @@
rustedTrainTypeName = tag.getAttributeAsString("rustedTrain");
// Other train type released for buying
- releasedTrainTypeName = tag.getAttributeAsString("releasedTrain");
+ releasedTrainTypeNames = tag.getAttributeAsString("releasedTrain");
// Can run as obsolete train
obsoleting = tag.getAttributeAsBoolean("obsoleting");
@@ -331,10 +332,10 @@
}
/**
- * @return Returns the releasedTrainType.
+ * @return Returns the releasedTrainTypes.
*/
- public TrainTypeI getReleasedTrainType() {
- return releasedTrainType;
+ public List<TrainTypeI> getReleasedTrainTypes() {
+ return releasedTrainTypes;
}
/**
@@ -368,8 +369,8 @@
/**
* @return Returns the releasedTrainTypeName.
*/
- public String getReleasedTrainTypeName() {
- return releasedTrainTypeName;
+ public String getReleasedTrainTypeNames() {
+ return releasedTrainTypeNames;
}
/**
@@ -386,8 +387,8 @@
/**
* @param releasedTrainType The releasedTrainType to set.
*/
- public void setReleasedTrainType(TrainTypeI releasedTrainType) {
- this.releasedTrainType = releasedTrainType;
+ public void setReleasedTrainTypes(List<TrainTypeI> releasedTrainTypes) {
+ this.releasedTrainTypes = releasedTrainTypes;
}
/**
@@ -483,8 +484,8 @@
if (rustedTrainTypeName != null) {
appendInfoText(b, LocalText.getText("RustsTrains", rustedTrainTypeName));
}
- if (releasedTrainTypeName != null) {
- appendInfoText(b, LocalText.getText("ReleasesTrains", releasedTrainTypeName));
+ if (releasedTrainTypeNames != null) {
+ appendInfoText(b, LocalText.getText("ReleasesTrains", releasedTrainTypeNames));
}
if (b.length() == 6) b.append(LocalText.getText("None"));
Modified: trunk/18xx/rails/game/TrainTypeI.java
===================================================================
--- trunk/18xx/rails/game/TrainTypeI.java 2011-02-13 19:57:47 UTC (rev 1486)
+++ trunk/18xx/rails/game/TrainTypeI.java 2011-02-15 22:40:16 UTC (rev 1487)
@@ -1,6 +1,8 @@
/* $Header: /Users/blentz/rails_rcs/cvs/18xx/rails/game/TrainTypeI.java,v 1.14 2010/03/04 22:08:09 evos Exp $ */
package rails.game;
+import java.util.List;
+
public interface TrainTypeI
extends ConfigurableComponentI, Cloneable {
@@ -51,7 +53,7 @@
/**
* @return Returns the releasedTrainType.
*/
- public TrainTypeI getReleasedTrainType();
+ public List<TrainTypeI> getReleasedTrainTypes();
/**
* @return Returns the rustedTrainType.
@@ -91,7 +93,7 @@
public boolean hasRusted();
- public String getReleasedTrainTypeName();
+ public String getReleasedTrainTypeNames();
public String getRustedTrainTypeName();
@@ -99,7 +101,7 @@
public void setPermanent(boolean permanent);
- public void setReleasedTrainType(TrainTypeI releasedTrainType);
+ public void setReleasedTrainTypes(List<TrainTypeI> releasedTrainTypes);
public void setRustedTrainType(TrainTypeI rustedTrainType);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|