Back to Index | Page generated: Nov 12, 2024, 11:02:04 PM |
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 |
|
|
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 |
Also read http://wiki.alioth.net/index.php/Resistance%20Commander
{\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}}
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+ |
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")} |