{ GLOBAL = { ENTER = ("setStateTo: LOOK_FOR_TARGETS"); }; "ATTACK_SHIP" = { ENTER = (performAttack); "ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, fireMissile, "setStateTo: ATTACK_SHIP"); "TARGET_DESTROYED" = ("setStateTo: LOOK_FOR_TARGETS"); "TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); "TARGET_LOST" = ("setStateTo: LOOK_FOR_TARGETS"); UPDATE = ("pauseAI: 15.0", "setStateTo: THARGON_COUNTDOWN1"); }; "THARGON_COUNTDOWN1" = { "ATTACKED" = (setTargetToPrimaryAggressor, performAttack, fireMissile, "setStateTo: THARGON_COUNTDOWN2"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: THARGON_COUNTDOWN2"); "TARGET_DESTROYED" = ("setStateTo: LOOK_FOR_TARGETS"); "TARGET_LOST" = ("setStateTo: LOOK_FOR_TARGETS"); UPDATE = (scanForNonThargoid, "pauseAI: 15.0", "setStateTo: THARGON_COUNTDOWN2"); }; "THARGON_COUNTDOWN2" = { "ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "TARGET_DESTROYED" = ("setStateTo: LOOK_FOR_TARGETS"); "TARGET_LOST" = ("setStateTo: LOOK_FOR_TARGETS"); "TARGET_FOUND" = (setTargetToFoundTarget, performAttack); UPDATE = ("rollD: 4"); "ROLL_1" = (scanForNonThargoid, "pauseAI: 15.0", "setStateTo: ATTACK_SHIP"); "ROLL_2" = (fireMissile, "pauseAI: 15.0", "setStateTo: ATTACK_SHIP"); "ROLL_3" = ("pauseAI: 15.0", "setStateTo: ATTACK_SHIP"); "ROLL_4" = ("pauseAI: 30.0", "setStateTo: LOOK_FOR_TARGETS"); }; "LOOK_FOR_TARGETS" = { ENTER = ("setSpeedTo: 0.0", performTumble, scanForNonThargoid, "pauseAI: 5.0"); "ATTACKED" = (setTargetToPrimaryAggressor, deployEscorts, "setStateTo: ATTACK_SHIP"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, "setStateTo: ATTACK_SHIP"); "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_PLANET"); UPDATE = (scanForNonThargoid, "pauseAI: 5.0"); }; "HEAD_FOR_PLANET" = { ENTER = (setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination, checkForNormalSpace); RESTARTED = (setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination, checkForNormalSpace); "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: LOOK_FOR_TARGETS"); ATTACKED = (setTargetToPrimaryAggressor, deployEscorts, "setStateTo: ATTACK_SHIP"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, "setStateTo: ATTACK_SHIP"); "INTERSTELLAR_SPACE" = ("setStateTo: HEAD_FOR_WITCHPOINT"); UPDATE = (setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination, scanForNonThargoid, "pauseAI: 10.0"); }; "HEAD_FOR_WITCHPOINT" = { ENTER = (setCourseToWitchpoint, "setDesiredRangeTo: 15000.0", checkCourseToDestination); "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination); "WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist"); "DESIRED_RANGE_ACHIEVED" = ("setStateTo: LOOK_FOR_TARGETS"); ATTACKED = (setTargetToPrimaryAggressor, deployEscorts, "setStateTo: ATTACK_SHIP"); "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); "TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, "setStateTo: ATTACK_SHIP"); UPDATE = (setCourseToWitchpoint, "setDesiredRangeTo: 15000.0", checkCourseToDestination, scanForNonThargoid, "pauseAI: 10.0"); }; }