net.sf.freecol.server.ai.mission
Class IndianDemandMission

java.lang.Object
  extended by net.sf.freecol.common.model.FreeColObject
      extended by net.sf.freecol.server.ai.AIObject
          extended by net.sf.freecol.server.ai.mission.Mission
              extended by net.sf.freecol.server.ai.mission.IndianDemandMission

public class IndianDemandMission
extends Mission

Mission for demanding goods from a specified player.


Field Summary
private  boolean completed
          Whether this mission has been completed or not.
private  boolean demanded
          Whether the demand has been made or not.
private static java.util.logging.Logger logger
           
private  Colony target
          The Colony receiving the demand.
 
Fields inherited from class net.sf.freecol.server.ai.mission.Mission
MINIMUM_TRANSPORT_PRIORITY, NO_MORE_MOVES_LEFT, NO_PATH_TO_TARGET, NORMAL_TRANSPORT_PRIORITY
 
Fields inherited from class net.sf.freecol.server.ai.AIObject
uninitialized
 
Fields inherited from class net.sf.freecol.common.model.FreeColObject
ARRAY_SIZE, ID_ATTRIBUTE, ID_ATTRIBUTE_TAG, INFINITY, NO_ID, PARTIAL_ATTRIBUTE, UNDEFINED, VALUE_TAG
 
Constructor Summary
IndianDemandMission(AIMain aiMain, AIUnit aiUnit, Colony target)
          Creates a mission for the given AIUnit.
IndianDemandMission(AIMain aiMain, org.w3c.dom.Element element)
          Loads a mission from the given element.
IndianDemandMission(AIMain aiMain, javax.xml.stream.XMLStreamReader in)
          Creates a new IndianDemandMission and reads the given element.
 
Method Summary
private  int capAmount(int amount, int difficulty)
           
 void doMission(Connection connection)
          Performs the mission.
 java.lang.String getDebuggingInfo()
          Gets debugging information about this mission.
static java.lang.String getXMLElementTagName()
          Returns the tag name of the root element representing this object.
private  boolean hasTribute()
          Checks if the unit is carrying a gift (goods).
 boolean isValid()
          Checks if this mission is still valid to perform.
protected  void readAttributes(javax.xml.stream.XMLStreamReader in)
          Reads all the AIObjects and other AI-related information from XML data.
 Goods selectGoods(Colony target)
          Selects the most desirable goods from the colony.
protected  void toXMLImpl(javax.xml.stream.XMLStreamWriter out)
          Writes all of the AIObjects and other AI-related information to an XML-stream.
protected  void writeAttributes(javax.xml.stream.XMLStreamWriter out)
          
 
Methods inherited from class net.sf.freecol.server.ai.mission.Mission
dispose, findNearestOtherSettlement, findTarget, getAIRandom, getAIUnit, getEuropeanAIPlayer, getPathStartTile, getTransportDestination, getTransportPriority, getUnit, isOneTime, isValid, moveButDontAttack, moveRandomly, moveTowards, moveTowards, moveUnitToAmerica, moveUnitToEurope, sellCargoInEurope, setAIUnit, shouldTakeTransportToTile, travelToTarget, unitLeavesShip, unloadCargoInColony
 
Methods inherited from class net.sf.freecol.server.ai.AIObject
getAIMain, getGame, getSpecification, isUninitialized, readFromXML
 
Methods inherited from class net.sf.freecol.common.model.FreeColObject
addPropertyChangeListener, addPropertyChangeListener, dumpObject, fireIndexedPropertyChange, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAttribute, getAttribute, getAttribute, getAttribute, getAttribute, getId, getPropertyChangeListeners, getPropertyChangeListeners, hasAbility, hasAttribute, hasListeners, readAttributes, readChild, readChild, readChildren, readChildren, readFromArrayElement, readFromArrayElement, readFromListElement, readFromXMLElement, readFromXMLImpl, readFromXMLImpl, readFromXMLPartialImpl, removePropertyChangeListener, removePropertyChangeListener, save, save, setId, setSpecification, toXML, toXML, toXML, toXMLElement, toXMLElement, toXMLElement, toXMLElement, toXMLElementPartial, toXMLPartialImpl, writeAttribute, writeChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static final java.util.logging.Logger logger

