Difference between revisions of "ThargoidAI"

From Elite Wiki
(The last of the standard AI's)
 
(script example from Oolite -> scripting page)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
Defined states:
 
Defined states:
* GLOBAL: →LOOK_FOR_TARGETS
+
* '''GLOBAL''': →LOOK_FOR_TARGETS
* LOOK_FOR_TARGETS: →ATTACK_SHIP, →HEAD_FOR_PLANET
+
* '''LOOK_FOR_TARGETS''': →ATTACK_SHIP, →HEAD_FOR_PLANET
* ATTACK_SHIP: →ATTACK_SHIP, →LOOK_FOR_TARGETS
+
* '''ATTACK_SHIP''': →ATTACK_SHIP, →LOOK_FOR_TARGETS
* HEAD_FOR_PLANET: →GO_TO_WAYPOINT1, →LOOK_FOR_TARGETS, →ATTACK_SHIP
+
* '''HEAD_FOR_PLANET''': →GO_TO_WAYPOINT1, →LOOK_FOR_TARGETS, →ATTACK_SHIP
* GO_TO_WAYPOINT1: →HEAD_FOR_PLANET, →→ATTACK_SHIP
+
* '''GO_TO_WAYPOINT1''': →HEAD_FOR_PLANET, →ATTACK_SHIP
   
   
{
+
{
 
"ATTACK_SHIP" = {
 
"ATTACK_SHIP" = {
 
"ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
 
"ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
Line 55: Line 55:
   
 
[[AI|BACK]]
 
[[AI|BACK]]
  +
  +
[[Category:Oolite scripting]]

Latest revision as of 13:20, 2 January 2011

Defined states:

  • GLOBAL: →LOOK_FOR_TARGETS
  • LOOK_FOR_TARGETS: →ATTACK_SHIP, →HEAD_FOR_PLANET
  • ATTACK_SHIP: →ATTACK_SHIP, →LOOK_FOR_TARGETS
  • HEAD_FOR_PLANET: →GO_TO_WAYPOINT1, →LOOK_FOR_TARGETS, →ATTACK_SHIP
  • GO_TO_WAYPOINT1: →HEAD_FOR_PLANET, →ATTACK_SHIP


{
   "ATTACK_SHIP" = {
       "ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       ENTER = (performAttack); 
       EXIT = (); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "TARGET_DESTROYED" = ("setStateTo: LOOK_FOR_TARGETS"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); 
       "TARGET_LOST" = ("setStateTo: LOOK_FOR_TARGETS"); 
       UPDATE = (scanForNonThargoid, "pauseAI: 15.0");     }; 
   "LOOK_FOR_TARGETS" = {
       "ATTACKED" = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); 
       "NOTHING_FOUND" = ("setStateTo: HEAD_FOR_PLANET"); 
       ENTER = ("setSpeedTo: 0.0", performTumble, scanForNonThargoid, "pauseAI: 5.0");
       EXIT = ();
       UPDATE = (scanForNonThargoid, "pauseAI: 5.0");	}; 
   "HEAD_FOR_PLANET" = {
       ENTER = (setCourseToPlanet, "setDesiredRangeTo: 80000.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setStateTo: GO_TO_WAYPOINT1");
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: LOOK_FOR_TARGETS");
       ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP"); 
       EXIT = ();
       UPDATE = (scanForNonThargoid, "pauseAI: 10.0");	}; 
   "GO_TO_WAYPOINT1" = {
       ENTER = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "COURSE_OK" = ("setSpeedFactorTo: 1.0", performFlyToRangeFromDestination);
       "WAYPOINT_SET" = ("setDesiredRangeTo: 50.0", checkCourseToDestination);
       "DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
       ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       "INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP"); 
       EXIT = ();
       UPDATE = (scanForNonThargoid, "pauseAI: 10.0");	}; 
   GLOBAL = {
       ENTER = ("setStateTo: LOOK_FOR_TARGETS"); 
       EXIT = (); 
       UPDATE = (); }; 
}

BACK