Difference between revisions of "RisingShuttleAI"
From Elite Wiki
m (layout) |
m |
||
Line 56: | Line 56: | ||
[[AI|BACK]] | [[AI|BACK]] | ||
+ | |||
+ | [[Category:Oolite]] |
Revision as of 13:17, 12 July 2006
This script describes the behaviour of shuttles taking off from planet-side and docking with station.
Defined states:
- GLOBAL: →LIFT_OFF
- LIFT_OFF: →GO_TO_STATION, →FLEE
- GO_TO_STATION: →GO_TO_WAYPOINT, , →FLEE
- GO_TO_WAYPOINT: →GO_TO_STATION, →FLEE
- FLEE: →GLOBAL, →FLEE
Refered to AI's: dockingAI.plist
{ "GO_TO_WAYPOINT" = { ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_STATION"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage, "setStateTo: FLEE"); "INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE"); EXIT = (); UPDATE = (); };
"GO_TO_STATION" = { ENTER = (setTargetToStation, "setDesiredRangeTo: 5000.0", setDestinationToTarget, checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT"); "DESIRED_RANGE_ACHIEVED" = ("setAITo: dockingAI.plist"); EXIT = (); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage, "setStateTo: FLEE"); "INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE"); UPDATE = (); };
"LIFT_OFF" = { ENTER = (setTakeOffFromPlanet, "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_STATION"); ATTACKED = (setTargetToPrimaryAggressor, broadcastDistressMessage, "setStateTo: FLEE"); "INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE"); EXIT = (); UPDATE = (); };
FLEE = { "TARGET_LOST" = (performIdle, "setStateTo: GLOBAL"); ENTER = ("setDesiredRangeTo: 25600", performFlee); EXIT = (); "INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE"); "REACHED_SAFETY" = ("setSpeedTo: 0.0", performIdle, "pauseAI: 30.0"); UPDATE = (); };
GLOBAL = { ENTER = ("setSpeedTo: 0.0", "setStateTo: LIFT_OFF"); EXIT = (); UPDATE = (); }; }