target

private Colony target
The Colony receiving the demand.


completed

private boolean completed
Whether this mission has been completed or not.


demanded

private boolean demanded
Whether the demand has been made or not.

Constructor Detail

IndianDemandMission

public IndianDemandMission(AIMain aiMain,
                           AIUnit aiUnit,
                           Colony target)
Creates a mission for the given AIUnit.

Parameters:
aiMain - The main AI-object.
aiUnit - The AIUnit this mission is created for.
target - The Colony receiving the gift.

IndianDemandMission

public IndianDemandMission(AIMain aiMain,
                           org.w3c.dom.Element element)
Loads a mission from the given element.

Parameters:
aiMain - The main AI-object.
element - An Element containing an XML-representation of this object.

IndianDemandMission

public IndianDemandMission(AIMain aiMain,
                           javax.xml.stream.XMLStreamReader in)
                    throws javax.xml.stream.XMLStreamException
Creates a new IndianDemandMission and reads the given element.

Parameters:
aiMain - The main AI-object.
in - The input stream containing the XML.
Throws:
javax.xml.stream.XMLStreamException - if a problem was encountered during parsing.
See Also:
AIObject.readFromXML(javax.xml.stream.XMLStreamReader)
Method Detail

doMission

public void doMission(Connection connection)
Performs the mission.

Specified by:
doMission in class Mission
Parameters:
connection - The Connection to the server.

selectGoods

public Goods selectGoods(Colony target)
Selects the most desirable goods from the colony.

Parameters:
target - The colony.
Returns:
The goods to demand.

capAmount

private int capAmount(int amount,
                      int difficulty)

hasTribute

private boolean hasTribute()
Checks if the unit is carrying a gift (goods).

Returns:
true if getUnit().getSpaceLeft() == 0 and false otherwise.

isValid

public boolean isValid()
Checks if this mission is still valid to perform. This mission will be invalidated when complete, if the home settlement is gone, the target is gone, or tension reduces to happy.

Overrides:
isValid in class Mission
Returns:
True if this mission is still valid.

getDebuggingInfo

public java.lang.String getDebuggingInfo()
Gets debugging information about this mission. This string is a short representation of this object's state.

Overrides:
getDebuggingInfo in class Mission
Returns:
The String: "[ColonyName] GIFT_TYPE" or "[ColonyName] Getting gift: (x, y)".

toXMLImpl

protected void toXMLImpl(javax.xml.stream.XMLStreamWriter out)
                  throws javax.xml.stream.XMLStreamException
Writes all of the AIObjects and other AI-related information to an XML-stream.

Specified by:
toXMLImpl in class FreeColObject
Parameters:
out - The target stream.
Throws:
javax.xml.stream.XMLStreamException - if there are any problems writing to the stream.

writeAttributes

protected void writeAttributes(javax.xml.stream.XMLStreamWriter out)
                        throws javax.xml.stream.XMLStreamException
Description copied from class: Mission

Overrides:
writeAttributes in class Mission
Parameters:
out - The target stream.
Throws:
javax.xml.stream.XMLStreamException - if there are any problems writing to the stream.

readAttributes

protected void readAttributes(javax.xml.stream.XMLStreamReader in)
                       throws javax.xml.stream.XMLStreamException
Reads all the AIObjects and other AI-related information from XML data.

Overrides:
readAttributes in class Mission
Parameters:
in - The input stream with the XML.
Throws:
javax.xml.stream.XMLStreamException - if there are any problems reading from the stream.

getXMLElementTagName

public static java.lang.String getXMLElementTagName()
Returns the tag name of the root element representing this object.

Returns:
"indianDemandMission".