<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://backup.witchspacewiki.org/index.php?action=history&amp;feed=atom&amp;title=PirateAI</id>
	<title>PirateAI - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://backup.witchspacewiki.org/index.php?action=history&amp;feed=atom&amp;title=PirateAI"/>
	<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;action=history"/>
	<updated>2026-04-12T07:38:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=25496&amp;oldid=prev</id>
		<title>Eric Walch: script example from Oolite -&gt; scripting page</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=25496&amp;oldid=prev"/>
		<updated>2011-01-02T12:16:43Z</updated>

		<summary type="html">&lt;p&gt;script example from Oolite -&amp;gt; scripting page&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:16, 2 January 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 119:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 119:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''[[AI|BACK]]'''&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''[[AI|BACK]]'''&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Oolite]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Oolite&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; scripting&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Eric Walch</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=4324&amp;oldid=prev</id>
		<title>Winston at 14:43, 11 July 2006</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=4324&amp;oldid=prev"/>
		<updated>2006-07-11T14:43:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:43, 11 July 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 118:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''[[AI|BACK]]'''&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''[[AI|BACK]]'''&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Oolite]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Winston</name></author>
		
	</entry>
	<entry>
		<id>http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=2532&amp;oldid=prev</id>
		<title>Arexack: My! this thing has grown!</title>
		<link rel="alternate" type="text/html" href="http://backup.witchspacewiki.org/index.php?title=PirateAI&amp;diff=2532&amp;oldid=prev"/>
		<updated>2006-01-23T23:53:55Z</updated>

		<summary type="html">&lt;p&gt;My! this thing has grown!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This severely complex (and increasingly so every version) state machine, dictates pirate behaviour.&lt;br /&gt;
