org.mars_sim.msp.simulation.person.ai.mission
Class TravelToSettlement

java.lang.Object
  extended by org.mars_sim.msp.simulation.person.ai.mission.Mission
      extended by org.mars_sim.msp.simulation.person.ai.mission.TravelMission
          extended by org.mars_sim.msp.simulation.person.ai.mission.VehicleMission
              extended by org.mars_sim.msp.simulation.person.ai.mission.RoverMission
                  extended by org.mars_sim.msp.simulation.person.ai.mission.TravelToSettlement
All Implemented Interfaces:
java.io.Serializable, UnitListener

public class TravelToSettlement
extends RoverMission
implements java.io.Serializable

The TravelToSettlement class is a mission to travel from one settlement to another randomly selected one within range of an available rover.

See Also:
Serialized Form

Field Summary
static java.lang.String DEFAULT_DESCRIPTION
           
static java.lang.String DESTINATION_SETTLEMENT
           
 
Fields inherited from class org.mars_sim.msp.simulation.person.ai.mission.RoverMission
MIN_PEOPLE, STARTING_SETTLEMENT_EVENT
 
Fields inherited from class org.mars_sim.msp.simulation.person.ai.mission.VehicleMission
DISEMBARKING, EMBARKING, equipmentNeededCache, loadedFlag, OPERATOR_EVENT, TRAVELLING, VEHICLE_EVENT
 
Fields inherited from class org.mars_sim.msp.simulation.person.ai.mission.TravelMission
AT_NAVPOINT, DISTANCE_EVENT, NAVPOINTS_EVENT, TRAVEL_STATUS_EVENT, TRAVEL_TO_NAVPOINT
 
Fields inherited from class org.mars_sim.msp.simulation.person.ai.mission.Mission
ADD_MEMBER_EVENT, ASSOCIATED_SETTLEMENT_EVENT, CAPACITY_EVENT, DESCRIPTION_EVENT, END_MISSION_EVENT, MIN_PEOPLE_EVENT, NAME_EVENT, PHASE_DESCRIPTION_EVENT, PHASE_EVENT, REMOVE_MEMBER_EVENT
 
Constructor Summary
TravelToSettlement(java.util.Collection<Person> members, Settlement startingSettlement, Settlement destinationSettlement, Rover rover, java.lang.String description)
          Constructor with explicit data.
TravelToSettlement(Person startingPerson)
          Constructs a TravelToSettlement object with destination settlement randomly determined.
 
Method Summary
protected  int compareVehicles(Vehicle firstVehicle, Vehicle secondVehicle)
          Compares the quality of two vehicles for use in this mission.
protected  void determineNewPhase()
          Determines a new phase for the mission when the current phase has ended.
 Settlement getAssociatedSettlement()
          Gets the settlement associated with the mission.
 Settlement getDestinationSettlement()
          Gets the destination settlement.
 java.util.Map<java.lang.Class,java.lang.Integer> getEquipmentNeededForRemainingMission(boolean useBuffer)
          Gets the number and types of equipment needed for the mission.
protected  double getMissionQualification(Person person)
          Gets the mission qualification value for the person.
static double getNewMissionProbability(Person person)
          Gets the weighted probability that a given person would start this mission.
protected  boolean isCapableOfMission(Person person)
          Checks to see if a person is capable of joining a mission.
protected  void recruitPeopleForMission(Person startingPerson)
          Recruits new people into the mission.
 
Methods inherited from class org.mars_sim.msp.simulation.person.ai.mission.RoverMission
areVehiclesAvailable, atLeastOnePersonRemainingAtSettlement, endMission, getOperateVehicleTask, getResourcesNeededForTrip, getRover, getStartingSettlement, getVehicleWithGreatestRange, hasDangerousMedicalProblemAtAssociatedSettlement, hasEmergency, isEveryoneInRover, isNoOneInRover, isRoverInAGarage, isUsableVehicle, minAvailablePeopleAtSettlement, performDisembarkToSettlementPhase, performEmbarkFromSettlementPhase, performPhase, setStartingSettlement
 
Methods inherited from class org.mars_sim.msp.simulation.person.ai.mission.VehicleMission
determineEmergencyDestination, findClosestSettlement, getAverageVehicleSpeedForOperators, getEquipmentToLoad, getEstimatedRemainingMissionTime, getEstimatedTripTime, getFuelNeededForTrip, getLegETA, getPartsNeededForTrip, getResourcesNeededForRemainingMission, getResourcesToLoad, getTotalDistanceTravelled, getVehicle, hasEmbarkingMissions, hasEnoughResourcesForRemainingMission, hasVehicle, isVehicleLoadable, isVehicleLoaded, leaveVehicle, performTravelPhase, reserveVehicle, setEmergencyBeacon, setVehicle, timePassing, unitUpdate, updateTravelDestination
 
