Back to Index Page generated: May 8, 2024, 6:16:03 AM

Expansion Resistance Commander

Content

Warnings

  1. Syntax Error AIs/GW-astrofactoryAI.plist[37:38] extraneous input 'GW-transporter"' expecting {')', ','}
  2. Found 1 issues in AIs/GW-astrofactoryAI.plist
  3. Found XML equipment list
  4. XML script list found

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description A mission/gameplay set in Galaxy 5 that allows players to take command of a small squadron of ships in combat operations. A mission/gameplay set in Galaxy 5 that allows players to take command of a small squadron of ships in combat operations.
Identifier oolite.oxp.Ramirez.ResistanceCommander oolite.oxp.Ramirez.ResistanceCommander
Title Resistance Commander Resistance Commander
Category Missions Missions
Author Ramirez Ramirez
Version 1.6 1.6
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
  • oolite.oxp.Ramirez.Dictators:1.5
  • oolite.oxp.Ramirez.Dictators:1.5
  • Optional Expansions
    Conflict Expansions
    Information URL http://wiki.alioth.net/index.php/Resistance_Commander n/a
    Download URL https://wiki.alioth.net/img_auth.php/a/af/ResistanceCommander_1.6.oxz n/a
    License CC BY-NC-SA 3 CC BY-NC-SA 3
    File Size n/a
    Upload date 1610873410

    Documentation

    Also read http://wiki.alioth.net/index.php/Resistance%20Commander

    Resistance_Commander_readme.rtf

    {\rtf1\ansi\ansicpg1250\deff0
    {\fonttbl
    {\f0\fnil\fcharset0\fprq0\fttruetype Helvetica;}
    {\f1\fnil\fcharset0\fprq0\fttruetype Symbol;}
    {\f2\fnil\fcharset0\fprq0\fttruetype Liberation Sans;}
    {\f3\fnil\fcharset0\fprq0\fttruetype Dingbats;}
    {\f4\fnil\fcharset0\fprq0\fttruetype Liberation Serif;}
    {\f5\fnil\fcharset0\fprq0\fttruetype Courier New;}}
    {\colortbl
    \red0\green0\blue0;
    \red255\green255\blue255;}
    {\stylesheet
    {\s1\fi-430\li720\sbasedon29\snext29Contents 1;}
    {\s2\fi-430\li1440\sbasedon29\snext29Contents 2;}
    {\s3\fi-430\li2160\sbasedon29\snext29Contents 3;}
    {\s8\fi-430\li720\sbasedon29Lower Roman List;}
    {\s5\tx431\sbasedon25\snext29Numbered Heading 1;}
    {\s6\tx431\sbasedon26\snext29Numbered Heading 2;}
    {\s7\fi-430\li720Square List;}
    {\*\cs11\sbasedon29Endnote Text;}
    {\s4\fi-430\li2880\sbasedon29\snext29Contents 4;}
    {\s9\fi-430\li720Diamond List;}
    {\s10\fi-430\li720Numbered List;}
    {\*\cs12\fs20\superEndnote Reference;}
    {\s13\fi-430\li720Triangle List;}
    {\s14\tx431\sbasedon27\snext29Numbered Heading 3;}
    {\s15\fi-430\li720Dashed List;}
    {\s16\fi-430\li720\sbasedon10Upper Roman List;}
    {\s17\sb440\sa60\f2\fs24\b\sbasedon29\snext29Heading 4;}
    {\s18\fi-430\li720Heart List;}
    {\s35\fi-430\li720Box List;}
    {\*\cs20\fs20Reference;}
    {\s21\fi-430\li720\sbasedon10Upper Case List;}
    {\s22\fi-430\li720Bullet List;}
    {\s23\fi-430\li720Hand List;}
    {\*\cs24\fs20\sbasedon29Footnote Text;}
    {\s25\sb440\sa60\f2\fs34\b\sbasedon29\snext29Heading 1;}
    {\s26\sb440\sa60\f2\fs28\b\sbasedon29\snext29Heading 2;}
    {\s19\qc\sb240\sa119\f2\fs32\b\sbasedon29\snext29Contents Header;}
    {\s28\fi-430\li720Tick List;}
    {\s27\sb440\sa60\f2\fs24\b\sbasedon29\snext29Heading 3;}
    {\s30\fi-430\li720\sbasedon10Lower Case List;}
    {\s31\li1440\ri1440\sa119\sbasedon29Block Text;}
    {\s37\f5\sbasedon29Plain Text;}
    {\s33\tx1584\sbasedon5\snext29Section Heading;}
    {\s34\fi-430\li720Implies List;}
    {\s29\f4\fs24Normal;}
    {\s36\fi-430\li720Star List;}
    {\*\cs32\fs20\superFootnote Reference;}
    {\s38\tx1584\sbasedon5\snext29Chapter Heading;}}
    {\*\listtable
    {\list\listtemplateid1356\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1010}
    {\list\listtemplateid1357\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1021}
    {\list\listtemplateid1358\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1032}
    {\list\listtemplateid1359\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1043}
    {\list\listtemplateid1360\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1054}
    {\list\listtemplateid1361\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1065}
    {\list\listtemplateid1362\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1076}
    {\list\listtemplateid1363\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1087}
    {\list\listtemplateid1364\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1098}
    {\list\listtemplateid1365\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1109}
    {\list\listtemplateid1366\listsimple{\listlevel\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi11{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1}\listid1230}}
    {\*\listoverridetable
    {\listoverride\listoverridecount0\listid1010\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls1}
    {\listoverride\listoverridecount0\listid1021\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls2}
    {\listoverride\listoverridecount0\listid1032\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls3}
    {\listoverride\listoverridecount0\listid1043\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls4}
    {\listoverride\listoverridecount0\listid1054\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls5}
    {\listoverride\listoverridecount0\listid1065\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls6}
    {\listoverride\listoverridecount0\listid1076\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls7}
    {\listoverride\listoverridecount0\listid1087\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls8}
    {\listoverride\listoverridecount0\listid1098\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls9}
    {\listoverride\listoverridecount0\listid1109\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi13{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls10}
    {\listoverride\listoverridecount0\listid1230\levelnfc23\levelstartat1\levelspace0\levelfollow0\fi11{\leveltext\'01\'b7 ;}{\levelnumbers;}\f1\ls11}}
    
    \kerning0\cf0\ftnbj\fet2\ftnstart1\ftnnar\aftnnar\ftnstart1\aftnstart1\aenddoc\revprop3{\info\uc1}\deftab720\viewkind1\paperw11900\paperh16838\margl1440\margr1440\widowctrl
    \sectd\sbknone\colsx0\pgncont\ltrsect
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\b\lang1038{\*\listtag0}\abinodiroverride\ltrch Resistance Commander - Version History & Additional Notes}{\f0\fs24\b\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\b\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Please see Resistance_Commander.pdf for detailed instructions on running the OXP.}{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Known issues and future changes:}{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1010\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls1\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch units promoted to Commander are not yet replaced by new recruits, so they'll remain part of your squadron indefinitely}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1010\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls1\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch a more detailed endgame is in development for the campaign}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1010\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls1\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch so far, Resistance Commander only makes optional use of assets from the Commies OXP; I intend to expand this where possible to include things like Your Ad Here and other OXPs}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1010\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls1\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch a set of potential special functions (status check, systems check and hyperspace check) are described in the pdf but haven't been implemented as yet}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1010\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls1\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch I'd like to introduce a new HUD that works better with the SCS}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch A note on the Squadron Command System:}{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch The script functions for setting up the unit selection and unit command panels are now all contained in the GWcontrolpanel.js worldscript.  You can customise the order in which the various buttons appear by rearranging the lines in the this.initialisePanel, this.setUnitPanel and this.setCommandPanel functions.}{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Version History}{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.6 01/07/15}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi11\bullet 	}\pard\plain{\ltrpar\ql\fi11{\*\abilist\abilistid1230\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls11\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Python Commander got new texture from }{\f0\fs24\lang1038{\*\listtag0}tonyhippy}{\f0\fs24\lang1038{\*\listtag1231}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.5 12/11/14}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi11\bullet 	}\pard\plain{\ltrpar\ql\fi11{\*\abilist\abilistid1230\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls11\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch fixed the price of the playable Python Commander ship}{\f0\fs24\lang1038{\*\listtag1342}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch \tab }{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.4 30/06/12}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1021\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls2\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch minor fixes to resolve script problems on startup}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.3 30/01/12}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1032\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls3\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch modified mechanism for giving different ranks varying energy levels}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1032\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls3\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch some endgame materials included but currently disabled}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.2 17/10/11}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1043\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls4\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added new textures for Dictatorship ships}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1043\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls4\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch minor fixes to shipdata}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1043\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls4\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch additional NPC comms messages}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.1 10/09/11}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added check for presence of Dictators script}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch fixed problem with missiles not being restored when docking with the SCS active}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch streamlined the script by moving the various SCS-related functions to a separate worldscript}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch rearranged unit selection buttons to place 'select all' in the first slot}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch corrected various typos that prevented some opfor targets from appearing properly}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch fixed problem with units appearing after hypespace incorrectly}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1054\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls5\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch minor correction to some AI commands}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v1.0\tab /07/11\tab }{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added dynamic energy ratings based on rank}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added limited missile loadout to Gecko squadron ships}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch improved flee conditions for units under low energy}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch improved check-in comms}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch included detailed pdf readme}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1065\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls6\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v0.5\tab /07/11\tab }{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1076\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls7\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Location set to Galaxy 5}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1076\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls7\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch basic readme included}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1076\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls7\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v0.4\tab /07/11\tab }{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch Created dependency on Dictators.oxp}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch new dynamic target and ship selection method}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch more variation between weapon loadout}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added unit promotion mechanism}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch completed scripting of all mission variations}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1087\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls8\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v0.3\tab /06/11}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch improved ship display menus}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch improved ship selection menu}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added background art and completed menu set}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added an assault mission involving hyperspacing to  new system}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch modified mission destinations to lie within 15ly of base}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added mission summaries to debrief}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch added an Ops Centre with campaign summary}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch improved in-flight comms}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1098\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls9\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch fitted plasma turrets to certain ships}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v0.2\tab /04/11}{\f0\fs24\lang1038{\*\listtag0}\par}
    {\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1109\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls10\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch redesigned SCS to make use of SHIFT+N activation method}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1109\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls10\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1109\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls10\ilvl0\sl240\slmult1\itap0\tx220\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch v0.1\tab /04/11}{\f0\fs24\lang1038{\*\listtag0}\par}
    }{\listtext\pard\fi13\bullet 	}\pard\plain{\ltrpar\ql\fi13{\*\abilist\abilistid1109\abilistparentid0\abilistlevel1\abistartat1{\abifieldfont Symbol}{\abilistdecimal .}{\abilistdelim %L}{\abiliststyle Bullet List}}{\*\pn\pnql\pnstart1\pnlvlblt{\pntxtb\bullet}}\ls10\ilvl0\sl240\slmult1\itap0\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\abinodiroverride\ltrch initial test release with functional command system and basic menus}{\f0\fs24\lang1038{\*\listtag0}\par}
    }\pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}
    \pard\plain\ltrpar\ql\sl240\slmult1\itap0\tx560\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803{\f0\fs24\lang1038{\*\listtag0}\par}}

    Equipment

    Name Visible Cost [deci-credits] Tech-Level
    Advance Button yes 0 100+
    ControlButton yes 0 100+
    Engage Button yes 0 100+
    Squadron Command System yes 0 100+
    Hold button yes 0 100+
    Regroup yes 0 100+
    Sweep Button yes 0 100+
    Undo button yes 0 100+
    Unit 1 button yes 0 100+
    Unit 2 button yes 0 100+
    Unit 3 button yes 0 100+
    Unit 4 button yes 0 100+
    Unit 99 button yes 0 100+
    Unit All button yes 0 100+
    Special function button yes 0 100+
    Special function button yes 0 100+

    Ships

    Name
    Anaconda Transport
    Astrofactory
    Imperial Banshee
    Freedom of Zabe
    ZRV Biarra
    ZRV Ceused
    ZRV Esbeena
    ZRV Inriisus
    ZRV Solaerin
    Behemoth 2
    Ball Turret
    Area Defence Cannon
    Defence Cannon
    Defence Cannon
    Imperial Censor
    Imperial Censor
    Communications Antenna
    Communications Station
    Pi-42 Con Store
    Communications Station
    Factory
    enemy commander
    Imperial Freighter
    Fuel Reprocessing Facility
    Hyperspace Jumpgate
    GW gecko
    GW krait
    Imperial Lictor
    Shader mamba
    Mine
    GW-mine-2
    GW-mine-3
    GW-mine-4
    GW-mine-5
    GW moray
    Communications Station
    Astromine Prison Facility
    Python Commander
    Imperial Quaestor
    Communications Station
    Rock Hermit
    Ball Turret
    enemy commander
    Solar Research Laboratory
    Zabe Resistance Krait
    Zabe Resistance Mamba
    Biesmaan Asp
    Communications Station
    Imperial Tanker
    Transporter Test
    enemy commander
    Unit 1 (Gecko)
    Unit 1 (Krait)
    Unit 1 (Mamba)
    Unit 1 (Moray)
    Unit 2 (Gecko)
    Unit 2 (Krait)
    Unit 2 (Mamba)
    Unit 2 (Moray)
    Unit 3 (Gecko)
    Unit 3 (Krait)
    Unit 3 (Mamba)
    Unit 3 (Moray)
    Unit 4 (Gecko)
    Unit 4 (Krait)
    Unit 4 (Mamba)
    Unit 4 (Moray)
    Engage
    Hold
    Hyperspace check
    Regroup
    Special Functions
    Sweep
    Undo
    Unit 1
    Unit 2
    Unit 3
    Unit 4
    Unit 5
    All units

    Models

    This expansion declares no models. This may be related to warnings.

    Scripts

    Path
    Scripts/GWbehemoth.js
    this.name               = "GWbehemoth.js";
    this.author             = "Ramirez";
    this.copyright          = "October 2011";
    this.description        = "Ship script for GW Behemoths";
    this.version            = "1.0";
    
    
    
    
    
    
    this.shipSpawned = function()
    {	
    	}
    
    
    this.shipDied = function()
    {   }
        
    this.locateFactory = function()
    {var astrofactory = system.shipsWithRole("GW-astrofactory")[0]
    this.ship.target = astrofactory
    log('coordinates set')
    this.ship.reactToAIMessage("TARGET_FOUND")}
    
    
    this.factoryReached = function()
    {this.ship.commsMessage("in position near factory")
    missionVariables.GW_mission = "ENDGAME_ECAVUATE"
    	}
    
    
    
    
    
    Scripts/GWcontrolbutton.js
    this.name               = "controlbutton.js";
    this.author               = "Ramirez";
    this.copyright            = "Whatever...";
    this.description         = "Control Button test";
    this.version            = "1.0";
                  
                   
    this.selectUnit1 = function()
    
    {   if(system.countShipsWithRole("unit1") == 0)
            {player.consoleMessage("Unit 1 out of action")
             worldScripts.GWcontrolpanel.setUnitPanel();
            return}
        else
        player.consoleMessage("Unit 1 selected")
        missionVariables.unitSelection = "unit1"
        worldScripts.GWcontrolpanel.setCommandPanel()
         
    }
                    
    this.selectUnit2 = function()
    
    {   if(system.countShipsWithRole("unit2") == 0)
            {player.consoleMessage("Unit 2 out of action")
             worldScripts.GWcontrolpanel.setUnitPanel();
            return}
        else
        player.consoleMessage("Unit 2 selected")
        missionVariables.unitSelection = "unit2"
        worldScripts.GWcontrolpanel.setCommandPanel()
    }               
                    
    this.selectUnit3 = function()
    
    {   if(system.countShipsWithRole("unit3") == 0)
            {player.consoleMessage("Unit 3 out of action")
             worldScripts.GWcontrolpanel.setUnitPanel();
            return}
        else
        player.consoleMessage("Unit 3 selected")
        missionVariables.unitSelection = "unit3"
    	worldScripts.GWcontrolpanel.setCommandPanel()
    }
    
    this.selectUnit4 = function()
    
    {   if(system.countShipsWithRole("unit4") == 0)
            {player.consoleMessage("Unit 4 out of action")
            worldScripts.GWcontrolpanel.setUnitPanel();
            return}
        else
        player.consoleMessage("Unit 4 selected")
        missionVariables.unitSelection = "unit4"
        worldScripts.GWcontrolpanel.setCommandPanel()
    }
    
    
    this.selectUnit5 = function()
    
    {   if(system.countShipsWithRole("unit5") == 0)
            {player.consoleMessage("Unit 5 out of action")
            worldScripts.GWcontrolpanel.setUnitPanel();
            return}
        else
        player.consoleMessage("Unit 5 selected")
        missionVariables.unitSelection = "unit5"
        worldScripts.GWcontrolpanel.setCommandPanel()
    }
    
    
    this.selectAll = function()
    {missionVariables.unitSelection = "GWunit"
    player.consoleMessage("All units selected")
    worldScripts.GWcontrolpanel.setCommandPanel();
    }
    
    
    this.selectSpecial = function()
    {missionVariables.unitSelection = "GWunit"
    player.consoleMessage("Special Functions selected")
    this.setSpecialPanel()
    }
    
    
    
    
    //this.issueAdvance = function()
    //{missionVariables.unitOrder = "advance"
    //player.commsMessage("Squadron, this is Sunray: Prepare for hyperspace.")
    //worldScripts.GWmain.issueOrder()}
    
    this.issueSweep = function()
    {missionVariables.unitOrder = "sweep"
    worldScripts.GWmain.issueOrder()}
    
    this.issueRegroup = function()  //need to go back to world script
    {missionVariables.unitOrder = "regroup"
    worldScripts.GWmain.issueOrder()}
    
    
    this.issueEngage = function()
    {   if(player.ship.target == null)
            {player.consoleMessage("No target set")
            worldScripts.GWcontrolpanel.setUnitPanel()
            return;}
    
        else
        
        missionVariables.unitOrder = "engage"
        worldScripts.GWmain.issueOrder()
        
        //this.locateCommandTarget()
         //for (var i=0; i<this.commandTarget.length; i++)
           // { this.commandTarget[i].target = null
            //this.commandTarget[i].target = player.ship.target
            //this.commandTarget[i].setAI("GW-interceptAI.plist")
            //this.commandTarget[i].commsMessage(expandDescription("[GW_engage_message]"+player.ship.target.name))}  
        //this.setUnitPanel()
    }
        
    this.issueHold = function()
    {missionVariables.unitOrder = "hold"
    worldScripts.GWmain.issueOrder()}
    
        
        
    this.issueUndo = function()
    {   player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    worldScripts.GWcontrolpanel.setUnitPanel()}  
        
    
    
    this.issueStatusCheck = function()
    {   this.locateCommandTarget()
        for (var i=0; i<this.commandTarget.length; i++)
            {if(this.commandTarget[i].AI == "nullAI.plist")
                {this.commandTarget[i].commsMessage("Holding position at "+this.commandTarget[i].position)}
            if(this.commandTarget[i].AI == "IR-wingmanAI.plist")
                {this.commandTarget[i].commsMessage("Roger leader, holding formation.")}
            if(this.commandTarget[i].AI == "GW-interceptAI.plist")
                {this.commandTarget[i].commsMessage(this.commandTarget[i].name+" engaging "+this.commandTarget[i].target.name)}
            worldScripts.GWcontrolpanel.setUnitPanel()
            }
    }
    
    
    
    
    this.locateCommandTarget = function()
    
    { this.commandTarget = system.shipsWithRole(missionVariables.unitSelection)}
    
    
    this.setSpecialPanel = function()
    {   player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
        player.ship.awardEquipment("EQ_UNDO_MINE")
        player.ship.awardEquipment("EQ_UNDO_MINE")
        player.ship.awardEquipment("EQ_UNIT_HYPERSPACE_MINE")
        missionVariables.unitSelection = null
       }
    
    
    
        
    
    Scripts/GWcontrolpanel.js
    this.name               = "GWcontrolpanel";
    this.author               = "Ramirez";
    this.copyright            = "2011";
    this.description         = "Script for setting up command panel";
    this.version            = "1.0";
                  
                   
    this.activateControlPanel = function()
    
    {player.ship.GWcontrolpanel = true
    this.storeMissileArray = player.ship.missiles;
    this.initialisePanel()
    player.commsMessage("Comms channel opened")}
    
    this.deactivateControlPanel = function()
    {player.ship.GWcontrolpanel = false
    player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
    player.commsMessage("Comms channel closed")
    for(restoreCounter = 0;restoreCounter<this.storeMissileArray.length;restoreCounter++)
    {player.ship.awardEquipment(this.storeMissileArray[restoreCounter].equipmentKey);}
    }
    
    this.initialisePanel = function()
    {   player.ship.awardEquipment("EQ_MISSILE_REMOVAL")  
        player.ship.awardEquipment("EQ_UNIT_1_MINE")
        player.ship.awardEquipment("EQ_UNIT_2_MINE")
        player.ship.awardEquipment("EQ_UNIT_3_MINE")
        player.ship.awardEquipment("EQ_UNIT_4_MINE")
        player.ship.awardEquipment("EQ_UNIT_ALL_MINE")
        missionVariables.unitSelection = null}
    
    this.setUnitPanel = function()
    {   player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
        player.ship.awardEquipment("EQ_UNIT_1_MINE")
        player.ship.awardEquipment("EQ_UNIT_1_MINE")
        player.ship.awardEquipment("EQ_UNIT_2_MINE")
        player.ship.awardEquipment("EQ_UNIT_3_MINE")
        player.ship.awardEquipment("EQ_UNIT_4_MINE")
    player.ship.awardEquipment("EQ_UNIT_ALL_MINE")
    
        missionVariables.unitSelection = null}
    	
    this.setCommandPanel = function()
    {   player.ship.awardEquipment("EQ_MISSILE_REMOVAL")
        player.ship.awardEquipment("EQ_UNDO_MINE")
        player.ship.awardEquipment("EQ_UNDO_MINE")
        player.ship.awardEquipment("EQ_SWEEP_MINE")
        player.ship.awardEquipment("EQ_HOLD_MINE")
        player.ship.awardEquipment("EQ_REGROUP_MINE")
        player.ship.awardEquipment("EQ_ENGAGE_MINE")
    }
    Scripts/GWendgame.js
    this.name               = "GWendgame";
    this.author               = "Ramirez";
    this.copyright            = "2011";
    this.description         = "Worldscript for Resistance Commander endgame";
    this.version            = "0.1";
                  
                   
    this.missionScreenOpportunity = function()
    {
        if(this.missing)
        {
            mission.runScreen({title: "Resistance Commander", message: this.missing, background: "GW_backdrop.png"});
            delete this.missing;
        }
    	
    	if(player.ship.docked) this.missionScreens();
    	
    }
    
    this.shipDockedWithStation = function()
    
    {	if(this.GWTimer)
    	{if(this.GW_count < 10)
    	this.GWTimer.stop()
    	delete this.GWTimer}}
    
    
    
    this.missionScreens = function()
    
    {	if(guiScreen == "GUI_SCREEN_MISSION" || !player.ship.docked) return;
    
    	
    	if(missionVariables.GW_mission == "NONE_SET" && missionVariables.GW_bluefor_morale > 99999999)
    	
    	{	if(system.ID == 221)
    		{mission.runScreen({title: "Resistance Command", messageKey: "GW_endgame_1A", background: "GW_backdrop.png"})
    		missionVariables.GW_mission = "ENDGAME_1A"
    		mission.setInstructionsKey("GW_endgame_1A_brief")
    		return;}
    	else
    		{mission.runScreen({title: "Resistance Command", messageKey: "GW_endgame_0"})
    		missionVariables.GW_mission = "ENDGAME_0"
    		mission.setInstructionsKey("GW_endgame_0_brief")
    		return;}
    	}
    	
    	if(player.ship.dockedStation.hasRole("GW-behemoth"))
    	{
    	if(missionVariables.GW_mission == "ENDGAME_1A")
    		{	  mission.runScreen({title: "Operation ENVOY: Briefing", messageKey: "GW_endgame_1B", choicesKey: "GW_continue_choices", background: "GW_backdrop.png"},
    				function(choice)
    				{if(choice == "GW_continue")
    			    {mission.runScreen({title: "Operation ENVOY: Briefing", messageKey: "GW_endgame_1C", background: "GW_backdrop.png"});
    			    missionVariables.GW_mission = "ENDGAME_1C"
    				mission.setInstructionsKey("GW_endgame_1C_brief")
    				missionVariables.GW_endgame_kills = 0}
                        });			
    		
    		}			
    	
    	if(missionVariables.GW_mission == "ENDGAME_1D") //to be called when mines are destroyed - see target script
    			{mission.runScreen({title: "Operation ENVOY: Debriefing", messageKey: "GW_endgame_1E"})
    			missionVariables.GW_mission = "ENDGAME_1E"
    			mission.setInstructionsKey("GW_endgame_1E_brief")
    			missionVariables.GW_endgame_kills = null}
    		
    	if(missionVariables.GW_mission == "ENDGAME_1F")
    			{mission.runScreen({title: "Operation ENVOY: Briefing", messageKey: "GW_endgame_2A", choicesKey: "GW_continue_choices"},
    			function(choice)
    			{if(choice == "GW_continue")
    			{mission.runScreen({title: "Operation ENVOY: Briefing", background: "map.png", messageKey: "GW_endgame_2B"});
    			missionVariables.GW_mission = "ENDGAME_2B"}
    			});
    			}
    		}
    }
    
    
    this.shipWillLaunchFromStation = function()
    {
    	
    	
    	if(missionVariables.GW_mission == "ENDGAME_1A" && system.ID == 221)
    		{if(system.countShipsWithRole("GW-behemoth") == 0)
    				{system.legacy_addSystemShips("GW-behemoth", 1, 0.9)
    				system.legacy_addSystemShips("GW-behemoth-biarra", 1, 0.9)
    				system.legacy_addSystemShips("GW-behemoth-solaerin", 1, 0.9)}	
    		}
    	
    	if(missionVariables.GW_mission == "ENDGAME_1E" || missionVariables.GW_mission == "ENDGAME_2B")
    	{
    		if(!this.GWTimer)
    		{this.GWTimer = new Timer(this, this.GWreply, null, 1)
    		this.GW_count = 0}
    		
    		else
    		{this.GWTimer.start();}
    		
    	}
    	
    	if(missionVariables.GW_mission == "ENDGAME_2B")
    	   
    	{	if(system.ID == 189)
    		{	if(system.shipsWithRole("GW-astrofactory") == 0)
    				{system.legacy_addShipsAtPrecisely("GW-astrofactory", 1, "pwm", [-36055, 60672, 444676])}
    			if(system.shipsWithRole("GW-behemoth-biarra") == 0)
    				{system.legacy_addSystemShips("GW-behemoth-biarra", 1, 0.0)
    				system.legacy_addSystemShips("GW-behemoth-solaerin", 1, 0.0)}						
    				
    			if(!this.teleport)	
    			{var behemoth = system.shipsWithRole("GW-behemoth")[0]
    			behemoth.position = [39033, -40064, 175267]
    			var biarra = system.shipsWithRole("GW-behemoth-biarra")[0]
    			var solaerin = system.shipsWithRole("GW-behemoth-solaerin")[0]
    			biarra.position = behemoth.position.add([0,10000,0])
    			solaerin.position = behemoth.position.add([0,-10000,0])
    			player.ship.position = behemoth.position.add([0,0,500])
    			player.ship.orientation = behemoth.orientation
    			this.teleport = "true"}
    			
    		
    		}
    	   
    	   }
    	
    	
    }
    
    
    
    this.shipExitedWitchspace = function()
    {
    	
    	if(missionVariables.GW_mission == "ENDGAME_1C" && system.ID == 159 ) // Laquused
    	{
    		
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, 0, 70000], 2500)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, 5000, 70000], 2500)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, -5000, 70000], 2500)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, -10000, 70000], 2500)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, 10000, 70000], 2500)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, -15000, 70000], 2000)
    	system.legacy_addShipsWithinRadius("GW-mine", 30, "wpm", [0, 15000, 70000], 2000)
    	system.legacy_addShipsAtPrecisely("GW-bluefor", 10, "wpm", [0, 20000, 70000])
    	
    	if(missionVariables.GW_mission == "ENDGAME_1E")
    	{missionVariables.GW_mission = "ENDGAME_1F"
    	if(system.ID == 189)
    	system.legacy_addShipsAtPrecisely("astrofactory", 1, "pwm", [-36055, 60672, 444676])}
    	
    	
    	if(!this.GWTimer)
    		{this.GWTimer = new Timer(this, this.GWreply, null, 1)
    		this.GW_count = 0}
    		
    		else
    		{
    		this.GWTimer.start();
    		log('timer started')}	
    	}
    	
    	if(missionVariables.GW_mission == "ENDGAME_1E" && system.ID == 189 ) // Riratea
    	{system.legacy_addSystemShips("GW-behemoth-biarra", 1, 0.9)
    	system.legacy_addSystemShips("GW-behemoth-solaerin", 5, 0.9)}
    		
    }
    
    
    this.GWreply = function()
    {	++this.GW_count
    	//log(this.GW_count)
    	
    	if(missionVariables.GW_mission == "ENDGAME_1C")
    		{	if(this.GW_count == 10)
    			player.commsMessage("Resistance Command: The minefield should be about 60 clicks ahead, towards the planet.", 8)
    			if(this.GW_count == 300)
    			player.commsMessage("Resistance Command: Hurry up, Commander.  We need the minefield cleared so the fleet can exit witchspace safely.", 8)
    		}
    	if(missionVariables.GW_mission == "ENDGAME_1D")
    		{player.commsMessage("Resistance Command: OK, that should be enough.  The fleet will be arriving at the witchpoint shortly. Rendezvous with the flagship.", 8)
    		system.legacy_addSystemShips("GW-behemoth", 1, 0.0)
    		system.legacy_addSystemShips("GW-behemoth-ceused", 1, 0.0)
    		system.legacy_addSystemShips("GW-behemoth-solaerin", 1, 0.0)
    		this.GWTimer.stop()
    		delete this.GWTimer
    		}
    	
    	
    	
    	
    	if(missionVariables.GW_mission == "ENDGAME_xx")
    	
    	
    	
    	
    		{	
    		
    		if(this.GW_count == 10)
    		behemoth.commsMessage("Attention all ships, prepare for hyperspace.")
    		if(this.GW_count == 20)
    		behemoth.commsMessage("Engaging witchdrive...")
    		if(this.GW_count == 25)
    		{behemoth.exitSystem(159)
    		this.GWTimer.stop()
    		delete this.GWTimer}
    		}
    	if(missionVariables.GW_mission == "ENDGAME_1E")
    		{
    		var behemoth = system.shipsWithRole("GW-behemoth")[0]
    		var solaerin = system.shipsWithRole("GW-behemeoth-solaerin")[0]
    		var biarra = system.shipsWithRole("GW-behemoth-biarra")[0]
    		if(this.GW_count == 10)
    		{behemoth.commsMessage("All ships, set a course for Riratea.")
    		log('behemoth comms message')}
    		if(this.GW_count == 20)
    		behemoth.commsMessage("Engaging witchdrive...")
    		if(this.GW_count == 25)
    		behemoth.exitSystem(189) //Riratea
    		if(this.GW_count == 29)
    		solaerin.exitSystem(189)
    		if(this.GW_count == 34)
    		{biarra.exitSystem(189)
    		this.GWTimer.stop()
    		delete this.GWTimer}
    		}
    		
    		
    		if(missionVariables.GW_mission == "ENDGAME_2B")
    		{
    		var behemoth = system.shipsWithRole("GW-behemoth")[0]
    		if(this.GW_count == 20)
    		behemoth.commsMessage("ANCHOR, BAJA, proceed to the astrofactory.  Watch out for enemy units.")
    		if(this.GW_count == 35)
    		{player.commsMessage("Roger MAGIC, we're beginning our approach")
    		//behemoth.launchShip("GW-transporter")
    		}
    		if(this.GW_count == 50)
    		behemoth.commsMessage("ROULETTE-1, scanner trace at 50 clicks.  Please investigate.")
    		if(this.GW_count == 57)
    		player.commsMessage("Roger MAGIC, please send coordinates.")
    		if(this.GW_count == 65)
    		{behemoth.commsMessage("ROULETTE-1, sending data.  Target designated as beacon-X.")
    		system.legacy_addSystemShips("GW-censor-leader", 1, 0.5)
    		system.legacy_addSystemShips("GW-quaestor", 4, 0.5)}
    		if(this.GW_count == 72)
    		player.commsMessage("Copy MAGIC, compass set and locked, investigating now.")
    		
    		if(missionVariables.GW_mission == "ENDGAME_EVACUATE")
    		{this.GW_count = 0
    		player.commsMessage("MAGIC, this is ANCHOR.  We're in position.  The first transport is launching now")}
    		
    		if(this.GW_count == "xxx")
    		{player.commsMessage("dfdnvestigate.")
    		this.GWTimer.stop()
    		delete this.GWTimer}
    		}
    		
    }
    
    Scripts/GWmain.js
    this.name               = "GWmain";
    this.author               = "Ramirez";
    this.copyright            = "September 2011";
    this.description         = "World script for Guerilla War";
    this.version            = "0.4";
    
    this.startUp = function()
    {
    	 // search for pressence of dependent oxps
        if (!worldScripts["dictators.js"])
        {
            this.missing = "Dictators";
        }
        //if (!worldScripts["behemoth"])
        //{
        //    if (this.missing) this.missing += ", Behemoth";
        //    else this.missing = "Behemoth";
       // }
      
        if (this.missing)
        {
            this.missing = " The following OXP(s) are missing: "+this.missing+". Please install them and restart Oolite. ";
            this.missing += "They are essentional for the correct functioning of Resistance Commander.";
        }
    
    	
    	
    }
    
    this.defineAvailableModels = function()
    
    { this.availableModels = new Array()
    	
    	availableModels[0] = "fuel reprocessing facility"
    	availableModels[1] = "area defence cannon"
    	availableModels[2] = "hyperspace jumpgate"
    	availableModels[3] = "communications satellite"
    	availableModels[4] = "early warning station"
    	//availableModels[5] = "trading post"
    	
    	if(worldScripts.communist_population)
    	{availableModels.push('Solar Research Laboratory')
    	availableModels.push('prison facility')
    	availableModels.push('factory')}
    	//if(worldScripts.GRS)
    	//availableModels.push('Buoy Repair Facility')
    	
    	
    	//log(availableModels)	
    }
    	
    	
    this.defineTargetRole = function()
    
    {  
        if(missionVariables.GW_opfor_target_name == "fuel reprocessing facility")
        missionVariables.GW_opfor_target_role = "GW-fuel-processor"
        if(missionVariables.GW_opfor_target_name == "communications satellite")
        missionVariables.GW_opfor_target_role = "GW-comms-station"
        if(missionVariables.GW_opfor_target_name == "area defence cannon")
        missionVariables.GW_opfor_target_role = "GW-cannon-core"
        if(missionVariables.GW_opfor_target_name == "early warning station")
        missionVariables.GW_opfor_target_role = "GW-comms-station"
        if(missionVariables.GW_opfor_target_name == "Rock Hermit")
        missionVariables.GW_opfor_target_role = "GW-rock-hermit"
        if(missionVariables.GW_opfor_target_name == "hyperspace jumpgate")
        missionVariables.GW_opfor_target_role = "GW-gate"
        if(missionVariables.GW_opfor_target_name == "Solar Research Laboratory")
        missionVariables.GW_opfor_target_role = "GW-slapu"
    	if(missionVariables.GW_opfor_target_name == "prison facility")
        missionVariables.GW_opfor_target_role = "GW-prison"
    	if(missionVariables.GW_opfor_target_name == "factory")
        missionVariables.GW_opfor_target_role = "GW-factory"
    	
    	//if(missionVariables.GW_opfor_target_name == "Buoy Repair Facility")
        //missionVariables.GW_opfor_target_role = "GW-GRS"
    	
    	
    	
    }
    	
    	
    this.defineAvailableShips = function()
    
    {	this.availableShips = new Array()
    
    	availableShips[0] = "Mamba Armed Racer"
    	availableShips[1] = "Krait Assault Craft"
    	availableShips[2] = "Gecko Bomber"
    	availableShips[3] = "Moray Gunship"
    
    	//log(availableShips)
    }
    
    this.defineUnitRoleKey = function()
    
    {	if(this.availableShips[this.shipCount] == "Mamba Armed Racer")
    	this.unitRoleKey = "mamba"
    	if(this.availableShips[this.shipCount] == "Krait Assault Craft")
    	this.unitRoleKey = "krait"
    	if(this.availableShips[this.shipCount] == "Gecko Bomber")
    	this.unitRoleKey = "gecko"
    	if(this.availableShips[this.shipCount] == "Moray Gunship")
    	this.unitRoleKey = "moray"
    }
    
    
    
    this.activated = function()
    
    {	if(missionVariables.GW_mission != "NONE_SET")
    	    {	if(player.ship.GWcontrolpanel == true)
    			worldScripts.GWcontrolpanel.deactivateControlPanel()
    			else
    			worldScripts.GWcontrolpanel.activateControlPanel()		
    	    }
    	
    	else
    	player.consoleMessage("Negative, squadron not active")
    }
    
    this.shipDockedWithStation = function()
    
    {		if(player.ship.GWcontrolpanel == true)
    		{worldScripts.GWcontrolpanel.deactivateControlPanel()}
    	
    	this.removeActiveUnits()
    }
    
    
    this.missionScreenOpportunity = function ()
    {
        if(this.missing)
        {
            mission.runScreen({title: "Resistance Commander", message: this.missing, background: "GW_backdrop.png"});
            delete this.missing;
        }
    	
    	
    }
    
    
    
    this.guiScreenChanged = function()
    
    {	if(!player.ship.docked)
    	return;
    
    	if(player.ship.dockedStation.isMainStation && galaxyNumber == 4)
    		{if(system.ID == 221 || system.ID == 66 || system.ID == 98 || system.ID == 136 || system.ID == 200)
    			{if(guiScreen == "GUI_SCREEN_SYSTEM_DATA")
    			this.missionScreens()}}
    			
    	if(player.ship.dockedStation.hasRole("GW-behemoth"))
    		{if(guiScreen == "GUI_SCREEN_SYSTEM_DATA")
    			this.missionScreens()}
    
    }
    
    
    
    this.checkUnitDistance = function()
    
    {
        this.GWunits = system.shipsWithRole("GWunit")
        for (var i=0; i<this.GWunits.length; i++)
            {    
            this.playerDistance = this.GWunits[i].position.distanceTo(player.ship.position);
            if(this.playerDistance < 20000)
            return;    
            else
                {
                player.consoleMessage('WARNING: '+GWunits[i].displayName+' failed to hyperspace', 10)
                missionVariables.GW_mission_points -= 50    
                if(GWunits[i].primaryRole.indexOf(1) != -1)
                missionVariables.GW_unit1_status = "Inactive"
                if(GWunits[i].primaryRole.indexOf(2) != -1)
                missionVariables.GW_unit2_status = "Inactive"
                if(GWunits[i].primaryRole.indexOf(3) != -1)
                missionVariables.GW_unit3_status = "Inactive"
                if(GWunits[i].primaryRole.indexOf(4) != -1)
                missionVariables.GW_unit4_status = "Inactive"  
                }
            worldScripts.GWunitstatus.updateUnitStatus()
            }   
    }
    
    this.spawnActiveUnits = function()
    {  	if(missionVariables.GW_unit1_status == "Active")
    	system.addShips([missionVariables.GW_unit1_role], 1, player.ship.position, 10000)
        if(missionVariables.GW_unit2_status == "Active")
        system.addShips([missionVariables.GW_unit2_role], 1, player.ship.position, 10000)
        if(missionVariables.GW_unit3_status == "Active")
        system.addShips([missionVariables.GW_unit3_role], 1, player.ship.position, 10000)
        if(missionVariables.GW_unit4_status == "Active")
        system.addShips([missionVariables.GW_unit4_role], 1, player.ship.position, 10000)
    }
    
    
    this.removeActiveUnits = function()
    {   
        var activeUnits = system.shipsWithRole("GWunit")
    	
    	for (var i = 0; i<activeUnits.length; i++)
    	{activeUnits[i].remove(true)}
    }
    
    this.unitResponse = function()
    {   
        if(this.count == this.commandTarget.length -1)
        {this.responseTimer.stop();}
        if(this.count < this.commandTarget.length - 1)
            {++this.count
            if(missionVariables.unitOrder == "regroup")
    	    {this.commandTarget[this.count].switchAI("GW-wingmanAI.plist")
    	    this.commandTarget[this.count].commsMessage("Roger, returning to formation.")}
    		if(missionVariables.unitOrder == "hold")
    	    {this.commandTarget[this.count].switchAI("GW-holdAI.plist")
    	    this.commandTarget[this.count].commsMessage("Roger, holding position.")}
            if(missionVariables.unitOrder == "engage")
    	    {this.commandTarget[this.count].target = null
    	    this.commandTarget[this.count].target = player.ship.target
    	    this.commandTarget[this.count].switchAI("GW-interceptAI.plist")
    	    this.commandTarget[this.count].commsMessage(expandDescription("[GW_engage_message]"+player.ship.target.name+"."))
    		this.commandTarget[this.count].fireMissile()}
    		if(missionVariables.unitOrder == "sweep")
    	    {this.commandTarget[this.count].switchAI("GW-sweepAI.plist")
    	    this.commandTarget[this.count].commsMessage(expandDescription("[GW_sweep_message]"))}
    		if(missionVariables.unitOrder == "hyperspace")
    		{this.playerDistance = this.commandTarget[this.count].position.distanceTo(player.ship.position)
    		if(this.playerDistance < 20000)
    		this.commandTarget[this.count].commsMessage(expandDescription("[GW_distanceOK_message]"));
    		else
    		this.commandTarget[this.count].commsMessage(expandDescription("[GW_distanceBAD_message]"))}
    		if(missionVariables.unitOrder == "checkin")
    		this.commandTarget[this.count].commsMessage(expandDescription("[GW_checkin_message]"))}
    		if(this.count == this.commandTarget.length)
            {this.responseTimer.stop();} 
    }
    
    
    
    this.issueOrder = function()
    {
    //log('timer set up')
    this.responseTimer = new Timer(this, this.unitResponse, null, 1)
    this.count = -1
    this.responseTimer.start();
    this.locateCommandTarget()
    worldScripts.GWcontrolpanel.setUnitPanel()}
    
    
    this.checkInUnits = function()
    {missionVariables.unitSelection = "GWunit"
    missionVariables.unitOrder = "checkin"
    this.responseTimer = new Timer(this, this.unitResponse, 3, 1)
    this.count = -1
    this.responseTimer.start();
    this.locateCommandTarget()}
    
    this.locateCommandTarget = function()
    {this.commandTarget = system.shipsWithRole(missionVariables.unitSelection)}
    
    
    
    
    	
    this.missionScreens = function()
    {	
        
    	worldScripts.GWpromotions.checkForPromotions()
    	
    	if(missionVariables.GW_status == null)
            {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_welcome",  choicesKey: "GW_accept_choices"}, this.choiceEvaluation);
            missionVariables.GW_status = "COMMAND_OFFERED"}
        
    	if(missionVariables.GW_status == "ACTIVE")
    	    {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_menu",  choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
    	    missionVariables.GW_menu_page = "page1"}
    
    	worldScripts.GWpromotions.checkForPromotions()
    	worldScripts.GWpromotions.runPromotionScreen()
    }
    
    
    this.updateMoraleStats = function()
    {
    	this.GW_bluefor_ratio = (missionVariables.GW_bluefor_morale/2000)*50
    	this.GW_opfor_ratio = (missionVariables.GW_opfor_morale/2000)*50
    	missionVariables.GW_bluefor_graph = "-"
    	missionVariables.GW_opfor_graph = "-"
    
    	for (var i=1; i<this.GW_bluefor_ratio; i++)
    		{missionVariables.GW_bluefor_graph = missionVariables.GW_bluefor_graph + "-"}
    
    	for (var j=0; j<this.GW_opfor_ratio; j++)
    		{missionVariables.GW_opfor_graph = missionVariables.GW_opfor_graph + "-"}
    }
    
    
    this.defineMissionLocationNo = function()
    {  var nearbySystems = SystemInfo.systemsInRange(15)
    	var systemSelection = nearbySystems[Math.floor(Math.random()*nearbySystems.length)]
    	missionVariables.GW_mission_location_no = systemSelection.systemID
    	if(missionVariables.GW_mission_location_no == system.ID)
    	this.defineMissionLocationNo()}
    
    this.defineMissionLocationName = function()
    {missionVariables.GW_mission_location_name = System.systemNameForID([missionVariables.GW_mission_location_no])}
    
    
    this.GW_defendOrder = function()
    {   mission.runScreen({messageKey: "GW_mission_defend"})
        missionVariables.GW_mission = "DEFEND_RUNNING"
    	missionVariables.GW_mission_location_no = system.ID
        mission.setInstructionsKey("GW_mission_defend_instructions")
        missionVariables.GW_small_opfor_no = (Math.floor(Math.random()*5) + 10)
    	missionVariables.GW_medium_opfor_no = (Math.floor(Math.random()*2) + 1)}
        
    this.GW_ambushOrder = function()
    {   this.defineMissionLocationNo()
        this.defineMissionLocationName()
    	missionVariables.GW_transport_opfor_no = (Math.floor(Math.random()*3)+3);
    	missionVariables.GW_medium_opfor_no = (Math.floor(Math.random()*2));
    	missionVariables.GW_transport_opfor_kills = 0
    	mission.markSystem([missionVariables.GW_mission_location_no])
        mission.runScreen({messageKey: "GW_mission_ambush"})
        missionVariables.GW_mission = "AMBUSH_RUNNING"
        mission.setInstructionsKey("GW_mission_ambush_instructions")}
        
    this.GW_assassinateOrder = function()
    {   this.defineMissionLocationNo()
        this.defineMissionLocationName()
    	this.defineAvailableModels()
    	missionVariables.GW_opfor_target_name = this.availableModels[Math.floor(Math.random()*this.availableModels.length)]
    	this.defineTargetRole()
    	missionVariables.GW_mission_vip_name = expandDescription("[GW_high_rank]") + " " + expandDescription("[nom1]")
    	mission.markSystem([missionVariables.GW_mission_location_no])
    	missionVariables.GW_small_opfor_no = (Math.floor(Math.random()*5)+7);
        mission.runScreen({messageKey: "GW_mission_assassinate"})
        missionVariables.GW_mission = "ASSASSINATE_RUNNING"
        mission.setInstructionsKey("GW_mission_assassinate_instructions")}   
    
    this.GW_assaultOrder = function()
    {   this.defineMissionLocationNo()
        this.defineMissionLocationName()
    	mission.markSystem([missionVariables.GW_mission_location_no])
    	this.defineAvailableModels()
    	missionVariables.GW_opfor_target_name = this.availableModels[Math.floor(Math.random()*this.availableModels.length)]
        this.defineTargetRole()
        missionVariables.GW_medium_opfor_no = (Math.floor(Math.random()*2)+1);
        missionVariables.GW_small_opfor_no = (Math.floor(Math.random()*1)+5);
        mission.runScreen({messageKey: "GW_mission_assault"})
        missionVariables.GW_mission = "ASSAULT_RUNNING"
        mission.setInstructionsKey("GW_mission_assault_instructions")}
        
    this.GW_clearOrder = function()
    {   this.defineMissionLocationNo()
        this.defineMissionLocationName()
    	this.defineAvailableModels()
    	missionVariables.GW_opfor_target_name = this.availableModels[Math.floor(Math.random()*this.availableModels.length)]
    	this.defineTargetRole()
    	mission.markSystem([missionVariables.GW_mission_location_no])
    	missionVariables.GW_small_opfor_no = (Math.floor(Math.random()*10)+15);
    	missionVariables.GW_medium_opfor_no = (Math.floor(Math.random()*2)+1);
        mission.runScreen({messageKey: "GW_mission_clear"})
        missionVariables.GW_mission = "CLEAR_RUNNING"
        mission.setInstructionsKey("GW_mission_clear_instructions")}
    	
    this.GW_assistOrder = function()
    {   this.defineMissionLocationNo()
        this.defineMissionLocationName()
    	mission.markSystem([missionVariables.GW_mission_location_no])
    	missionVariables.GW_small_opfor_no = (Math.floor(Math.random()*10)+20);
    	missionVariables.GW_medium_opfor_no = (Math.floor(Math.random()*2)+3);
    	missionVariables.GW_large_opfor_no = (Math.floor(Math.random()*1));
        mission.runScreen({messageKey: "GW_mission_assist"})
        missionVariables.GW_mission = "ASSIST_RUNNING"
        mission.setInstructionsKey("GW_mission_assist_instructions")}
    	
    
    this.reset_GW_unit1 = function()
    {missionVariables.GW_unit1_name = randomName().charAt(0)+". "+randomName()
    missionVariables.GW_unit1_race = randomInhabitantsDescription(false)
    missionVariables.GW_unit1_kills = 0
    missionVariables.GW_unit1_missions = 0
    missionVariables.GW_unit1_status = "Active"
    missionVariables.GW_unit1_rank_no = 1
    missionVariables.GW_unit1_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit1_rank_no+"]")
    missionVariables.GW_unit1_history = clock.days + " - enlisted into "+ missionVariables.GW_player_squadron}
    
    this.reset_GW_unit2 = function()
    {missionVariables.GW_unit2_name = randomName().charAt(0)+". "+randomName()
    missionVariables.GW_unit2_race = randomInhabitantsDescription(false)
    missionVariables.GW_unit2_kills = 0
    missionVariables.GW_unit2_missions = 0
    missionVariables.GW_unit2_status = "Active"
    missionVariables.GW_unit2_rank_no = 1
    missionVariables.GW_unit2_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit2_rank_no+"]")
    missionVariables.GW_unit2_history = clock.days + " - enlisted into "+ missionVariables.GW_player_squadron}
    
    this.reset_GW_unit3 = function()
    {missionVariables.GW_unit3_name = randomName().charAt(0)+". "+randomName()
    missionVariables.GW_unit3_race = randomInhabitantsDescription(false)
    missionVariables.GW_unit3_kills = 0
    missionVariables.GW_unit3_missions = 0
    missionVariables.GW_unit3_status = "Active"
    missionVariables.GW_unit3_rank_no = 1
    missionVariables.GW_unit3_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit3_rank_no+"]")
    missionVariables.GW_unit3_history = clock.days + " - enlisted into "+ missionVariables.GW_player_squadron}
    
    this.reset_GW_unit4 = function()
    {missionVariables.GW_unit4_name = randomName().charAt(0)+". "+randomName()
    missionVariables.GW_unit4_race = randomInhabitantsDescription(false)
    missionVariables.GW_unit4_kills = 0
    missionVariables.GW_unit4_missions = 0
    missionVariables.GW_unit4_status = "Active"
    missionVariables.GW_unit4_rank_no = 1
    missionVariables.GW_unit4_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit4_rank_no+"]")
    missionVariables.GW_unit4_history = clock.days + " - enlisted into "+ missionVariables.GW_player_squadron}
    
    this.initialiseUnits = function()
    {this.reset_GW_unit1()
    this.reset_GW_unit2()
    this.reset_GW_unit3()
    this.reset_GW_unit4()}
    
    this.resetUnitRoles = function()
    {missionVariables.GW_unit1_role = "GW_unit1_mamba"
    missionVariables.GW_unit2_role = "GW_unit2_mamba"
    missionVariables.GW_unit3_role = "GW_unit3_mamba"
    missionVariables.GW_unit4_role = "GW_unit4_mamba"
    missionVariables.GW_unit1_shipname = "Mamba Armed Racer"
    missionVariables.GW_unit2_shipname = "Mamba Armed Racer"
    missionVariables.GW_unit3_shipname = "Mamba Armed Racer"
    missionVariables.GW_unit4_shipname = "Mamba Armed Racer"}
    
    this.updateMissionStats = function()
    {mission.unmarkSystem(missionVariables.GW_mission_location_no)
    ++missionVariables.GW_unit1_missions
    ++missionVariables.GW_unit2_missions
    ++missionVariables.GW_unit3_missions
    ++missionVariables.GW_unit4_missions
    ++missionVariables.GW_player_missions
    missionVariables.GW_opfor_destroyed += missionVariables.GW_mission_kills
    missionVariables.GW_bluefor_casualties += missionVariables.GW_mission_losses
    missionVariables.GW_mission_kills = null
    missionVariables.GW_mission_losses = null
    missionVariables.GW_mission_points = null
    mission.setInstructionsKey(null)
    missionVariables.GW_mission_location_no = null
    missionVariables.GW_mission_location_name = null
    missionVariables.GW_mission_opfor_target_role = null
    missionVariables.GW_mission_opfor_target_name = null
    missionVariables.GW_mission_vip_name = null
    missionVariables.GW_transport_opfor_kills = null
    missionVariables.GW_small_opfor_no = null
    missionVariables.GW_medium_opfor_no = null
    }
    
    this.choiceEvaluation = function(choice)
    
        {
            
        if(missionVariables.GW_status == "COMMAND_OFFERED")
        
        {   if(choice == "GW_accept")
                {   if(player.score < 128)
                        {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_reject_1"});
                        missionVariables.GW_status = "DECLINED"}
                    if(player.score > 127 && player.score < 1000)
                        {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_reject_2"});
                        missionVariables.GW_status = "DECLINED"}      
                    if(player.score >= 1000)
                        {missionVariables.GW_player_squadron = expandDescription("[GW_squadron_name]")
    					mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_accept", choicesKey: "GW_continue_choices"}, this.choiceEvaluation);
                        missionVariables.GW_status = "COMMAND_ACCEPTED"
    					this.initialiseUnits()
    					this.resetUnitRoles()}
        
            if(choice == "GW_decline")
                        {  mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_decline"}, this.choiceEvaluation);
                        missionVariables.GW_status = "DECLINED"}   
                
            }   
        }
        
        if(missionVariables.GW_status == "COMMAND_ACCEPTED")
            {if(choice == "GW_continue")
                {  mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_menu",  choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
                    missionVariables.GW_status = "ACTIVE"
                    missionVariables.GW_mission = "NONE_SET"
                    missionVariables.GW_menu_page = "page1"
                    missionVariables.GW_loadout = "FALSE"
                    missionVariables.GW_personnel = "FALSE"
    		missionVariables.GW_player_kills = 0
    		missionVariables.GW_player_missions = 0
    		missionVariables.GW_opfor_morale = 1000
    		missionVariables.GW_bluefor_morale = 1000
    		missionVariables.GW_opfor_destroyed = 0
    		missionVariables.GW_bluefor_casualties = 0
    		this.updateMoraleStats()
    		player.ship.awardEquipment("EQ_GW_CONTROL_PANEL")
    		player.ship.awardEquipment("EQ_MULTI_TARGET")
    }   
                }
          
        if(missionVariables.GW_menu_page == "page1")
        
        {   if(choice == "GW_A_personnel")
        
            {   if(missionVariables.GW_personnel == "FALSE")
                
                    {mission.runScreen({title: "Personnel Files", background: "GW_backdrop.png", messageKey: "GW_personnel_welcome", choicesKey: "GW_continue_choices"}, this.choiceEvaluation);
                    worldScripts.GWunitstatus.updateUnitStatus()
                    missionVariables.GW_personnel_page = "page0"
                    missionVariables.GW_personnel = null}
                  
                else
                {mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_1", background: "GW_"+[missionVariables.GW_unit1_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                missionVariables.GW_personnel_page = "page1"
                missionVariables.GW_menu_page = null}
            } 
            
            if(choice == "GW_B_loadout")
            
    		{	this.defineAvailableShips()
                
                if(missionVariables.GW_loadout == "FALSE")
                
                    {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_welcome", choicesKey: "GW_continue_choices"}, this.choiceEvaluation); 
                    missionVariables.GW_loadout_page = "page0"
                    missionVariables.GW_loadout = null
    				this.shipCount = 0}
    		
                else
                
                {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_1",  model: [missionVariables.GW_unit1_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    			mission.addMessageText(expandMissionText(missionVariables.GW_unit1_shipname+" specs"))
                mission.displayModel.position=[50,40,250]
    			missionVariables.GW_loadout_page = "page1"
                missionVariables.GW_menu_page = null
    			this.shipCount = 0}
                
            if(choice == "GW_E_exit")
    		{missionVariables.GW_menu_page = null
            return;}
    		}
    
    	if(choice == "GW_D_ops")
            
    		{missionVariables.GW_ops_page = "page1"
    		mission.runScreen({title: "Resistance Command", background: "GW_opsroom.png", messageKey: "GW_ops_room", choicesKey: "GW_continue_choices"}, this.choiceEvaluation); 
            missionVariables.GW_menu_page = null}
        
        if(choice == "GW_C_mission")
    
            {
    			if(missionVariables.GW_mission.indexOf("SUCCESS") > 1)
    			{	if(missionVariables.GW_mission == "DEFEND_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_defend_debrief"})
    				if(missionVariables.GW_mission == "AMBUSH_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_ambush_debrief"})
    				if(missionVariables.GW_mission == "ASSASSINATE_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_assassinate_debrief"})
    				if(missionVariables.GW_mission == "ASSIST_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_assist_debrief"})
    				if(missionVariables.GW_mission == "CLEAR_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_clear_debrief"})
    				if(missionVariables.GW_mission == "ASSAULT_SUCCESS")
    				mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_assault_debrief"});
    				missionVariables.GW_mission = "NONE_SET"
    				mission.addMessageText(expandMissionText("GW_mission_stats"))
    				missionVariables.GW_bluefor_morale += missionVariables.GW_mission_points
    				missionVariables.GW_opfor_morale -= missionVariables.GW_mission_points
    				this.updateMissionStats()
    				this.updateMoraleStats()
    				return;
    			}
    				
    				
    			if(missionVariables.GW_mission == "NONE_SET")
                    {missionVariables.GW_mission_kills = 0
    				missionVariables.GW_mission_losses = 0
    				missionVariables.GW_mission_points = 0
    				
    				if(missionVariables.GW_bluefor_morale > 1800)
    				{mission.runScreen({title: "Mission Instructions", background: "GW_backdrop.png", messageKey: "GW_mission_victory"})
    				this.removeGW()
    				return;}
    				
    				if(missionVariables.GW_opfor_morale > 1800)
    				{mission.runScreen({title: "Mission Instructions", background: "GW_backdrop.png", messageKey: "GW_mission_flee"})
    				this.removeGW()
    				return;}
    			
    				
    				else
    				this.GW_selectMission = null	
    				this.GW_selectMission = (Math.floor(Math.random()*10))
    				
    				//this.GW_selectMission = 5
                    
                    if(this.GW_selectMission == 0)
                    this.GW_defendOrder()
                    
                    if(this.GW_selectMission > 0 && this.GW_selectMission < 3)
                    this.GW_assaultOrder()
    				
                    if(this.GW_selectMission > 8)
    				this.GW_assassinateOrder()
                    
                    if(this.GW_selectMission > 2 && this.GW_selectMission < 5)
                    this.GW_ambushOrder()
                    
                    if(this.GW_selectMission > 4 && this.GW_selectMission < 7)
                    this.GW_clearOrder()
    				
    				if(this.GW_selectMission > 6 && this.GW_selectMission < 9)
                    this.GW_assistOrder()
    				return;
    				}
    			
    			if(missionVariables.GW_mission.indexOf("RUNNING") > 1)
    				{mission.runScreen({title: "Mission Instructions", background: "GW_backdrop.png", messageKey: "GW_mission_defer", choicesKey: "GW_defer_choices"}, this.choiceEvaluation);
    				missionVariables.GW_commander_page = "page1"
    	            missionVariables.GW_menu_page = null
    				return;}
    			
    			if(missionVariables.GW_mission.indexOf("ENDGAME") > -1)
    				{mission.runScreen({title: "Mission Instructions", background: "GW_backdrop.png", messageKey: "GW_mission_defer"});
    				missionVariables.GW_commander_page = "page1"
    	            missionVariables.GW_menu_page = null
    				return;}
    			
    			if(missionVariables.GW_mission.indexOf("FAILURE") > 1)
    				{mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_failure"})
    				mission.addMessageText(expandMissionText("GW_mission_stats"))
    				missionVariables.GW_mission = "NONE_SET"
    				missionVariables.GW_bluefor_morale += (missionVariables.GW_mission_points - 100)
    				missionVariables.GW_opfor_morale -= (missionVariables.GW_mission_points - 100)
    				this.updateMissionStats()
    				this.updateMoraleStats()
    				missionVariables.GW_commander_page = "page1"
    				missionVariables.GW_menu_page = null}
    		}
        }
         
        if(missionVariables.GW_commander_page)
        
        {	
    	if(choice == "GW_A_continue")
            {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_menu",  choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
            missionVariables.GW_menu_page = "page1"
    		missionVariables.GW_commander_page = null}
    
    	if(choice == "GW_B_abort")
    		{mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_mission_failure"})
    		mission.addMessageText(expandMissionText("GW_mission_stats"))
    		missionVariables.GW_mission = "NONE_SET"
    		missionVariables.GW_bluefor_morale += (missionVariables.GW_mission_points - 100)
    		missionVariables.GW_opfor_morale -= (missionVariables.GW_mission_points - 100)
    		this.updateMissionStats()
    		this.updateMoraleStats()
    		missionVariables.GW_commander_page = "page1"
            missionVariables.GW_menu_page = null}
        }
        
    	if(missionVariables.GW_ops_page)
    
    		{ if(choice == "GW_continue")
            {mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_menu",  choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
            missionVariables.GW_menu_page = "page1"
    		missionVariables.GW_ops_page = null}
    		}
        
        if(missionVariables.GW_personnel_page)    
            
        {   if(choice == "GW_continue")
        
                {mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_1", background: "GW_"+[missionVariables.GW_unit1_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                missionVariables.GW_personnel_page = "page1"
                missionVariables.GW_menu_page = null}
            
            if(choice == "GW_C_exit_personnel")
            
                {missionVariables.GW_personnel_page = null
                mission.runScreen({title: "Menu", messageKey: "GW_menu",  background: "GW_backdrop.png", choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
                missionVariables.GW_personnel_page = null
    			missionVariables.GW_menu_page = "page1"
                worldScripts.GWunitstatus.updateUnitStatus()}
                
            if(choice == "GW_B_replenish_personnel")
            
            {   switch(missionVariables.GW_personnel_page)
                
                {   case "page1":
    
    		    {   if(missionVariables.GW_unit1_status == "Inactive")
                            {this.reset_GW_unit1()}
                            mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_1", background: "GW_"+[missionVariables.GW_unit1_status]+".png",  choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                            break;}
                         
                        case "page2":     
                    
                        {   if(missionVariables.GW_unit2_status == "Inactive")
                            {this.reset_GW_unit2()}
                            mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_2", background: "GW_"+[missionVariables.GW_unit2_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                            break;}
                        
                        case "page3":     
                    
                        {   if(missionVariables.GW_unit3_status == "Inactive")
                            {this.reset_GW_unit3()}
                            mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_3", background: "GW_"+[missionVariables.GW_unit3_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                            break;}
                                
                        case "page4":     
                    
                        {   if(missionVariables.GW_unit4_status == "Inactive")
                            {this.reset_GW_unit4()}
                            mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_4", background: "GW_"+[missionVariables.GW_unit4_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                            break;} 
                }
            }
                      
            if(choice == "GW_A_next_personnel")
            
                {    switch(missionVariables.GW_personnel_page)
                
                    {   case "page1":
    
    					{	mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_2", background: "GW_"+[missionVariables.GW_unit2_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
                            missionVariables.GW_personnel_page = "page2"}
                            break;
                         
                        case "page2":     
                    
                        {   mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_3",  background: "GW_"+[missionVariables.GW_unit3_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
    						missionVariables.GW_personnel_page = "page3"}
                            break;
                        
                        case "page3":     
                    
                        {   mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_4",  background: "GW_"+[missionVariables.GW_unit4_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
    						missionVariables.GW_personnel_page = "page4"}
                            break;
                                
                        case "page4":     
                    
                        {   mission.runScreen({title: "Personnel Files", messageKey: "GW_personnel_1",  background: "GW_"+[missionVariables.GW_unit1_status]+".png", choicesKey: "GW_personnel_choices"}, this.choiceEvaluation);
    						missionVariables.GW_personnel_page = "page1"}
                            break;}            
                    }
        }
        
        if(missionVariables.GW_loadout_page)    
            
        {    
            
            {   if(choice == "GW_continue")
            
                {mission.runScreen({title: "Resistance Command", messageKey: "GW_loadout_1", model: [missionVariables.GW_unit1_role], background: "GW_backdrop.png", choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    			mission.addMessageText(expandMissionText(missionVariables.GW_unit1_shipname+" specs"))
                mission.displayModel.position=[50,40,250]
    			missionVariables.GW_loadout_page = "page1"
                missionVariables.GW_menu_page = null}
            
                
                if(choice == "GW_F_exit_loadout")
                {missionVariables.GW_loadout_page = null
                mission.runScreen({title: "Menu", background: "GW_backdrop.png", messageKey: "GW_menu",  choicesKey: "GW_menu_choices"}, this.choiceEvaluation);
                missionVariables.GW_loadout_page = null
    			missionVariables.GW_menu_page = "page1"
    			missionVariables.GW_switch_loadout = null}
                
                if(choice == "GW_A_next_loadout")
            
                {	
    				switch(missionVariables.GW_loadout_page)
                
                    {   case "page1":
    
    					{	mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_2",  model: [missionVariables.GW_unit2_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
                            missionVariables.GW_loadout_page = "page2"
    						mission.displayModel.position=[50,40,250]
    						mission.addMessageText(expandMissionText(missionVariables.GW_unit2_shipname+" specs"))}
                            break;
                         
                        case "page2":     
                    
                        {   mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_3",  model: [missionVariables.GW_unit3_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    						missionVariables.GW_loadout_page = "page3"
    						mission.displayModel.position=[50,40,250]
                            mission.addMessageText(expandMissionText(missionVariables.GW_unit3_shipname+" specs"))}
    						break;
                        
                        case "page3":     
                    
                        {   mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_4",  model: [missionVariables.GW_unit4_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    						missionVariables.GW_loadout_page = "page4"
    						mission.displayModel.position=[50,40,250]
    						mission.addMessageText(expandMissionText(missionVariables.GW_unit4_shipname+" specs"))}
                            break;
                                
                        case "page4":     
                    
                        {   mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_1",  model: [missionVariables.GW_unit1_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    						missionVariables.GW_loadout_page = "page1"
    						mission.displayModel.position=[50,40,250]
    						mission.addMessageText(expandMissionText(missionVariables.GW_unit1_shipname+" specs"))}
                            break;        
                    }
                }
        
    			
    			if(choice == "GW_B_switch_loadout")
                    
                {	
    				++this.shipCount
    				if(this.shipCount == this.availableShips.length)
    				{this.shipCount = 0}
    				
    				//log(this.shipCount)
    				//log(this.availableShips.length)
    				
    			
    				{			
    						
    						switch(missionVariables.GW_loadout_page)
    								
    						{   case "page1":
    							{
    							missionVariables.GW_unit1_shipname = this.availableShips[this.shipCount]
    							this.defineUnitRoleKey()
    							missionVariables.GW_unit1_role = "GW_unit1_"+[this.unitRoleKey]
    							mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_1",  model: [missionVariables.GW_unit1_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    							mission.displayModel.position=[50,40,250]
    							mission.addMessageText(expandMissionText(missionVariables.GW_unit1_shipname+" specs"))
    							}
    							break;
                    
    							case "page2":
    							{missionVariables.GW_unit2_shipname = this.availableShips[this.shipCount]
    							this.defineUnitRoleKey()
    							missionVariables.GW_unit2_role = "GW_unit2_"+[this.unitRoleKey]
    					        mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_2",  model: [missionVariables.GW_unit2_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    							mission.displayModel.position=[50,40,250]
    							mission.addMessageText(expandMissionText(missionVariables.GW_unit2_shipname+" specs"))
    							}
    					        break;
                    
    						    case "page3":
    					        {missionVariables.GW_unit3_shipname = this.availableShips[this.shipCount]
    							this.defineUnitRoleKey()
    							missionVariables.GW_unit3_role = "GW_unit3_"+[this.unitRoleKey]
    					        mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_3",  model: [missionVariables.GW_unit3_role], choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    							mission.displayModel.position=[50,40,250]
    							mission.addMessageText(expandMissionText(missionVariables.GW_unit3_shipname+" specs"))
    							}
    					        break;
                            
    							case "page4":
    						    {missionVariables.GW_unit4_shipname = this.availableShips[this.shipCount]
    							this.defineUnitRoleKey()
    							missionVariables.GW_unit4_role = "GW_unit4_"+[this.unitRoleKey]
    						    mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_loadout_4",  model: [missionVariables.GW_unit4_role],choicesKey: "GW_loadout_choices"}, this.choiceEvaluation);
    							mission.displayModel.position=[50,40,250]
    							mission.addMessageText(expandMissionText(missionVariables.GW_unit4_shipname+" specs"))
    							}
    						    break;
    						
    					
    					}
    					
    				
    						
    				}
    			}
            }
        }
    }
    
    
    
    
    
    
    
    
    //Ship appearances
    
    this.shipWillLaunchFromStation = function()
    {
    	
    	//system.legacy_addSystemShips("feudal-hunting-lodge", 1, 0.0)
    	//var currentDestination = system.shipsWithRole("player")[0]
    	//var awayDestination = system.shipsWithRole("feudal-hunting-lodge")[0]
    	//player.ship.position = awayDestination.position.add([0,0,1000])
    	//player.ship.orientation = awayDestination.orientation
    	
    	
    	
    	if(missionVariables.GW_mission)	
    	{if(missionVariables.GW_mission.indexOf("RUNNING") > 1 || missionVariables.GW_mission.indexOf("ENDGAME") > -1)
    	    {if(system.countShipsWithRole("GWunit") == 0)
    	        {this.spawnActiveUnits()
    	        worldScripts.GWunitstatus.updateUnitStatus()
    			player.ship.awardEquipment("EQ_GW_CONTROL_PANEL")}
    	    }
    	}
    	
        if(missionVariables.GW_mission == "DEFEND_RUNNING")
        {if(system.countShipsWithRole("GW-small-opfor") == 0)
    	{system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.9)
    	system.legacy_addSystemShips("GW-medium-opfor", [missionVariables.GW_medium_opfor_no], 0.9)
    	system.legacy_addSystemShips("police", 4, 1.0)}
    	}
     
    }
    
    this.shipWillEnterWitchspace = function()
    
    {
        if(missionVariables.GW_mission != "NONE_SET")
        {	this.checkUnitDistance()
    		if(system.ID == missionVariables.GW_mission_location_no)
    		{	mission.setInstructionsKey("GW_mission_return")
    			if(missionVariables.GW_mission == "ASSAULT_RUNNING")
    			missionVariables.GW_mission = "ASSAULT_FAILURE"
    			if(missionVariables.GW_mission == "ASSASSINATE_RUNNING")
    			missionVariables.GW_mission = "ASSASSINATE_FAILURE"
    			if(missionVariables.GW_mission == "CLEAR_RUNNING")
    			missionVariables.GW_mission = "CLEAR_FAILURE"
    			if(missionVariables.GW_mission == "AMBUSH_RUNNING")
    			missionVariables.GW_mission = "AMBUSH_FAILURE"
    			if(missionVariables.GW_mission == "ASSIST_RUNNING")
    			missionVariables.GW_mission = "ASSIST_FAILURE"
    			if(missionVariables.GW_mission == "DEFEND_RUNNING")
    			missionVariables.GW_mission = "DEFEND_FAILURE"
    		}
    	}
    	if(missionVariables.GW_mission)
    	{if(missionVariables.GW_mission.indexOf("SUCCESS") > 1)
    	mission.setInstructionsKey("GW_mission_return")}
    }
    
    
    this.shipExitedWitchspace = function()
    
    {   
    
    
    if(missionVariables.GW_mission)
    {if(missionVariables.GW_mission.indexOf("RUNNING") > 1 || missionVariables.GW_mission.indexOf("ENDGAME") > -1)
        {this.spawnActiveUnits()
    	this.checkInUnits()}
    }
        if(missionVariables.GW_mission == "ASSAULT_RUNNING" && system.ID == missionVariables.GW_mission_location_no)  
        {system.legacy_addSystemShips([missionVariables.GW_opfor_target_role], 1, 0.1)
        system.legacy_addSystemShips("GW-medium-opfor", [missionVariables.GW_medium_opfor_no], 0.1)
        system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.1)
        system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.1)}
    	
    	if(missionVariables.GW_mission == "ASSASSINATE_RUNNING" && system.ID == missionVariables.GW_mission_location_no)  
        {system.legacy_addSystemShips([missionVariables.GW_opfor_target_role], 1, 0.2)
    	system.legacy_addSystemShips("GW-vip-opfor", 1, 0.2)
        system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.2)}
    	
    	if(missionVariables.GW_mission == "AMBUSH_RUNNING" && system.ID == missionVariables.GW_mission_location_no)  
        {system.legacy_addSystemShips("GW-transport-opfor", [missionVariables.GW_transport_opfor_no], 0.2)
        if(missionVariables.GW_medium_opfor_no > 0)
    	system.legacy_addSystemShips("GW-medium-opfor", [missionVariables.GW_medium_opfor_no], 0.2)}
    	
    	if(missionVariables.GW_mission == "CLEAR_RUNNING" && system.ID == missionVariables.GW_mission_location_no)  
        {system.legacy_addSystemShips("trader", 10, 0.2)
    	system.legacy_addSystemShips("scavenger", 10, 0.2)
    	system.legacy_addSystemShips([missionVariables.GW_opfor_target_role], 1, 0.2)
        system.legacy_addSystemShips("GW-medium-opfor", [missionVariables.GW_medium_opfor_no], 0.2)
        system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.2)}
    	
    	
    	if(missionVariables.GW_mission == "ASSIST_RUNNING" && system.ID == missionVariables.GW_mission_location_no)  
        {system.legacy_addSystemShips("trader", 4, 0.2)
    	system.legacy_addSystemShips("GW-bluefor", 12, 0.2)
        system.legacy_addSystemShips("GW-medium-opfor", [missionVariables.GW_medium_opfor_no], 0.2)
        system.legacy_addSystemShips("GW-small-opfor", [missionVariables.GW_small_opfor_no], 0.2)
    	system.legacy_addSystemShips("GW-large-opfor", [missionVariables.GW_large_opfor_no], 0.2)}
    }
    
    this.removeGW = function()
    {missionVariables.GW_status = "COMPLETED"
    player.ship.removeEquipment("EQ_GW_CONTROL_PANEL")
    mission.setInstructionsKey(null, "GWunitstatus")
    missionVariables.GW_unit1_missions = null
    missionVariables.GW_unit2_missions = null
    missionVariables.GW_unit3_missions = null
    missionVariables.GW_unit4_missions = null
    missionVariables.GW_player_missions = null
    missionVariables.GW_player_kills = null
    missionVariables.GW_menu_page = null
    missionVariables.GW_opfor_destroyed = null
    missionVariables.GW_bluefor_casualties = null
    missionVariables.GW_player_squadron = null
    missionVariables.GW_bluefor_morale = null
    missionVariables.GW_opfor_morale = null
    missionVariables.GW_bluefor_graph = null
    missionVariables.GW_opfor_graph = null
    missionVariables.GW_unit1_role = null
    missionVariables.GW_unit2_role = null
    missionVariables.GW_unit3_role = null
    missionVariables.GW_unit4_role = null
    missionVariables.GW_unit1_shipname = null
    missionVariables.GW_unit2_shipname = null
    missionVariables.GW_unit3_shipname = null
    missionVariables.GW_unit4_shipname = null
    missionVariables.GW_unit1_name = null
    missionVariables.GW_unit1_race = null
    missionVariables.GW_unit1_kills = null
    missionVariables.GW_unit1_missions = null
    missionVariables.GW_unit1_status = null
    missionVariables.GW_unit1_rank = null
    missionVariables.GW_unit1_rank_no = null
    missionVariables.GW_unit1_history = null
    missionVariables.GW_unit2_name = null
    missionVariables.GW_unit2_race = null
    missionVariables.GW_unit2_kills = null
    missionVariables.GW_unit2_missions = null
    missionVariables.GW_unit2_status = null
    missionVariables.GW_unit2_rank = null
    missionVariables.GW_unit2_rank_no = null
    missionVariables.GW_unit2_history = null
    missionVariables.GW_unit3_name = null
    missionVariables.GW_unit3_race = null
    missionVariables.GW_unit3_kills = null
    missionVariables.GW_unit3_missions = null
    missionVariables.GW_unit3_status = null
    missionVariables.GW_unit3_rank = null
    missionVariables.GW_unit3_rank_no = null
    missionVariables.GW_unit3_history = null
    missionVariables.GW_unit4_name = null
    missionVariables.GW_unit4_race = null
    missionVariables.GW_unit4_kills = null
    missionVariables.GW_unit4_missions = null
    missionVariables.GW_unit4_status = null
    missionVariables.GW_unit4_rank = null
    missionVariables.GW_unit4_rank_no = null
    missionVariables.GW_unit4_history = null
    }
    Scripts/GWpromotions.js
    this.name               = "GWpromotions";
    this.author               = "Ramirez";
    this.copyright            = "June 3011";
    this.description         = "World script for Guerilla War unit promotions";
    this.version            = "0.1";
    
    this.checkForPromotions = function()
    
    {	
    	
    	//if(missionVariables.GW_mission.indexOf("ENDGAME") == -1)
    	
    	{
    	if(missionVariables.GW_unit1_kills > 10 && missionVariables.GW_unit1_rank_no == 1)
    	{missionVariables.GW_unit1_rank_no = 2
    	missionVariables.GW_unit1_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit1_rank_no+"]")
    	this.promoteUnit1()}
    	
    	if(missionVariables.GW_unit1_kills > 30 && missionVariables.GW_unit1_rank_no == 2)
    	{missionVariables.GW_unit1_rank_no = 3
    	missionVariables.GW_unit1_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit1_rank_no+"]")
    	this.promoteUnit1()}
    	
    	if(missionVariables.GW_unit1_kills > 60 && missionVariables.GW_unit1_rank_no == 3)
    	{missionVariables.GW_unit1_rank_no = 4
    	missionVariables.GW_unit1_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit1_rank_no+"]")
    	this.promoteUnit1()}
    	
    	if(missionVariables.GW_unit1_kills > 90 && missionVariables.GW_unit1_rank_no == 4)
    	{missionVariables.GW_unit1_rank_no = 5
    	missionVariables.GW_unit1_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit1_rank_no+"]")
    	this.promoteUnit1()}
    	
    	if(missionVariables.GW_unit2_kills > 10 && missionVariables.GW_unit2_rank_no == 1)
    	{missionVariables.GW_unit2_rank_no = 2
    	missionVariables.GW_unit2_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit2_rank_no+"]")
    	this.promoteUnit2()}
    	
    	if(missionVariables.GW_unit2_kills > 30 && missionVariables.GW_unit2_rank_no == 2)
    	{missionVariables.GW_unit2_rank_no = 3
    	missionVariables.GW_unit2_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit2_rank_no+"]")
    	this.promoteUnit2()}
    	
    	if(missionVariables.GW_unit2_kills > 60 && missionVariables.GW_unit2_rank_no == 3)
    	{missionVariables.GW_unit2_rank_no = 4
    	missionVariables.GW_unit2_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit2_rank_no+"]")
    	this.promoteUnit2()}
    	
    	if(missionVariables.GW_unit2_kills > 90 && missionVariables.GW_unit2_rank_no == 4)
    	{missionVariables.GW_unit2_rank_no = 5
    	missionVariables.GW_unit2_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit2_rank_no+"]")
    	this.promoteUnit2()}
    	
    	if(missionVariables.GW_unit3_kills > 10 && missionVariables.GW_unit3_rank_no == 1)
    	{missionVariables.GW_unit3_rank_no = 2
    	missionVariables.GW_unit3_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit3_rank_no+"]")
    	this.promoteUnit3()}
    	
    	if(missionVariables.GW_unit3_kills > 30 && missionVariables.GW_unit3_rank_no == 2)
    	{missionVariables.GW_unit3_rank_no = 3
    	missionVariables.GW_unit3_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit3_rank_no+"]")
    	this.promoteUnit3()}
    	
    	if(missionVariables.GW_unit3_kills > 60 && missionVariables.GW_unit3_rank_no == 3)
    	{missionVariables.GW_unit3_rank_no = 4
    	missionVariables.GW_unit3_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit3_rank_no+"]")
    	this.promoteUnit3()}
    	
    	if(missionVariables.GW_unit3_kills > 90 && missionVariables.GW_unit3_rank_no == 4)
    	{missionVariables.GW_unit3_rank_no = 5
    	missionVariables.GW_unit3_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit3_rank_no+"]")
    	this.promoteUnit3()}
    	
    	if(missionVariables.GW_unit4_kills > 10 && missionVariables.GW_unit4_rank_no == 1)
    	{missionVariables.GW_unit4_rank_no = 2
    	missionVariables.GW_unit4_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit4_rank_no+"]")
    	this.promoteUnit4()}
    	
    	if(missionVariables.GW_unit4_kills > 30 && missionVariables.GW_unit4_rank_no == 2)
    	{missionVariables.GW_unit4_rank_no = 3
    	missionVariables.GW_unit4_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit4_rank_no+"]")
    	this.promoteUnit4()}
    	
    	if(missionVariables.GW_unit4_kills > 60 && missionVariables.GW_unit4_rank_no == 3)
    	{missionVariables.GW_unit4_rank_no = 4
    	missionVariables.GW_unit4_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit4_rank_no+"]")
    	this.promoteUnit4()}
    	
    	if(missionVariables.GW_unit4_kills > 90 && missionVariables.GW_unit4_rank_no == 4)
    	{missionVariables.GW_unit4_rank_no = 5
    	missionVariables.GW_unit4_rank = expandDescription("[GW_unit_rank_"+missionVariables.GW_unit4_rank_no+"]")
    	this.promoteUnit4()}
    	}
    }
    
    this.promoteUnit1 = function()
    	{this.promotion1 = "true"
    	this.GW_unit1_promo = "\n" + missionVariables.GW_unit1_name + " (Unit 1) promoted to "+ missionVariables.GW_unit1_rank
    	missionVariables.GW_unit1_history += "\n"+clock.days+" - promoted to "+missionVariables.GW_unit1_rank}
    	
    this.promoteUnit2 = function()
    	{this.promotion2 = "true"
    	this.GW_unit2_promo = "\n" + missionVariables.GW_unit2_name + " (Unit 2) promoted to "+ missionVariables.GW_unit2_rank;
    	missionVariables.GW_unit2_history += "\n"+clock.days+" - promoted to "+missionVariables.GW_unit2_rank}
    	
    this.promoteUnit3 = function()
    	{this.promotion3 = "true"
    	this.GW_unit3_promo = "\n" + missionVariables.GW_unit3_name + " (Unit 3) promoted to "+ missionVariables.GW_unit3_rank;
    	missionVariables.GW_unit3_history += "\n"+clock.days+" - promoted to "+missionVariables.GW_unit3_rank}
    	
    this.promoteUnit4 = function()
    	{this.promotion4 = "true"
    	this.GW_unit4_promo = "\n" + missionVariables.GW_unit4_name + " (Unit 4) promoted to "+ missionVariables.GW_unit4_rank;
    	missionVariables.GW_unit4_history += "\n"+clock.days+" - promoted to "+missionVariables.GW_unit4_rank}
    	
    this.runPromotionScreen = function()
    	{
    	if(this.promotion1 || this.promotion2 || this.promotion3 || this.promotion4)
    	{mission.runScreen({title: "Resistance Command", background: "GW_backdrop.png", messageKey: "GW_promotion_screen"});
    	mission.addMessageText(this.GW_unit1_promo + this.GW_unit2_promo + this.GW_unit3_promo + this.GW_unit4_promo)
    	this.promotion1 = null
    	this.promotion2 = null
    	this.promotion3 = null
    	this.promotion4 = null
    	this.GW_unit1_promo = " "
    	this.GW_unit2_promo = " "
    	this.GW_unit3_promo = " "
    	this.GW_unit4_promo = " "
    	}
    	else
    	return;
    	}
    
    
    
    
    
    Scripts/GWtarget.js
    this.name               = "GWtarget.js";
    this.author               = "Ramirez";
    this.copyright            = "July 2011";
    this.description         = "Ship script for GW targets";
    this.version            = "2.0";
                  
    this.shipSpawned = function ()
    
    {
        if(missionVariables.GW_mission == "ASSAULT_RUNNING")
        {
    	if(this.ship.primaryRole == "GW-medium-opfor")
    	this.ship.switchAI("GW-medium-patrolAI.plist")
    	if(this.ship.primaryRole == "GW-small-opfor")
    	this.ship.switchAI("GW-small-patrolAI.plist")
        }
        
        if(missionVariables.GW_mission == "AMBUSH_RUNNING")
        {}
        
        if(missionVariables.GW_mission == "ASSASSINATE_RUNNING")
        {if(this.ship.primaryRole == "GW-vip-opfor")
    		this.ship.displayName = missionVariables.GW_mission_vip_name}
        
    	if(missionVariables.GW_mission == "DEFEND_RUNNING")
        {this.ship.switchAI("GW-attackstationAI.plist")}
    	
        if(missionVariables.GW_mission == "CLEAR_RUNNING")
        {}
    	
    }
    
    this.shipDied = function(whom)
    {	++missionVariables.GW_mission_kills
    	if(whom == player.ship)
    		{++missionVariables.GW_player_kills}
    	
    	if(this.ship.hasRole == "GW-small-opfor")
    	missionVariables.GW_mission_points += 5
    	
    	if(this.ship.hasRole == "GW-medium-opfor")
    	missionVariables.GW_mission_points += 10
    	
    	if(this.ship.hasRole == "GW-large-opfor")
    	missionVariables.GW_mission_points += 20
    	
    	if(missionVariables.GW_mission == "ASSAULT_RUNNING")
    	
    	{	if(this.ship.primaryRole == missionVariables.GW_opfor_target_role)
    			{missionVariables.GW_mission_points += 40
    			player.commsMessage("Leader to units: Primary target destroyed.")
    			missionVariables.GW_mission = "ASSAULT_SUCCESS"}
    	}
    	
    	if(missionVariables.GW_mission == "ASSASSINATE_RUNNING")
    	
    	{	if(this.ship.primaryRole == "GW-vip-opfor")
    			{missionVariables.GW_mission_points += 40
    			player.commsMessage("Leader to units: Primary target destroyed.")
    			missionVariables.GW_mission = "ASSASSINATE_SUCCESS"}
    	}
    	
    	
    	
    	if(missionVariables.GW_mission == "DEFEND_RUNNING")
    		{
    		if(missionVariables.GW_mission_kills == (missionVariables.GW_small_opfor_no + missionVariables.GW_medium_opfor_no))
    			{player.commsMessage("Resistance Command: All enemies destroyed; return to base")
    			missionVariables.GW_mission = "DEFEND_SUCCESS"}
    		}
    		
    	if(missionVariables.GW_mission == "AMBUSH_RUNNING")
    	{
    		if(this.ship.primaryRole == "GW-transport-opfor")
    		{missionVariables.GW_mission_points += 15
    		++missionVariables.GW_transport_opfor_kills
    			if(missionVariables.GW_transport_opfor_kills == missionVariables.GW_transport_opfor_no)
    			{player.commsMessage("Leader to units: All enemy transports destroyed.")
    			missionVariables.GW_mission = "AMBUSH_SUCCESS"}
    		}
    	}
    	
    	
    	if(missionVariables.GW_mission == "CLEAR_RUNNING")
    		{
    		if(missionVariables.GW_mission_kills > (missionVariables.GW_small_opfor_no + missionVariables.GW_medium_opfor_no)*0.75)
    			{player.commsMessage("Leader to units: We've scattered the enemy forces - we can return home.")
    			missionVariables.GW_mission = "DEFEND_SUCCESS"}
    		}
    		
    		
    	if(missionVariables.GW_mission == "ASSIST_RUNNING")
    		{
    		if(missionVariables.GW_mission_kills > (missionVariables.GW_small_opfor_no + missionVariables.GW_medium_opfor_no + missionVariables.GW_large_opfor_no)*0.80)
    			{player.commsMessage("Leader to units: Good work, we've fought off the enemy.")
    			missionVariables.GW_mission = "ASSIST_SUCCESS"}
    		}
    	
    	if(this.ship.primaryRole == "GW-mine")
    	
    	{++missionVariables.GW_endgame_kills
    	if(missionVariables.GW_endgame_kills == 105)
    	player.commsMessage("Resistance Command: Good, the distortion field is weakening. Carry on.")
    	if(missionVariables.GW_endgame_kills > 155)
    	missionVariables.GW_mission = "ENDGAME_1D"
    	}
    	
    }
    
    Scripts/GWunits.js
    this.name               = "GWunits.js";
    this.author             = "Ramirez";
    this.copyright          = "October 2011";
    this.description        = "Ship script for GW units, incorporating elements from Hired Guns";
    this.version            = "3.0";
    
    
    
    //this.shipCollided = function(player)
    
    //{	log('collision detected')
    	//++this.collisionCount
    	//log(this.collisionCount)
    	//if(this.collisionCount == 2)
    	  // {this.ship.commsMessage("OK, I'll pull over!")
    	   //this.ship.setAI("nullAI.plist")}
    		//					  }
    
    
    
    this.shipSpawned = function()
    {	//this.collisionCount = 0
    	this.missileCount = 10
    	if(this.ship.primaryRole.indexOf("unit1") != -1)
        this.energyRatio = missionVariables.GW_unit1_rank_no/4
    	if(this.ship.primaryRole.indexOf("unit2") != -1)
        this.energyRatio = missionVariables.GW_unit2_rank_no/4
    	if(this.ship.primaryRole.indexOf("unit3") != -1)
        this.energyRatio = missionVariables.GW_unit3_rank_no/4
    	if(this.ship.primaryRole.indexOf("unit4") != -1)
        this.energyRatio = missionVariables.GW_unit4_rank_no/4
    	}
    
    this.shipBeingAttacked = function()
    {	//this.effectiveEnergy = this.ship.maxEnergy * this.energyRatio
    	//if(this.ship.energy > this.effectiveEnergy)
    	//this.ship.energy = this.effectiveEnergy
    
    	this.effectiveEnergy = this.ship.maxEnergy * (1/3 + this.energyRatio*2/3)
    	if(this.ship.energy > this.effectiveEnergy)
    	this.ship.energy = this.effectiveEnergy
    }
        
    this.shipDied = function()
    {   if(this.ship.primaryRole.indexOf("unit1") != -1)
        missionVariables.GW_unit1_status = "Inactive"
        if(this.ship.primaryRole.indexOf("unit2") != -1)
        missionVariables.GW_unit2_status = "Inactive"
        if(this.ship.primaryRole.indexOf("unit3") != -1)
        missionVariables.GW_unit3_status = "Inactive"
        if(this.ship.primaryRole.indexOf("unit4") != -1)
        missionVariables.GW_unit4_status = "Inactive"
        player.consoleMessage(this.ship.displayName+" destroyed.", 10)
        ++missionVariables.GW_mission_losses
        missionVariables.GW_mission_points -= 50
        worldScripts.GWunitstatus.updateUnitStatus()}
        
    this.shipTargetDestroyed = function()
    {	this.ship.commsMessage(expandDescription("[GW_target_destroyed]"))
        if(this.ship.primaryRole.indexOf("unit1") != -1)
        ++missionVariables.GW_unit1_kills
        if(this.ship.primaryRole.indexOf("unit2") != -1)
        ++missionVariables.GW_unit2_kills
        if(this.ship.primaryRole.indexOf("unit3") != -1)
        ++missionVariables.GW_unit3_kills
        if(this.ship.primaryRole.indexOf("unit4") != -1)
        ++missionVariables.GW_unit4_kills}
    
    this.shipFiredMissile = function()
    {	if(this.ship.name.indexOf("Gecko") != -1)
    	{	--this.missileCount
    		if(this.missileCount > 0)
    		   {this.ship.awardEquipment("EQ_HARDENED_MISSILE")}
    		   else
    		   {this.ship.commsMessage("Out of missiles!")}
    	}
    		
    }
    
    this.locatePlayer = function()
    	{
    	this.playerArray = system.shipsWithPrimaryRole("player");
    	if(this.playerArray.length > 0)
    		{
    		this.ship.target = this.playerArray[0];
    		this.ship.reactToAIMessage("PLAYER_FOUND");
    		}
    	}
    	
    	this.checkPlayerDistance = function()
    	{
    	if(!player.ship)
    		return;	
    	else	
    	{
    	this.playerDistance = this.ship.position.distanceTo(player.ship.position);
    	if(this.playerDistance > 51200) // if the escort is more than 2 scanner ranges from the player, move it just off-scanner
    		{
    		let playerDirection = player.ship.position.subtract(this.ship.position).direction(); 
    		let newPosition = player.ship.position.subtract(playerDirection.multiply(20000));
    		if (oolite.compareVersion('1.73') <= 0) 
    			{
    			this.ship.position = newPosition;
    			}
    		else 
    			{
    			this.ship.setPosition(newPosition);
    			}
    		this.ship.reactToAIMessage("PLAYER_MID");
    		return;
    		}
    
    	if(this.playerDistance < 25600)
    		{
    		this.ship.reactToAIMessage("PLAYER_NEAR");
    		}
    	else
    		{
    		if(this.playerDistance > 38400 || player.ship.speed > 2000)
    			{
    			this.ship.reactToAIMessage("PLAYER_FAR");
    			}
    		else
    			{
    			this.ship.reactToAIMessage("PLAYER_MID");
    			}
    		}
    	}}
    
    this.combatCheck = function()
    	{
    	if(this.ship.target && this.ship.target.isDerelict)
    		{
    		this.ship.target = null;
    		this.ship.reactToAIMessage("TARGET_EJECTED");
    		}
    		
    	this.playerDistance = this.ship.position.distanceTo(player.ship.position);
    	if(this.playerDistance > 51200) // if the escort is more than 2 scanner ranges from the player, break off combat
    		{
    		this.ship.AIState = "LOCATE_PLAYER";
    		}
    	else
    		{
    		this.ship.reactToAIMessage("ENEMY_FIRE");
    		}
    	}
    
    this.findPlayerHostiles = function()
    	{
    	function isHostileToPlayer(entity) 
    		{ 
    		return (entity.isThargoid || (entity.isShip && entity.target && entity.target == player.ship && entity.hasHostileTarget && !entity.isDerelict));
    		}
    	
    		{
    		var targets = system.filteredEntities(this, isHostileToPlayer, this.ship, this.ship.scannerRange);
    		if(targets.length > 0)
    			{
    			this.ship.target = targets[0];
                            this.ship.reactToAIMessage("HOSTILE_FOUND");
    			}
    		else
    			{
    			this.ship.reactToAIMessage("NO_HOSTILE_FOUND");
    			}
    		}
    	}
    
    this.fireCheck = function()
    	{
    	if(player.ship.target == this.ship && this.ship.target.isPlayer)
    		{
    		this.ship.reactToAIMessage("FRIENDLY_FIRE");
    		}
    	else
    		{
    		this.ship.reactToAIMessage("ENEMY_FIRE");
    		}
    	}
    
    
    
    
    Scripts/GWunitstatus.js
    this.name               = "GWunitstatus";
    this.author               = "Ramirez";
    this.copyright            = "2011";
    this.description         = "Script for keeping track of unit status";
    this.version            = "1.0";
                  
                   
    this.updateUnitStatus = function()
    
    {mission.setInstructionsKey("GW_unit_status", "GWunitstatus")}