oolite/Resources/AIs/scavengerAI.plist
Eric Walch f502f30e66 - planets now rotate around their poles, even script added ones
- changing orientation by JS script now correctly changes the rotation axis
- relocated the "stationLaunchedShip" handler
- escorts looking for a new master won't find masters that are busy targeting the escort.

git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2923 127b21dd-08f5-0310-b4b7-95ae10353056
2010-01-01 11:19:14 +00:00

62 lines
2.8 KiB
Plaintext

{
GLOBAL =
{
ENTER = ("setSpeedFactorTo: 1.0", "setStateTo: LOOK_FOR_STUFF");
};
"LOOK_FOR_STUFF" =
{
ENTER = (performTumble,checkForFullHold);
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget, broadcastDistressMessage, "setStateTo: FLEE");
"HOLD_FULL" = ("setStateTo: DOCK_WITH_STATION");
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
"TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: COLLECT_STUFF");
"NOTHING_FOUND" = ("setStateTo: DOCK_WITH_STATION");
"LAUNCHED OKAY" = ("setStateTo: CLEAR_STATION");
UPDATE = (scanForRandomLoot, "pauseAI: 8.0");
};
"CLEAR_STATION" = {
ENTER = (getWitchspaceEntryCoordinates, setDestinationFromCoordinates, "setDesiredRangeTo: 100.0",
"setSpeedFactorTo: 0.75", performFlyToRangeFromDestination, "pauseAI: 10");
UPDATE = ("setStateTo: LOOK_FOR_STUFF");
};
"DOCK_WITH_STATION" =
{
ENTER = (setTargetToNearestStation, "setDesiredRangeTo: 5000.0", performIntercept);
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget, broadcastDistressMessage, "setStateTo: FLEE");
"DESIRED_RANGE_ACHIEVED" = ("setAITo: dockingAI.plist");
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
"TARGET_LOST" = ("setStateTo: GO_TO_STATION");
};
"GO_TO_STATION" =
{
ENTER = (setTargetToNearestStation, "setDesiredRangeTo: 5000.0", setDestinationToTarget, checkCourseToDestination);
"COURSE_OK" = (setSpeedToCruiseSpeed, performFlyToRangeFromDestination);
"WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist");
"DESIRED_RANGE_ACHIEVED" = ("setAITo: dockingAI.plist");
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget, broadcastDistressMessage, "setStateTo: FLEE");
UPDATE = (setTargetToNearestStation, "setDesiredRangeTo: 5000.0", setDestinationToTarget,
checkCourseToDestination, "pauseAI: 10.0");
};
FLEE =
{
ENTER = ("setDesiredRangeTo: 25600", performFlee);
ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: FLEE");
"ENERGY_FULL" = (performIdle, "setStateTo: LOOK_FOR_STUFF");
"TARGET_LOST" = (performIdle, "setStateTo: LOOK_FOR_STUFF");
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
"REACHED_SAFETY" = ("setSpeedTo: 0.0", "pauseAI: 60", "setStateTo: LOOK_FOR_STUFF");
};
"COLLECT_STUFF" =
{
ENTER = (performCollect);
FRUSTRATED = ("setSpeedTo: 0.0", setDestinationToTarget, "setDesiredRangeTo: 2.0", performFaceDestination);
"FACING_DESTINATION" = (performCollect);
"CARGO_SCOOPED" = ("setStateTo: LOOK_FOR_STUFF");
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget, broadcastDistressMessage, "setStateTo: FLEE");
"TARGET_LOST" = ("setStateTo: LOOK_FOR_STUFF");
"COLLISION" = ("setStateTo: LOOK_FOR_STUFF");
"HOLD_FULL" = ("setStateTo: DOCK_WITH_STATION");
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
};
}