{ GLOBAL = { ENTER = ("setStateTo: LOOK_FOR_SUN"); }; "LOOK_FOR_SUN" = { ENTER = (setSunSkimStartCoordinates); "WAIT_FOR_SUN" = (setSunSkimStartCoordinates); "APPROACH_COORDINATES" = ("setStateTo: HEAD_FOR_SUN"); UPDATE = ("pauseAI: 10"); }; "HEAD_FOR_SUN" = { ENTER = ("setDesiredRangeTo: 50000", "pauseAI: 0"); "COURSE_OK" = (setSpeedToCruiseSpeed, performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_SKIM"); ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles); "INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.5 2.0"); "EXITED WITCHSPACE" = ("switchAITo: route1traderAI.plist"); "RESTARTED" = ("setStateTo: LOOK_FOR_SUN"); UPDATE = (setDestinationFromCoordinates, checkCourseToDestination, "pauseAI: 15"); }; "GO_TO_SKIM" = { ENTER = (setSunSkimStartCoordinates, setDestinationFromCoordinates, "setDesiredRangeTo: 100", "setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: SKIM_SUN"); }; "SKIM_SUN" = { ENTER = (setSunSkimEndCoordinates, setDestinationFromCoordinates, "setDesiredRangeTo: 50", "setSpeedFactorTo: 2.0", performFlyToRangeFromDestination); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: LEAVE_SUN"); }; "LEAVE_SUN" = { ENTER = (setSunSkimExitCoordinates, setDestinationFromCoordinates, "setDesiredRangeTo: 250", "setSpeedFactorTo: 2.0", performFlyToRangeFromDestination); "DESIRED_RANGE_ACHIEVED" = ("addFuel: 70", "setStateTo: EXIT_SYSTEM"); }; "EXIT_SYSTEM" = { UPDATE = (performHyperSpaceExit); "WITCHSPACE OKAY" = (wormholeEscorts); "WITCHSPACE BLOCKED" = (setTargetToFoundTarget, setDestinationWithinTarget, "setDesiredRangeTo: 10000.0", performFlyToRangeFromDestination); "WITCHSPACE UNAVAILABLE" = ("setAITo: route1traderAI.plist"); }; }