Package net.sf.freecol.server.ai.mission
Class IndianBringGiftMission
- java.lang.Object
-
- net.sf.freecol.common.model.FreeColObject
-
- net.sf.freecol.server.ai.AIObject
-
- net.sf.freecol.server.ai.mission.Mission
-
- net.sf.freecol.server.ai.mission.IndianBringGiftMission
-
- All Implemented Interfaces:
java.lang.Comparable<FreeColObject>,ObjectWithId
public final class IndianBringGiftMission extends Mission
Mission for bringing a gift to a specified player. The mission has three different tasks to perform:- Get the gift (goods) from the
IndianSettlementthat owns the unit. - Transport this gift to the given
Colony. - Complete the mission by delivering the gift.
-
-
Field Summary
Fields Modifier and Type Field Description private booleancollectedHas the gift been collected?private static java.lang.StringCOLLECTED_TAGprivate ColonycolonyThe Colony to receive the gift.private static java.lang.StringCOLONY_TAGprivate static java.util.logging.Loggerloggerprivate static java.lang.StringtagThe tag for this mission.static java.lang.StringTAG-
Fields inherited from class net.sf.freecol.server.ai.mission.Mission
AIUNITDIED, AIUNITNULL, MINIMUM_TRANSPORT_PRIORITY, NO_MORE_MOVES_LEFT, NO_PATH_TO_TARGET, NORMAL_TRANSPORT_PRIORITY, TARGETINVALID, TARGETNOTFOUND, TARGETNULL, TARGETOWNERSHIP, UNITNOTAPERSON, UNITNOTOFFENSIVE, UNITNOTONMAP
-
Fields inherited from class net.sf.freecol.server.ai.AIObject
initialized
-
Fields inherited from class net.sf.freecol.common.model.FreeColObject
ARRAY_SIZE_TAG, DEFAULT_CLASS_INDEX, fcoComparator, ID_ATTRIBUTE_TAG, PARTIAL_ATTRIBUTE_TAG, VALUE_TAG
-
-
Constructor Summary
Constructors Constructor Description IndianBringGiftMission(AIMain aiMain, AIUnit aiUnit, FreeColXMLReader xr)Creates a newIndianBringGiftMissionfrom a reader.IndianBringGiftMission(AIMain aiMain, AIUnit aiUnit, Colony target)Creates a mission for the givenAIUnit.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MissiondoMission(LogBuilder lb)Performs the mission.LocationfindTarget()Finds a new target for this mission.ColonygetColony()LocationgetTarget()Gets the target of this mission, if any.LocationgetTransportDestination()Gets the destination of a required transport.java.lang.StringgetXMLTagName()Get the serialization tag for this object.private booleanhasGift()Checks if the unit is carrying a gift (goods).private static java.lang.StringinvalidColonyReason(AIUnit aiUnit, Colony colony)Why would an IndianBringGiftMission be invalid with the given unit and colony.static java.lang.StringinvalidMissionReason(AIUnit aiUnit)Why would this mission be invalid with the given AI unit?static java.lang.StringinvalidMissionReason(AIUnit aiUnit, Location loc)Why would this mission be invalid with the given AI unit and location?java.lang.StringinvalidReason()Why is this mission invalid? Mission subclasses must implement this routine, which probably should start by checking invalidAIUnitReason.private static java.lang.StringinvalidUnitReason(AIUnit aiUnit)Why would this mission be invalid with the given unit?protected voidreadAttributes(FreeColXMLReader xr)Reads the attributes of this object from an XML stream.voidsetTarget(Location target)Sets the target of this mission, if any.protected voidwriteAttributes(FreeColXMLWriter xw)Write the attributes of this object to a stream.-
Methods inherited from class net.sf.freecol.server.ai.mission.Mission
dispose, findCircleTarget, getAIPlayer, getAIRandom, getAIUnit, getBaseTransportPriority, getBestSettlement, getEuropeanAIPlayer, getPlayer, getUnit, invalidAIUnitReason, invalidAttackReason, invalidNewMissionReason, invalidTargetReason, invalidTargetReason, invalidTransportableReason, isOneTime, isTargetReason, isValid, lbAt, lbAttack, lbDodge, lbDone, lbDrop, lbFail, lbMove, lbRetarget, lbWait, moveRandomly, moveRandomlyTurn, resolveBlockage, retargetMission, setInitialized, toString, toXML, travelToTarget
-
Methods inherited from class net.sf.freecol.server.ai.AIObject
addAIObjectWithId, checkIntegrity, checkIntegrity, copyIn, getAIMain, getGame, getSpecification, isDisposed, setGame, setSpecification
-
Methods inherited from class net.sf.freecol.common.model.FreeColObject
addAbility, addFeatures, addModifier, addPropertyChangeListener, addPropertyChangeListener, apply, apply, applyModifiers, applyModifiers, arrayKey, compareIds, compareTo, containsAbilityKey, containsModifierKey, copy, copy, copy, copy, copyInCast, dumpObject, equals, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAbilities, getAbilities, getAbilities, getAbilities, getClassIndex, getDefenceModifiers, getDisplayObject, getFeatureContainer, getFreeColObjectClass, getFreeColObjectClassByName, getId, getIdNumber, getIdType, getIdTypeByName, getModifiers, getModifiers, getModifiers, getModifiers, getObjectClassIndex, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getSortedAbilities, getSortedModifiers, getSuffix, getSuffix, hasAbility, hasAbility, hasAbility, hashCode, hasListeners, hasModifier, hasModifier, hasModifier, idEquals, invokeMethod, logFreeColObjects, readChild, readChildren, readFromXML, readFromXMLPartial, removeAbilities, removeAbility, removeFeatures, removeModifier, removeModifiers, removePropertyChangeListener, removePropertyChangeListener, save, save, save, save, serialize, serialize, serialize, serialize, setId, toXML, toXMLPartial, toXMLPartial, writeChildren
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
TAG
public static final java.lang.String TAG
- See Also:
- Constant Field Values
-
tag
private static final java.lang.String tag
The tag for this mission.- See Also:
- Constant Field Values
-
colony
private Colony colony
The Colony to receive the gift.
-
collected
private boolean collected
Has the gift been collected?
-
COLLECTED_TAG
private static final java.lang.String COLLECTED_TAG
- See Also:
- Constant Field Values
-
COLONY_TAG
private static final java.lang.String COLONY_TAG
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
IndianBringGiftMission
public IndianBringGiftMission(AIMain aiMain, AIUnit aiUnit, Colony target)
Creates a mission for the givenAIUnit.- Parameters:
aiMain- The main AI-object.aiUnit- TheAIUnitthis mission is created for.target- TheColonyreceiving the gift.
-
IndianBringGiftMission
public IndianBringGiftMission(AIMain aiMain, AIUnit aiUnit, FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Creates a newIndianBringGiftMissionfrom a reader.- Parameters:
aiMain- The main AI-object.aiUnit- TheAIUnitthis mission is created for.xr- The input stream containing the XML.- Throws:
javax.xml.stream.XMLStreamException- if a problem was encountered during parsing.- See Also:
FreeColObject.readFromXML(net.sf.freecol.common.io.FreeColXMLReader)
-
-
Method Detail
-
getColony
public Colony getColony()
-
hasGift
private boolean hasGift()
Checks if the unit is carrying a gift (goods).- Returns:
- True if the unit is carrying goods.
-
invalidUnitReason
private static java.lang.String invalidUnitReason(AIUnit aiUnit)
Why would this mission be invalid with the given unit?- Parameters:
aiUnit- TheAIUnitto test.- Returns:
- A reason why the mission would be invalid with the unit, or null if none found.
-
invalidColonyReason
private static java.lang.String invalidColonyReason(AIUnit aiUnit, Colony colony)
Why would an IndianBringGiftMission be invalid with the given unit and colony.- Parameters:
aiUnit- TheAIUnitto test.colony- TheColonyto test.- Returns:
- A reason why the mission would be invalid with the unit and colony or null if none found.
-
invalidMissionReason
public static java.lang.String invalidMissionReason(AIUnit aiUnit)
Why would this mission be invalid with the given AI unit?- Parameters:
aiUnit- TheAIUnitto check.- Returns:
- A reason for mission invalidity, or null if none found.
-
invalidMissionReason
public static java.lang.String invalidMissionReason(AIUnit aiUnit, Location loc)
Why would this mission be invalid with the given AI unit and location?- Parameters:
aiUnit- TheAIUnitto check.loc- TheLocationto check.- Returns:
- A reason for invalidity, or null if none found.
-
getTransportDestination
public Location getTransportDestination()
Gets the destination of a required transport. Override this in the child mission classes if there is a useful intermediate point to deliver the unit distinct from the target.- Overrides:
getTransportDestinationin classMission- Returns:
- The mission target, or null if the mission is invalid, otherwise lacks a target (e.g. UnitWanderHostile), or the unit does not need transport.
-
getTarget
public Location getTarget()
Gets the target of this mission, if any.
-
setTarget
public void setTarget(Location target)
Sets the target of this mission, if any. The actual target is handled in the missions that really have them, this is a helper to make sure the unit is updated.
-
findTarget
public Location findTarget()
Finds a new target for this mission.- Specified by:
findTargetin classMission- Returns:
- A new target for this mission.
-
invalidReason
public java.lang.String invalidReason()
Why is this mission invalid? Mission subclasses must implement this routine, which probably should start by checking invalidAIUnitReason. A mission can be invalid for a number of subclass-specific reasons. For example: a seek-and-destroy mission could be invalid because of a improved stance towards the targeted player.- Specified by:
invalidReasonin classMission- Returns:
- A reason for mission invalidity, or null if none found.
-
doMission
public Mission doMission(LogBuilder lb)
Performs the mission.
-
writeAttributes
protected void writeAttributes(FreeColXMLWriter xw) throws javax.xml.stream.XMLStreamException
Write the attributes of this object to a stream. To be overridden if required by any object that has attributes and uses the toXML(FreeColXMLWriter, String) call.- Overrides:
writeAttributesin classMission- Parameters:
xw- TheFreeColXMLWriterto write to.- Throws:
javax.xml.stream.XMLStreamException- if there are any problems writing to the stream.
-
readAttributes
protected void readAttributes(FreeColXMLReader xr) throws javax.xml.stream.XMLStreamException
Reads the attributes of this object from an XML stream.- Overrides:
readAttributesin classMission- Parameters:
xr- TheFreeColXMLReaderto read from.- Throws:
javax.xml.stream.XMLStreamException- if there is a problem reading the stream.
-
getXMLTagName
public java.lang.String getXMLTagName()
Get the serialization tag for this object.- Specified by:
getXMLTagNamein classFreeColObject- Returns:
- The tag.
-
-