Difference between revisions of "AI"

From Elite Wiki
(better introduction)
(Oolite standard AI's: removed crewroles, used buoyAI as an example)
Line 3: Line 3:
 
== Oolite standard AI's ==
 
== Oolite standard AI's ==
 
* buoyAI
 
* buoyAI
//Sends warnig messages when attacked, summons police.
+
Sends warning messages when attacked, summons police.
  +
  +
This AI has only one state, the mandatory ''GLOBAL'' state, and responds to only two messages: ''ENTER'' which is sent when the AI enters the state and whichtells the piloting behaviour to idle, and ''ATTACKED'' which is sent when the ship suffers damage from an aggressor and to which the buoy responds by targetting the aggressor and broadcasting a distress message.
  +
<dict>
  +
<key>GLOBAL</key>
  +
<dict>
  +
<key>ATTACKED</key>
  +
<array>
  +
<string>setTargetToPrimaryAggressor</string>
  +
<string>broadcastDistressMessage</string>
  +
</array>
  +
<key>ENTER</key>
  +
<array>
  +
<string>performIdle</string>
  +
</array>
  +
<key>EXIT</key>
  +
<array/>
  +
<key>UPDATE</key>
  +
<array/>
  +
</dict>
  +
</dict>
  +
 
* collectLootAI
 
* collectLootAI
 
//intercepts and scoops loot.
 
//intercepts and scoops loot.
* crewroles
 
//Under development: tactical AI by customised pilots.
 
 
* dockingAI
 
* dockingAI
 
//scripts the docking maneuvres.
 
//scripts the docking maneuvres.

Revision as of 18:41, 23 January 2006

All entities in Oolite have an AI, this is a plist file that defines a state machine that determines their behaviour. This behaviour can be simple for rocks tumbing (DumbAI.plist) to complex for escorting craft (escort.plist).

Oolite standard AI's

  • buoyAI

Sends warning messages when attacked, summons police.

This AI has only one state, the mandatory GLOBAL state, and responds to only two messages: ENTER which is sent when the AI enters the state and whichtells the piloting behaviour to idle, and ATTACKED which is sent when the ship suffers damage from an aggressor and to which the buoy responds by targetting the aggressor and broadcasting a distress message.

<dict>
	<key>GLOBAL</key>
	<dict>
		<key>ATTACKED</key>
		<array>
			<string>setTargetToPrimaryAggressor</string>
			<string>broadcastDistressMessage</string>
		</array>
		<key>ENTER</key>
		<array>
			<string>performIdle</string>
		</array>
		<key>EXIT</key>
		<array/>
		<key>UPDATE</key>
		<array/>
	</dict>
</dict>
  • collectLootAI

//intercepts and scoops loot.

  • dockingAI

//scripts the docking maneuvres.

  • dumbAI

//just tumbles randomly

  • enteringPirateAI

//pirate behaviour, navigation towards planet.

  • enteringTraderAI

//trader behaviour, navigation towards planet.

  • escortAI

//escort behaviour.

  • exitingTraderAI

//Trader behaviour, navigation towards witchpoint.

  • fallingShuttleAI

//Shuttle station -> planet.

  • hardMissileAI

//Identical to missileAI, minus detonation upon ECM.

  • homeAI

//Landing on planet.

  • interceptAI

//General interception and combat.

  • minerAI

//Looks for rocks, mines them.

  • missileAI

//Intercept and detonation.

  • nullAI

//Only uses performIdle-method, preferred AI for sub entity.

  • pirateAI

//Pirate behaviour.

  • planetPatrollAI

//Police patroll navigation around planet waypoints.

  • policeInterceptAI

//Interception, attack, comms and legal bussines.

  • risingShuttleAI

//Shuttle: planet -> station.

  • rockHermitAI

//Behaviour of rockhermit.

  • route1PatrollAI

//Police patroll navigation route 1.

  • route1TraderAI

//Trader navigation route 1.

  • route2PatrollAI

//Police patroll navigation route 2 (sun).

  • route2SunskimAI

//General navigation route2.

  • scavengerAI

//Scavenger behaviour, looks for loot.

  • shuttleAI

//Shuttle behaviour.

  • stationAI

//Station behaviour.

  • sunskimExitAI

//General navigation sun -> witchpoint.

  • thargletAI

//Checks for presence of motherThargoid, requests target from mother, or tumbles.

  • thargoidAI

//Kills all humans.

  • timebombAI

//Pauses 5 second, sets range, then detonates with cascade effect.

Related Links

OXP_howto
OXP_howto_AI
Methods