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

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.UnitSeekAndDestroyMission

public class UnitSeekAndDestroyMission
extends Mission

Mission for attacking a specific target, be it a Unit or a Settlement.


Field Summary
private static java.util.logging.Logger logger
           
private  Location target
          The object we are trying to destroy.
 
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
UnitSeekAndDestroyMission(AIMain aiMain, AIUnit aiUnit, Location target)
          Creates a mission for the given AIUnit.
UnitSeekAndDestroyMission(AIMain aiMain, org.w3c.dom.Element element)
          Loads a mission from the given element.
UnitSeekAndDestroyMission(AIMain aiMain, javax.xml.stream.XMLStreamReader in)
          Creates a new UnitSeekAndDestroyMission and reads the given element.
 
Method Summary
 void doMission(Connection connection)
          Performs the mission.
 java.lang.String getDebuggingInfo()
          Gets debugging information about this mission.
private  PathNode getDisembarkPath(Unit unit, Tile start, Tile end, Unit carrier)
           
 Location getTarget()
          Returns the object we are trying to destroy.
 Tile getTransportDestination()
          Returns the destination for this Transportable.
 int getTransportPriority()
          Returns the priority of getting the unit to the transport destination.
static java.lang.String getXMLElementTagName()
          Returns the tag name of the root element representing this object.
 boolean isValid()
          Check to see if this is a valid hostility with a valid target.
protected  void readAttributes(javax.xml.stream.XMLStreamReader in)
          
 void setTarget(Location target)
          Sets the object we are trying to destroy.
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, 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 Location target
The object we are trying to destroy. This can be a either Settlement or a Unit.

Constructor Detail

UnitSeekAndDestroyMission

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

Parameters:
aiMain - The main AI-object.
aiUnit - The AIUnit this mission is created for.
target - The object we are trying to destroy. This can be either a Settlement or a Unit.

UnitSeekAndDestroyMission

public UnitSeekAndDestroyMission(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.

UnitSeekAndDestroyMission

public UnitSeekAndDestroyMission(AIMain aiMain,
                                 javax.xml.stream.XMLStreamReader in)
                          throws javax.xml.stream.XMLStreamException
Creates a new UnitSeekAndDestroyMission 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. This is done by searching for hostile units that are located within one tile and attacking them. If no such units are found, then wander in a random direction.

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

getDisembarkPath

private PathNode getDisembarkPath(Unit unit,
                                  Tile start,
                                  Tile end,
                                  Unit carrier)

isValid

public boolean isValid()
Check to see if this is a valid hostility with a valid target.

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

getTransportDestination

public Tile getTransportDestination()
Returns the destination for this Transportable. This can either be the target Tile of the transport or the target for the entire Transportable's mission. The target for the transport is determined by TransportMission in the latter case.

Overrides:
getTransportDestination in class Mission
Returns:
The destination for this Transportable.

getTransportPriority

public int getTransportPriority()
Returns the priority of getting the unit to the transport destination.

Overrides:
getTransportPriority in class Mission
Returns:
The priority.

getTarget

public Location getTarget()
Returns the object we are trying to destroy.

Returns:
The object which should be destroyed. This can be either a Settlement or a Unit.

setTarget

public void setTarget(Location target)
Sets the object we are trying to destroy.

Parameters:
target - The object which should be destroyed. This can be either a Settlement or a Unit.

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.

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
Description copied from class: Mission

Overrides:
readAttributes in class Mission
Parameters:
in - The XML input stream.
Throws:
javax.xml.stream.XMLStreamException - if a problem was encountered during parsing.

getXMLElementTagName

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

Returns:
"unitSeekAndDestroyMission".