Difference between revisions of "Route2patrolAI"
From Elite Wiki
Eric Walch (talk | contribs) (script example from Oolite -> scripting page) |
|||
(One intermediate revision by one other user not shown) | |||
Line 93: | Line 93: | ||
[[AI|BACK]] | [[AI|BACK]] | ||
+ | |||
+ | |||
+ | [[Category:Oolite scripting]] |
Latest revision as of 12:18, 2 January 2011
Defined states:
- GLOBAL: →HEAD_FOR_SUN
- HEAD_FOR_SUN: →GO_TO_WAYPOINT_SUN, →OUTBOUND_LOOT
- HEAD_FOR_PLANET: →GO_TO_WAYPOINT_PLANET, →HEAD_FOR_SUN, →INBOUND_LOOT
- GO_TO_WAYPOINT_PLANET: →HEAD_FOR_PLANET, →INBOUND_LOOT
- GO_TO_WAYPOINT_SUN: →HEAD_FOR_SUN, →OUTBOUND_LOOT
- OUTBOUND_LOOT: →HEAD_FOR_SUN, →OUTBOUND_LOOT
- INBOUND_LOOT: →HEAD_FOR_PLANET, →INBOUND_LOOT
Refered to AI's: interceptAI, CollectLootAI
{ "HEAD_FOR_PLANET" = { ENTER = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT_PLANET"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_SUN"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist"); "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); EXIT = (); UPDATE = (scanForOffenders, "pauseAI: 10.0"); RESTARTED = ("setStateTo: INBOUND_LOOT"); };
"GO_TO_WAYPOINT_PLANET" = { ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT"); "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); EXIT = (); UPDATE = (); RESTARTED = ("setStateTo: INBOUND_LOOT"); };
"HEAD_FOR_SUN" = { ENTER = (setSunSkimStartCoordinates); "WAIT_FOR_SUN" = ("pauseAI: 10.0", setSunSkimStartCoordinates); "APPROACH_COORDINATES" = (setDestinationFromCoordinates, "setDesiredRangeTo: 25000", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 0.80", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT_SUN"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); EXIT = (); UPDATE = (scanForOffenders, "pauseAI: 10.0"); RESTARTED = ("setStateTo: OUTBOUND_LOOT"); };
"GO_TO_WAYPOINT_SUN" = { ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 0.8", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_SUN"); "ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget); "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); EXIT = (); UPDATE = (); RESTARTED = ("setStateTo: OUTBOUND_LOOT"); };
"OUTBOUND_LOOT" = { "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); ENTER = ("setSpeedTo: 0.0", performIdle); EXIT = (); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: OUTBOUND_LOOT"); "TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist"); "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_SUN"); UPDATE = (scanForLoot, "pauseAI: 10.0"); };
"INBOUND_LOOT" = { "GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist"); ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget); ENTER = ("setSpeedTo: 0.0", performIdle); EXIT = (); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setAITo: interceptAI.plist", "setStateTo: INBOUND_LOOT"); "TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist"); "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_PLANET"); UPDATE = (scanForLoot, "pauseAI: 10.0"); };
GLOBAL = { ENTER = ("setStateTo: HEAD_FOR_SUN"); EXIT = (); UPDATE = (); }; }