&lt;br /&gt;
STATES: ATTACK_SHIP, COLLECT_LOOT, CONSIDER_DOCKING, DOCK_WITH_STATION, ENTER_WORMHOLE, EXIT_SYSTEM, FLEE, GLOBAL, LURK, TRAVEL_TO_LURK_AREA.&lt;br /&gt;
&lt;br /&gt;
Refered to AI.plists:  [[enteringPirateAI]].plist(When hyperspacing in), [[dockingAI]].plist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
    &amp;quot;ATTACK_SHIP&amp;quot; = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;ENERGY_LOW&amp;quot; = (&amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        ENTER = (performAttack); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_DESTROYED&amp;quot; = (&amp;quot;setStateTo: COLLECT_LOOT&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_LOST&amp;quot; = (&amp;quot;setStateTo: COLLECT_LOOT&amp;quot;); &lt;br /&gt;
        &amp;quot;ENTER WORMHOLE&amp;quot; = (&amp;quot;setStateTo: ENTER_WORMHOLE&amp;quot;);&lt;br /&gt;
        UPDATE = ();     }; &lt;br /&gt;
:&lt;br /&gt;
    &amp;quot;COLLECT_LOOT&amp;quot; = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        ENTER = (&amp;quot;setSpeedTo: 0.0&amp;quot;, performIdle); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        &amp;quot;HOLD_FULL&amp;quot; = (&amp;quot;setStateTo: EXIT_SYSTEM&amp;quot;); &lt;br /&gt;
        &amp;quot;GROUP_ATTACK_TARGET&amp;quot; = (setTargetToFoundTarget, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_FOUND&amp;quot; = (setTargetToFoundTarget, &amp;quot;setStateTo: LOOT&amp;quot;); &lt;br /&gt;
        &amp;quot;NOTHING_FOUND&amp;quot; = (&amp;quot;setStateTo: CONSIDER_DOCKING&amp;quot;); &lt;br /&gt;
        &amp;quot;ENTER WORMHOLE&amp;quot; = (&amp;quot;setStateTo: ENTER_WORMHOLE&amp;quot;);&lt;br /&gt;
        UPDATE = (scanForLoot, &amp;quot;pauseAI: 5.0&amp;quot;);     }; &lt;br /&gt;
:&lt;br /&gt;
    &amp;quot;EXIT_SYSTEM&amp;quot; = {&lt;br /&gt;
        ENTER = ();&lt;br /&gt;
        EXIT = ();&lt;br /&gt;
        UPDATE = (performHyperSpaceExit);&lt;br /&gt;
        &amp;quot;WITCHSPACE OKAY&amp;quot; = (wormholeEscorts, wormholeGroup);&lt;br /&gt;
        &amp;quot;WITCHSPACE BLOCKED&amp;quot; = (setTargetToFoundTarget, setDestinationWithinTarget, &amp;quot;setDesiredRangeTo: 10000.0&amp;quot;, performFlyToRangeFromDestination);&lt;br /&gt;
        &amp;quot;WITCHSPACE UNAVAILABLE&amp;quot; = (&amp;quot;setStateTo: DOCK_WITH_STATION&amp;quot;);	}; &lt;br /&gt;
:&lt;br /&gt;
    FLEE = {&lt;br /&gt;
        ENTER = (&amp;quot;setDesiredRangeTo: 25600&amp;quot;, performFlee); &lt;br /&gt;
        &amp;quot;ENERGY_FULL&amp;quot; = (performIdle, &amp;quot;setStateTo: LURK&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_LOST&amp;quot; = (performIdle, &amp;quot;setStateTo: LURK&amp;quot;); &lt;br /&gt;
        &amp;quot;DESIRED_RANGE_ACHIEVED&amp;quot; = (performIdle, &amp;quot;setStateTo: LURK&amp;quot;); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;REACHED_SAFETY&amp;quot; = (&amp;quot;setSpeedTo: 0.0&amp;quot;, performIdle, &amp;quot;pauseAI: 10.0&amp;quot;); &lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        UPDATE = (); &lt;br /&gt;
        EXIT = ();     };&lt;br /&gt;
: &lt;br /&gt;
    GLOBAL = {&lt;br /&gt;
        ENTER = (&amp;quot;setStateTo: TRAVEL_TO_LURK_AREA&amp;quot;); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        UPDATE = (); }; &lt;br /&gt;
:&lt;br /&gt;
    LOOT = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;CARGO_SCOOPED&amp;quot; = (checkForFullHold, &amp;quot;setStateTo: COLLECT_LOOT&amp;quot;); &lt;br /&gt;
        ENTER = (performCollect); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        &amp;quot;GROUP_ATTACK_TARGET&amp;quot; = (setTargetToFoundTarget, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;HOLD_FULL&amp;quot; = (&amp;quot;setStateTo: CONSIDER_DOCKING&amp;quot;); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_LOST&amp;quot; = (&amp;quot;setStateTo: COLLECT_LOOT&amp;quot;); &lt;br /&gt;
        &amp;quot;ENTER WORMHOLE&amp;quot; = (&amp;quot;setStateTo: ENTER_WORMHOLE&amp;quot;);&lt;br /&gt;
        UPDATE = ();     }; &lt;br /&gt;
:&lt;br /&gt;
    LURK = {&lt;br /&gt;
        ENTER = (&amp;quot;setSpeedTo: 0.0&amp;quot;, performIdle); &lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;NOTHING_FOUND&amp;quot; = (&amp;quot;setStateTo: COLLECT_LOOT&amp;quot;); &lt;br /&gt;
        &amp;quot;TARGET_FOUND&amp;quot; = (setTargetToFoundTarget, checkGroupOddsVersusTarget); &lt;br /&gt;
        &amp;quot;ODDS_GOOD&amp;quot; = (groupAttackTarget); &lt;br /&gt;
        &amp;quot;ODDS_LEVEL&amp;quot; = (groupAttackTarget); &lt;br /&gt;
        &amp;quot;GROUP_ATTACK_TARGET&amp;quot; = (setTargetToFoundTarget, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;ENTER WORMHOLE&amp;quot; = (&amp;quot;setStateTo: ENTER_WORMHOLE&amp;quot;);&lt;br /&gt;
        UPDATE = (scanForRandomMerchantmen, &amp;quot;pauseAI: 5.0&amp;quot;);     }; &lt;br /&gt;
:&lt;br /&gt;
    &amp;quot;TRAVEL_TO_LURK_AREA&amp;quot; = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;DESIRED_RANGE_ACHIEVED&amp;quot; = (&amp;quot;setStateTo: LURK&amp;quot;); &lt;br /&gt;
        ENTER = (&lt;br /&gt;
            setDestinationToCurrentLocation, &lt;br /&gt;
            &amp;quot;setDesiredRangeTo: 1500.0&amp;quot;, &lt;br /&gt;
            performFlyToRangeFromDestination); &lt;br /&gt;
        EXIT = (); &lt;br /&gt;
        &amp;quot;GROUP_ATTACK_TARGET&amp;quot; = (setTargetToFoundTarget, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        &amp;quot;ENTER WORMHOLE&amp;quot; = (&amp;quot;setStateTo: ENTER_WORMHOLE&amp;quot;);&lt;br /&gt;
        &amp;quot;EXITED WITCHSPACE&amp;quot; = (&amp;quot;switchAITo: enteringPirateAI.plist&amp;quot;);&lt;br /&gt;
        UPDATE = (); };&lt;br /&gt;
: &lt;br /&gt;
    &amp;quot;CONSIDER_DOCKING&amp;quot; = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        ENTER = (checkForMotherStation);&lt;br /&gt;
        &amp;quot;NOTHING_FOUND&amp;quot; = (&amp;quot;setStateTo: LURK&amp;quot;);&lt;br /&gt;
        &amp;quot;STATION_FOUND&amp;quot; = (&amp;quot;setAITo: dockingAI.plist&amp;quot;);&lt;br /&gt;
        EXIT = ();&lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        UPDATE = ();}; &lt;br /&gt;
:&lt;br /&gt;
    &amp;quot;DOCK_WITH_STATION&amp;quot; = {&lt;br /&gt;
        ATTACKED = (setTargetToPrimaryAggressor, &amp;quot;setStateTo: ATTACK_SHIP&amp;quot;); &lt;br /&gt;
        ENTER = (setTargetToStation, &amp;quot;setDesiredRangeTo: 5000.0&amp;quot;, performIntercept);&lt;br /&gt;
        &amp;quot;DESIRED_RANGE_ACHIEVED&amp;quot; = (&amp;quot;setAITo: dockingAI.plist&amp;quot;);&lt;br /&gt;
        EXIT = ();&lt;br /&gt;
        &amp;quot;INCOMING_MISSILE&amp;quot; = (fightOrFleeMissile, &amp;quot;setStateTo: FLEE&amp;quot;); &lt;br /&gt;
        UPDATE = ();}; &lt;br /&gt;
:&lt;br /&gt;
    &amp;quot;ENTER_WORMHOLE&amp;quot; = {&lt;br /&gt;
        ENTER = (setDestinationToTarget, &amp;quot;setDesiredRangeTo: 1.0&amp;quot;, &amp;quot;setSpeedFactorTo: 1.0&amp;quot;, performFlyToRangeFromDestination);&lt;br /&gt;
        &amp;quot;PLAYER WITCHSPACE&amp;quot; = (enterTargetWormhole);&lt;br /&gt;
        UPDATE = (); &lt;br /&gt;
        EXIT = ();    }; }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''[[AI|BACK]]'''&lt;/div&gt;</summary>
		<author><name>Arexack</name></author>
		
	</entry>
</feed>