Methods inherited from class org.mars_sim.msp.simulation.person.ai.mission.TravelMission
addNavpoint, clearRemainingNavpoints, getCurrentLegDistance, getCurrentLegRemainingDistance, getCurrentLegStartingTime, getCurrentNavpoint, getCurrentNavpointIndex, getNavpoint, getNavpointIndex, getNextNavpoint, getNextNavpointIndex, getNumberOfNavpoints, getPreviousNavpoint, getTotalDistance, getTotalRemainingDistance, getTravelStatus, reachedNextNode, setNavpoint, setNextNavpointIndex, startTravelToNextNode
 
Methods inherited from class org.mars_sim.msp.simulation.person.ai.mission.Mission
addMissionListener, addPerson, addPhase, assignTask, associateAllMembersWithSettlement, fireMissionUpdate, fireMissionUpdate, getCurrentMissionLocation, getDescription, getMinPeople, getMissionCapacity, getName, getPeople, getPeopleNumber, getPhase, getPhaseDescription, getPhaseEnded, hasDangerousMedicalProblems, hasDangerousMedicalProblemsAllCrew, hasEmergencyAllCrew, hasPerson, isDone, performMission, removeMissionListener, removePerson, setDescription, setMinPeople, setMissionCapacity, setName, setPhase, setPhaseDescription, setPhaseEnded, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_DESCRIPTION

public static final java.lang.String DEFAULT_DESCRIPTION
See Also:
Constant Field Values

DESTINATION_SETTLEMENT

public static final java.lang.String DESTINATION_SETTLEMENT
See Also:
Constant Field Values
Constructor Detail

TravelToSettlement

public TravelToSettlement(Person startingPerson)
                   throws MissionException
Constructs a TravelToSettlement object with destination settlement randomly determined.

Parameters:
startingPerson - the person starting the mission.
Throws:
MissionException - if error constructing mission.

TravelToSettlement

public TravelToSettlement(java.util.Collection<Person> members,
                          Settlement startingSettlement,
                          Settlement destinationSettlement,
                          Rover rover,
                          java.lang.String description)
                   throws MissionException
Constructor with explicit data.

Parameters:
members - collection of mission members.
startingSettlement - the starting settlement.
destinationSettlement - the destination settlement.
rover - the rover to use.
description - the mission's description.
Throws:
MissionException - if error constructing mission.
Method Detail

getNewMissionProbability

public static double getNewMissionProbability(Person person)
Gets the weighted probability that a given person would start this mission.

Parameters:
person - the given person
Returns:
the weighted probability

determineNewPhase

protected void determineNewPhase()
                          throws MissionException
Determines a new phase for the mission when the current phase has ended.

Overrides:
determineNewPhase in class VehicleMission
Throws:
MissionException - if problem setting a new phase.

getDestinationSettlement

public final Settlement getDestinationSettlement()
Gets the destination settlement.

Returns:
destination settlement

isCapableOfMission

protected boolean isCapableOfMission(Person person)
Checks to see if a person is capable of joining a mission.

Overrides:
isCapableOfMission in class Mission
Parameters:
person - the person to check.
Returns:
true if person could join mission.

getMissionQualification

protected double getMissionQualification(Person person)
                                  throws MissionException
Gets the mission qualification value for the person. Person is qualified and interested in joining the mission if the value is larger than 0. The larger the qualification value, the more likely the person will be picked for the mission. Qualification values of zero or negative will not join missions.

Overrides:
getMissionQualification in class Mission
Parameters:
person - the person to check.
Returns:
mission qualification value.
Throws:
MissionException - if problem finding mission qualification.

recruitPeopleForMission

protected void recruitPeopleForMission(Person startingPerson)
Recruits new people into the mission.

Overrides:
recruitPeopleForMission in class Mission
Parameters:
startingPerson - the person starting the mission.

getAssociatedSettlement

public Settlement getAssociatedSettlement()
Gets the settlement associated with the mission.

Specified by:
getAssociatedSettlement in class Mission
Returns:
settlement or null if none.

getEquipmentNeededForRemainingMission

public java.util.Map<java.lang.Class,java.lang.Integer> getEquipmentNeededForRemainingMission(boolean useBuffer)
                                                                                       throws MissionException
Gets the number and types of equipment needed for the mission.

Specified by:
getEquipmentNeededForRemainingMission in class RoverMission
Parameters:
useBuffer - use time buffer in estimation if true.
Returns:
map of equipment class and Integer number.
Throws:
MissionException - if error determining needed equipment.

compareVehicles

protected int compareVehicles(Vehicle firstVehicle,
                              Vehicle secondVehicle)
                       throws MissionException
Compares the quality of two vehicles for use in this mission. (This method should be added to by children)

Overrides:
compareVehicles in class VehicleMission
Parameters:
firstVehicle - the first vehicle to compare
secondVehicle - the second vehicle to compare
Returns:
-1 if the second vehicle is better than the first vehicle, 0 if vehicle are equal in quality, and 1 if the first vehicle is better than the second vehicle.
Throws:
java.lang.IllegalArgumentException - if firstVehicle or secondVehicle is null.
MissionException - if error comparing vehicles.