summaryrefslogtreecommitdiffhomepage
path: root/data
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-02-06 19:14:54 +0100
committerAki <please@ignore.pl>2022-02-06 19:16:34 +0100
commitd289918bfdf7635ec3bb2c94d8255da2b2572aea (patch)
tree6e9143cbfd63fd0e6a674d37a51a58ea85882929 /data
parentba64478a1aa1740da47ff0016dff6cc633900b73 (diff)
downloadstarshatter-d289918bfdf7635ec3bb2c94d8255da2b2572aea.zip
starshatter-d289918bfdf7635ec3bb2c94d8255da2b2572aea.tar.gz
starshatter-d289918bfdf7635ec3bb2c94d8255da2b2572aea.tar.bz2
Added datafiles to the repository
This includes only text files from the most common distribution of content.dat and shatter.dat.
Diffstat (limited to 'data')
-rw-r--r--data/.gitignore9
-rw-r--r--data/CMakeLists.txt3
-rw-r--r--data/content/Awards/Awards.def386
-rw-r--r--data/content/Campaigns/01/Scenes/Intro.def153
-rw-r--r--data/content/Campaigns/01/T1.def69
-rw-r--r--data/content/Campaigns/01/T2.def283
-rw-r--r--data/content/Campaigns/01/T3.def279
-rw-r--r--data/content/Campaigns/01/T4.def264
-rw-r--r--data/content/Campaigns/01/T5.def201
-rw-r--r--data/content/Campaigns/01/T6.def98
-rw-r--r--data/content/Campaigns/01/T7.def195
-rw-r--r--data/content/Campaigns/01/campaign.def18
-rw-r--r--data/content/Campaigns/02/Actions/01-campaign-start.txt5
-rw-r--r--data/content/Campaigns/02/Actions/02-coup-failure.txt5
-rw-r--r--data/content/Campaigns/02/Actions/03-blockade-broken.txt5
-rw-r--r--data/content/Campaigns/02/Actions/03a-minefield-a.txt4
-rw-r--r--data/content/Campaigns/02/Actions/03a-minefield-b.txt4
-rw-r--r--data/content/Campaigns/02/Actions/03a-minefield-c.txt4
-rw-r--r--data/content/Campaigns/02/Actions/03a-minefield-d.txt4
-rw-r--r--data/content/Campaigns/02/Actions/03a-minefield-e.txt4
-rw-r--r--data/content/Campaigns/02/Actions/04-harmony-risk.txt17
-rw-r--r--data/content/Campaigns/02/Actions/05-foothill-ridge.txt17
-rw-r--r--data/content/Campaigns/02/Actions/06-renser-buildup.txt14
-rw-r--r--data/content/Campaigns/02/Actions/07-research-lab.txt5
-rw-r--r--data/content/Campaigns/02/Actions/08-renser-accusation.txt5
-rw-r--r--data/content/Campaigns/02/Actions/09-senate-resolution.txt7
-rw-r--r--data/content/Campaigns/02/Actions/10-renser-arrival.txt14
-rw-r--r--data/content/Campaigns/02/Actions/11-dantari-pullback.txt16
-rw-r--r--data/content/Campaigns/02/Actions/11a-goliath.txt4
-rw-r--r--data/content/Campaigns/02/Actions/11a-kendra.txt4
-rw-r--r--data/content/Campaigns/02/Actions/11a-kitts.txt4
-rw-r--r--data/content/Campaigns/02/Actions/11a-wolf.txt4
-rw-r--r--data/content/Campaigns/02/Actions/12-cease-fire.txt7
-rw-r--r--data/content/Campaigns/02/Actions/13-renser-invasion.txt13
-rw-r--r--data/content/Campaigns/02/Actions/campaign_end.txt5
-rw-r--r--data/content/Campaigns/02/Actions/def1.txt3
-rw-r--r--data/content/Campaigns/02/Actions/def2.txt3
-rw-r--r--data/content/Campaigns/02/Actions/m1-catching-up.txt21
-rw-r--r--data/content/Campaigns/02/Actions/m2-new-digs.txt22
-rw-r--r--data/content/Campaigns/02/Actions/m3-why-renser.txt18
-rw-r--r--data/content/Campaigns/02/Scenes/01-News-Start.def262
-rw-r--r--data/content/Campaigns/02/Scenes/02-Coup-Failure.def219
-rw-r--r--data/content/Campaigns/02/Scenes/03-Blockade-Broken.def299
-rw-r--r--data/content/Campaigns/02/Scenes/04-Harmony-Risk.def175
-rw-r--r--data/content/Campaigns/02/Scenes/05-Foothill-Ridge.def350
-rw-r--r--data/content/Campaigns/02/Scenes/06-Renser-Buildup.def122
-rw-r--r--data/content/Campaigns/02/Scenes/07-Research-Lab.def226
-rw-r--r--data/content/Campaigns/02/Scenes/08-Renser-Accusation.def183
-rw-r--r--data/content/Campaigns/02/Scenes/09-Senate-Resolution.def179
-rw-r--r--data/content/Campaigns/02/Scenes/10-Renser-Arrival.def162
-rw-r--r--data/content/Campaigns/02/Scenes/11-Dantari-Pullback.def234
-rw-r--r--data/content/Campaigns/02/Scenes/12-Cease-Fire.def312
-rw-r--r--data/content/Campaigns/02/Scenes/13-Renser-Invasion.def174
-rw-r--r--data/content/Campaigns/02/Scenes/Defeat1.def74
-rw-r--r--data/content/Campaigns/02/Scenes/Defeat2.def99
-rw-r--r--data/content/Campaigns/02/Scenes/M1-Catching-Up.def58
-rw-r--r--data/content/Campaigns/02/Scenes/M2-New-Digs.def46
-rw-r--r--data/content/Campaigns/02/Scenes/M3-Why-Renser.def46
-rw-r--r--data/content/Campaigns/02/Scenes/Victory1.def94
-rw-r--r--data/content/Campaigns/02/Templates/DS_Escort_03.def175
-rw-r--r--data/content/Campaigns/02/Templates/FS_Escort_01.def222
-rw-r--r--data/content/Campaigns/02/Templates/FS_Escort_02.def255
-rw-r--r--data/content/Campaigns/02/Templates/FS_Patrol_01.def135
-rw-r--r--data/content/Campaigns/02/Templates/FS_Patrol_02.def123
-rw-r--r--data/content/Campaigns/02/Templates/FS_Patrol_03.def119
-rw-r--r--data/content/Campaigns/02/Templates/FS_Patrol_HS.def198
-rw-r--r--data/content/Campaigns/02/Templates/IS_Escort_01.def222
-rw-r--r--data/content/Campaigns/02/Templates/IS_Escort_02.def255
-rw-r--r--data/content/Campaigns/02/Templates/IS_Patrol_01.def135
-rw-r--r--data/content/Campaigns/02/Templates/IS_Patrol_02.def123
-rw-r--r--data/content/Campaigns/02/Templates/IS_Patrol_03.def119
-rw-r--r--data/content/Campaigns/02/Templates/IS_Patrol_HS.def198
-rw-r--r--data/content/Campaigns/02/campaign.def1153
-rw-r--r--data/content/Campaigns/03/Actions/01-campaign-start.txt7
-rw-r--r--data/content/Campaigns/03/Actions/02-president-speech.txt11
-rw-r--r--data/content/Campaigns/03/Actions/03-titan-destroyed.txt6
-rw-r--r--data/content/Campaigns/03/Actions/04-fort-talden.txt17
-rw-r--r--data/content/Campaigns/03/Actions/05-grand-concourse.txt5
-rw-r--r--data/content/Campaigns/03/Actions/06-eleaan-diplomats.txt5
-rw-r--r--data/content/Campaigns/03/Actions/07-athenar.txt16
-rw-r--r--data/content/Campaigns/03/Actions/08-liberation.txt9
-rw-r--r--data/content/Campaigns/03/Actions/09-silessia.txt18
-rw-r--r--data/content/Campaigns/03/Actions/10-haiche.txt14
-rw-r--r--data/content/Campaigns/03/Actions/11-tantalus.txt14
-rw-r--r--data/content/Campaigns/03/Actions/12-colony-ship.txt8
-rw-r--r--data/content/Campaigns/03/Actions/13-marauder.txt16
-rw-r--r--data/content/Campaigns/03/Actions/m1-almost-home.txt19
-rw-r--r--data/content/Campaigns/03/Actions/m2-back-to-borova.txt20
-rw-r--r--data/content/Campaigns/03/Actions/m3-down-for-repairs.txt19
-rw-r--r--data/content/Campaigns/03/Actions/victory.txt5
-rw-r--r--data/content/Campaigns/03/Scenes/01-Campaign-Start.def230
-rw-r--r--data/content/Campaigns/03/Scenes/02-President-Speech.def226
-rw-r--r--data/content/Campaigns/03/Scenes/03-Titan-Destroyed.def351
-rw-r--r--data/content/Campaigns/03/Scenes/04-Fort-Talden.def159
-rw-r--r--data/content/Campaigns/03/Scenes/05-Grand-Concourse.def166
-rw-r--r--data/content/Campaigns/03/Scenes/06-Eleaan-Diplomats.def101
-rw-r--r--data/content/Campaigns/03/Scenes/07-Athenar.def229
-rw-r--r--data/content/Campaigns/03/Scenes/08-Liberation.def119
-rw-r--r--data/content/Campaigns/03/Scenes/09-Silessia.def152
-rw-r--r--data/content/Campaigns/03/Scenes/10-Haiche.def61
-rw-r--r--data/content/Campaigns/03/Scenes/11-Tantalus.def241
-rw-r--r--data/content/Campaigns/03/Scenes/12-Colony-Ship.def101
-rw-r--r--data/content/Campaigns/03/Scenes/13-Marauder.def99
-rw-r--r--data/content/Campaigns/03/Scenes/Defeat1.def100
-rw-r--r--data/content/Campaigns/03/Scenes/Defeat2.def74
-rw-r--r--data/content/Campaigns/03/Scenes/M1-Almost-Home.def46
-rw-r--r--data/content/Campaigns/03/Scenes/M2-Back-to-Borova.def46
-rw-r--r--data/content/Campaigns/03/Scenes/M3-Down-for-Repairs.def48
-rw-r--r--data/content/Campaigns/03/Scenes/Victory1.def93
-rw-r--r--data/content/Campaigns/03/Templates/FS_Defend_Titan.def236
-rw-r--r--data/content/Campaigns/03/Templates/FS_Patrol_01.def135
-rw-r--r--data/content/Campaigns/03/Templates/FS_Patrol_02.def118
-rw-r--r--data/content/Campaigns/03/Templates/FS_Patrol_03.def125
-rw-r--r--data/content/Campaigns/03/Templates/IS_Defend_Titan.def225
-rw-r--r--data/content/Campaigns/03/Templates/IS_Patrol_01.def135
-rw-r--r--data/content/Campaigns/03/Templates/IS_Patrol_02.def130
-rw-r--r--data/content/Campaigns/03/Templates/IS_Patrol_03.def109
-rw-r--r--data/content/Campaigns/03/campaign.def773
-rw-r--r--data/content/Campaigns/04/Actions/01-campaign-start.txt7
-rw-r--r--data/content/Campaigns/04/Actions/02-borovan-archaelith.txt11
-rw-r--r--data/content/Campaigns/04/Actions/03-technite-found.txt19
-rw-r--r--data/content/Campaigns/04/Actions/04-zolon-ambassador.txt17
-rw-r--r--data/content/Campaigns/04/Actions/05-operation-firestorm.txt11
-rw-r--r--data/content/Campaigns/04/Actions/06-strategy.txt15
-rw-r--r--data/content/Campaigns/04/Actions/07-Loris-Collapse.txt19
-rw-r--r--data/content/Campaigns/04/Actions/08-masil-gannet.txt7
-rw-r--r--data/content/Campaigns/04/Actions/09-kolchev.txt15
-rw-r--r--data/content/Campaigns/04/Actions/10-korius.txt11
-rw-r--r--data/content/Campaigns/04/Actions/def1.txt3
-rw-r--r--data/content/Campaigns/04/Actions/def2.txt9
-rw-r--r--data/content/Campaigns/04/Actions/m1-new-job.txt17
-rw-r--r--data/content/Campaigns/04/Actions/m2-need-to-know.txt18
-rw-r--r--data/content/Campaigns/04/Actions/victory.txt5
-rw-r--r--data/content/Campaigns/04/Scenes/01-Campaign-Start.def200
-rw-r--r--data/content/Campaigns/04/Scenes/02-Borovan-Archaelith.def176
-rw-r--r--data/content/Campaigns/04/Scenes/03-Technite-Found.def213
-rw-r--r--data/content/Campaigns/04/Scenes/04-Zolon-Ambassador.def156
-rw-r--r--data/content/Campaigns/04/Scenes/05-Operation-Firestorm.def241
-rw-r--r--data/content/Campaigns/04/Scenes/06-Strategy.def183
-rw-r--r--data/content/Campaigns/04/Scenes/07-Loris-Collapse.def148
-rw-r--r--data/content/Campaigns/04/Scenes/08-Masil-Gannet.def173
-rw-r--r--data/content/Campaigns/04/Scenes/09-Kolchev.def117
-rw-r--r--data/content/Campaigns/04/Scenes/10-Korius.def192
-rw-r--r--data/content/Campaigns/04/Scenes/Defeat1.def78
-rw-r--r--data/content/Campaigns/04/Scenes/Defeat2.def88
-rw-r--r--data/content/Campaigns/04/Scenes/M1-New-Job.def46
-rw-r--r--data/content/Campaigns/04/Scenes/M2-Need-to-Know.def46
-rw-r--r--data/content/Campaigns/04/Scenes/Victory1.def91
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_AS_Patrol.def488
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_Asher_Patrol.def473
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_BG_Patrol.def472
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def445
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_DS_Patrol.def473
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_FS_Patrol.def488
-rw-r--r--data/content/Campaigns/04/Scripts/Zolon_IS_Patrol.def488
-rw-r--r--data/content/Campaigns/04/campaign.def862
-rw-r--r--data/content/Campaigns/05/Actions/01-operation-nightfall.txt19
-rw-r--r--data/content/Campaigns/05/Actions/02-garden.txt3
-rw-r--r--data/content/Campaigns/05/Actions/03-radix.txt3
-rw-r--r--data/content/Campaigns/05/Actions/04-politics.txt9
-rw-r--r--data/content/Campaigns/05/Actions/06-geothermal-platforms.txt13
-rw-r--r--data/content/Campaigns/05/Actions/07-deadmans-alley.txt17
-rw-r--r--data/content/Campaigns/05/Actions/08-ramek-station.txt13
-rw-r--r--data/content/Campaigns/05/Actions/08a-ramek-destroyed.txt4
-rw-r--r--data/content/Campaigns/05/Actions/09-garrison-station.txt15
-rw-r--r--data/content/Campaigns/05/Actions/09a-garrison-destroyed.txt4
-rw-r--r--data/content/Campaigns/05/Actions/10-trocanther-biodomes.txt17
-rw-r--r--data/content/Campaigns/05/Actions/11a-blackwing-destroyed.txt4
-rw-r--r--data/content/Campaigns/05/Actions/11b-hood-destroyed.txt4
-rw-r--r--data/content/Campaigns/05/Actions/11c-omega-destroyed.txt4
-rw-r--r--data/content/Campaigns/05/Actions/12-endgame.txt17
-rw-r--r--data/content/Campaigns/05/Actions/15-disappearance.txt21
-rw-r--r--data/content/Campaigns/05/Actions/def1.txt3
-rw-r--r--data/content/Campaigns/05/Actions/def2.txt3
-rw-r--r--data/content/Campaigns/05/Actions/def3.txt3
-rw-r--r--data/content/Campaigns/05/Actions/m1-incommunicado.txt17
-rw-r--r--data/content/Campaigns/05/Actions/m2-final-message.txt23
-rw-r--r--data/content/Campaigns/05/Actions/victory.txt5
-rw-r--r--data/content/Campaigns/05/Scenes/01-Operation-Nightfall.def139
-rw-r--r--data/content/Campaigns/05/Scenes/02-Garden.def154
-rw-r--r--data/content/Campaigns/05/Scenes/03-Radix.def59
-rw-r--r--data/content/Campaigns/05/Scenes/04-Politics.def46
-rw-r--r--data/content/Campaigns/05/Scenes/06-Geothermal-Platforms.def152
-rw-r--r--data/content/Campaigns/05/Scenes/07-Deadmans-Alley.def121
-rw-r--r--data/content/Campaigns/05/Scenes/08-Ramek-Station.def59
-rw-r--r--data/content/Campaigns/05/Scenes/09-Garrison-Station.def54
-rw-r--r--data/content/Campaigns/05/Scenes/10-Trocanther-Biodomes.def159
-rw-r--r--data/content/Campaigns/05/Scenes/12-Endgame.def143
-rw-r--r--data/content/Campaigns/05/Scenes/15-Disappearance.def135
-rw-r--r--data/content/Campaigns/05/Scenes/Defeat1.def73
-rw-r--r--data/content/Campaigns/05/Scenes/Defeat2.def96
-rw-r--r--data/content/Campaigns/05/Scenes/Defeat3.def97
-rw-r--r--data/content/Campaigns/05/Scenes/M1-Incommunicado.def46
-rw-r--r--data/content/Campaigns/05/Scenes/M2-Final-Message.def55
-rw-r--r--data/content/Campaigns/05/Scenes/Victory.def118
-rw-r--r--data/content/Campaigns/05/campaign.def1344
-rw-r--r--data/content/Content/content.txt2459
-rw-r--r--data/content/Missions/01-Alert.def151
-rw-r--r--data/content/Missions/02-Wings.def130
-rw-r--r--data/content/Missions/03-Honor.def618
-rw-r--r--data/content/Missions/04-Sand.def285
-rw-r--r--data/content/Missions/05-Execution.def168
-rw-r--r--data/content/Missions/06-SEAD.def229
-rw-r--r--data/content/Missions/07-SLGAM.def266
-rw-r--r--data/content/Missions/08-Focus.def174
-rw-r--r--data/content/Missions/09-Hounds.def201
-rw-r--r--data/content/Missions/10-Angels.def224
-rw-r--r--data/content/Missions/Missions.def111
-rw-r--r--data/content/Multiplayer/D4.DEF140
-rw-r--r--data/content/Multiplayer/Thrash.def93
-rw-r--r--data/content/Multiplayer/hawkmatch.def180
-rw-r--r--data/content/Multiplayer/wargames.def446
-rw-r--r--data/content/Screens/AudDlg.frm297
-rw-r--r--data/content/Screens/AwardDlg.frm122
-rw-r--r--data/content/Screens/CmdDlg.frm435
-rw-r--r--data/content/Screens/CmdForceDlg.frm358
-rw-r--r--data/content/Screens/CmdIntelDlg.frm364
-rw-r--r--data/content/Screens/CmdMissionsDlg.frm351
-rw-r--r--data/content/Screens/CmdMsgDlg.frm76
-rw-r--r--data/content/Screens/CmdOrdersDlg.frm264
-rw-r--r--data/content/Screens/CmdTheaterDlg.frm356
-rw-r--r--data/content/Screens/CmpCompleteDlg.frm85
-rw-r--r--data/content/Screens/CmpLoadDlg.frm89
-rw-r--r--data/content/Screens/CmpSceneDlg.frm59
-rw-r--r--data/content/Screens/CmpSelectDlg.frm214
-rw-r--r--data/content/Screens/ConfirmDlg.frm79
-rw-r--r--data/content/Screens/CtlDlg.frm475
-rw-r--r--data/content/Screens/DebriefDlg.frm375
-rw-r--r--data/content/Screens/EngDlg.frm606
-rw-r--r--data/content/Screens/ExitDlg.frm88
-rw-r--r--data/content/Screens/FileDlg.frm122
-rw-r--r--data/content/Screens/FirstTimeDlg.frm158
-rw-r--r--data/content/Screens/FltDlg.frm428
-rw-r--r--data/content/Screens/JoyDlg.frm216
-rw-r--r--data/content/Screens/KeyDlg.frm140
-rw-r--r--data/content/Screens/LoadDlg.frm64
-rw-r--r--data/content/Screens/MenuDlg.frm159
-rw-r--r--data/content/Screens/ModDlg.frm332
-rw-r--r--data/content/Screens/ModInfoDlg.frm111
-rw-r--r--data/content/Screens/MsnEditDlg.frm618
-rw-r--r--data/content/Screens/MsnEditNavDlg.frm519
-rw-r--r--data/content/Screens/MsnElemDlg.frm494
-rw-r--r--data/content/Screens/MsnEventDlg.frm326
-rw-r--r--data/content/Screens/MsnNavDlg.frm477
-rw-r--r--data/content/Screens/MsnObjDlg.frm352
-rw-r--r--data/content/Screens/MsnPkgDlg.frm466
-rw-r--r--data/content/Screens/MsnSelectDlg.frm241
-rw-r--r--data/content/Screens/MsnWepDlg.frm486
-rw-r--r--data/content/Screens/NavDlg.frm396
-rw-r--r--data/content/Screens/NetAddrDlg.frm145
-rw-r--r--data/content/Screens/NetClientDlg.frm205
-rw-r--r--data/content/Screens/NetLobbyDlg.frm218
-rw-r--r--data/content/Screens/NetPassDlg.frm118
-rw-r--r--data/content/Screens/NetServerDlg.frm198
-rw-r--r--data/content/Screens/NetUnitDlg.frm286
-rw-r--r--data/content/Screens/OptDlg.frm400
-rw-r--r--data/content/Screens/PlayerDlg.frm690
-rw-r--r--data/content/Screens/TacRefDlg.frm211
-rw-r--r--data/content/Screens/VidDlg.frm423
-rw-r--r--data/content/Ships/Alliance_Fighters/Eagle.def366
-rw-r--r--data/content/Ships/Alliance_Fighters/Falcon.def309
-rw-r--r--data/content/Ships/Alliance_Fighters/Stormhawk.def335
-rw-r--r--data/content/Ships/Alliance_Fighters/Thunderbolt.def356
-rw-r--r--data/content/Ships/Alliance_Fighters/Zodiac.def243
-rw-r--r--data/content/Ships/Alliance_Ships/Asher.def398
-rw-r--r--data/content/Ships/Alliance_Ships/Berents.def333
-rw-r--r--data/content/Ships/Alliance_Ships/Cruiser.def437
-rw-r--r--data/content/Ships/Alliance_Ships/Devastator.def450
-rw-r--r--data/content/Ships/Alliance_Ships/Orion.def515
-rw-r--r--data/content/Ships/Alliance_Ships/Spectre.def415
-rw-r--r--data/content/Ships/Dantari_Ships/Baikal.def314
-rw-r--r--data/content/Ships/Dantari_Ships/Goliath.def363
-rw-r--r--data/content/Ships/Dantari_Ships/Wolf.def367
-rw-r--r--data/content/Ships/Farcaster/Farcaster.def146
-rw-r--r--data/content/Ships/Farcaster/Farcaster2.def153
-rw-r--r--data/content/Ships/Marakan_Fighters/Avenger.def360
-rw-r--r--data/content/Ships/Marakan_Fighters/Cobra.def332
-rw-r--r--data/content/Ships/Marakan_Fighters/Intruder.def309
-rw-r--r--data/content/Ships/Marakan_Fighters/Jackal.def210
-rw-r--r--data/content/Ships/Marakan_Fighters/Raptor.def360
-rw-r--r--data/content/Ships/Marakan_Fighters/Razor.def337
-rw-r--r--data/content/Ships/Marakan_Fighters/Viper.def273
-rw-r--r--data/content/Ships/Marakan_Ships/Broadsword.def456
-rw-r--r--data/content/Ships/Marakan_Ships/Dragon.def492
-rw-r--r--data/content/Ships/Marakan_Ships/Imperial.def418
-rw-r--r--data/content/Ships/Marakan_Ships/Tiger.def314
-rw-r--r--data/content/Ships/Marakan_Ships/Vendetta.def449
-rw-r--r--data/content/Ships/Marakan_Ships/Volnaris.def349
-rw-r--r--data/content/Ships/Pirate_Ships/Cutlass.def236
-rw-r--r--data/content/Ships/Pirate_Ships/Marauder.def270
-rw-r--r--data/content/Ships/TargetDrone/TargetDrone.def105
-rw-r--r--data/content/Sys.def751
-rw-r--r--data/content/Weapons/Wep.def2135
-rw-r--r--data/content/credits.txt134
-rw-r--r--data/content/mod_info.def8
-rw-r--r--data/shatter/Awards/Awards.def555
-rw-r--r--data/shatter/Campaigns/01/Missions.def57
-rw-r--r--data/shatter/Campaigns/01/Scenes/Intro.def153
-rw-r--r--data/shatter/Campaigns/01/T1.def78
-rw-r--r--data/shatter/Campaigns/01/T2.def292
-rw-r--r--data/shatter/Campaigns/01/T3.def289
-rw-r--r--data/shatter/Campaigns/01/T4.def273
-rw-r--r--data/shatter/Campaigns/01/T5.def209
-rw-r--r--data/shatter/Campaigns/01/T6.def106
-rw-r--r--data/shatter/Campaigns/01/T7.def197
-rw-r--r--data/shatter/Campaigns/01/campaign.def40
-rw-r--r--data/shatter/Campaigns/01/opfor.def268
-rw-r--r--data/shatter/Campaigns/01/terellian.def405
-rw-r--r--data/shatter/Campaigns/01/zones.def32
-rw-r--r--data/shatter/Campaigns/02/Actions/01-campaign-start.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/02-coup-failure.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/03-blockade-broken.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/03a-minefield-a.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/03a-minefield-b.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/03a-minefield-c.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/03a-minefield-d.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/03a-minefield-e.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/04-harmony-risk.txt17
-rw-r--r--data/shatter/Campaigns/02/Actions/05-foothill-ridge.txt17
-rw-r--r--data/shatter/Campaigns/02/Actions/06-renser-buildup.txt14
-rw-r--r--data/shatter/Campaigns/02/Actions/07-research-lab.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/08-renser-accusation.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/09-senate-resolution.txt7
-rw-r--r--data/shatter/Campaigns/02/Actions/10-renser-arrival.txt14
-rw-r--r--data/shatter/Campaigns/02/Actions/11-dantari-pullback.txt16
-rw-r--r--data/shatter/Campaigns/02/Actions/11a-goliath.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/11a-kendra.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/11a-kitts.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/11a-wolf.txt4
-rw-r--r--data/shatter/Campaigns/02/Actions/12-cease-fire.txt7
-rw-r--r--data/shatter/Campaigns/02/Actions/13-renser-invasion.txt13
-rw-r--r--data/shatter/Campaigns/02/Actions/campaign_end.txt5
-rw-r--r--data/shatter/Campaigns/02/Actions/def1.txt3
-rw-r--r--data/shatter/Campaigns/02/Actions/def2.txt3
-rw-r--r--data/shatter/Campaigns/02/Actions/m1-catching-up.txt21
-rw-r--r--data/shatter/Campaigns/02/Actions/m2-new-digs.txt22
-rw-r--r--data/shatter/Campaigns/02/Actions/m3-why-renser.txt18
-rw-r--r--data/shatter/Campaigns/02/Scenes/01-News-Start.def264
-rw-r--r--data/shatter/Campaigns/02/Scenes/02-Coup-Failure.def219
-rw-r--r--data/shatter/Campaigns/02/Scenes/03-Blockade-Broken.def297
-rw-r--r--data/shatter/Campaigns/02/Scenes/04-Harmony-Risk.def171
-rw-r--r--data/shatter/Campaigns/02/Scenes/05-Foothill-Ridge.def346
-rw-r--r--data/shatter/Campaigns/02/Scenes/06-Renser-Buildup.def117
-rw-r--r--data/shatter/Campaigns/02/Scenes/07-Research-Lab.def226
-rw-r--r--data/shatter/Campaigns/02/Scenes/08-Renser-Accusation.def183
-rw-r--r--data/shatter/Campaigns/02/Scenes/09-Senate-Resolution.def179
-rw-r--r--data/shatter/Campaigns/02/Scenes/10-Renser-Arrival.def161
-rw-r--r--data/shatter/Campaigns/02/Scenes/11-Dantari-Pullback.def234
-rw-r--r--data/shatter/Campaigns/02/Scenes/12-Cease-Fire.def310
-rw-r--r--data/shatter/Campaigns/02/Scenes/13-Renser-Invasion.def172
-rw-r--r--data/shatter/Campaigns/02/Scenes/Defeat1.def70
-rw-r--r--data/shatter/Campaigns/02/Scenes/Defeat2.def95
-rw-r--r--data/shatter/Campaigns/02/Scenes/M1-Catching-Up.def58
-rw-r--r--data/shatter/Campaigns/02/Scenes/M2-New-Digs.def46
-rw-r--r--data/shatter/Campaigns/02/Scenes/M3-Why-Renser.def46
-rw-r--r--data/shatter/Campaigns/02/Scenes/Victory1.def90
-rw-r--r--data/shatter/Campaigns/02/Templates.def20
-rw-r--r--data/shatter/Campaigns/02/Templates/DS_Escort_03.def175
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Escort_01.def222
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Escort_02.def255
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Patrol_02.def123
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Patrol_03.def119
-rw-r--r--data/shatter/Campaigns/02/Templates/FS_Patrol_HS.def198
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Escort_01.def222
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Escort_02.def255
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Patrol_02.def123
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Patrol_03.def119
-rw-r--r--data/shatter/Campaigns/02/Templates/IS_Patrol_HS.def198
-rw-r--r--data/shatter/Campaigns/02/campaign.def1237
-rw-r--r--data/shatter/Campaigns/02/zones.def55
-rw-r--r--data/shatter/Campaigns/03/Actions/01-campaign-start.txt7
-rw-r--r--data/shatter/Campaigns/03/Actions/02-president-speech.txt11
-rw-r--r--data/shatter/Campaigns/03/Actions/03-titan-destroyed.txt6
-rw-r--r--data/shatter/Campaigns/03/Actions/04-fort-talden.txt17
-rw-r--r--data/shatter/Campaigns/03/Actions/05-grand-concourse.txt5
-rw-r--r--data/shatter/Campaigns/03/Actions/06-eleaan-diplomats.txt5
-rw-r--r--data/shatter/Campaigns/03/Actions/07-athenar.txt16
-rw-r--r--data/shatter/Campaigns/03/Actions/08-liberation.txt9
-rw-r--r--data/shatter/Campaigns/03/Actions/09-silessia.txt18
-rw-r--r--data/shatter/Campaigns/03/Actions/10-haiche.txt14
-rw-r--r--data/shatter/Campaigns/03/Actions/11-tantalus.txt14
-rw-r--r--data/shatter/Campaigns/03/Actions/12-colony-ship.txt8
-rw-r--r--data/shatter/Campaigns/03/Actions/13-marauder.txt16
-rw-r--r--data/shatter/Campaigns/03/Actions/m1-almost-home.txt19
-rw-r--r--data/shatter/Campaigns/03/Actions/m2-back-to-borova.txt20
-rw-r--r--data/shatter/Campaigns/03/Actions/m3-down-for-repairs.txt19
-rw-r--r--data/shatter/Campaigns/03/Actions/victory.txt5
-rw-r--r--data/shatter/Campaigns/03/Scenes/01-Campaign-Start.def228
-rw-r--r--data/shatter/Campaigns/03/Scenes/02-President-Speech.def224
-rw-r--r--data/shatter/Campaigns/03/Scenes/03-Titan-Destroyed.def349
-rw-r--r--data/shatter/Campaigns/03/Scenes/04-Fort-Talden.def157
-rw-r--r--data/shatter/Campaigns/03/Scenes/05-Grand-Concourse.def164
-rw-r--r--data/shatter/Campaigns/03/Scenes/06-Eleaan-Diplomats.def99
-rw-r--r--data/shatter/Campaigns/03/Scenes/07-Athenar.def227
-rw-r--r--data/shatter/Campaigns/03/Scenes/08-Liberation.def117
-rw-r--r--data/shatter/Campaigns/03/Scenes/09-Silessia.def150
-rw-r--r--data/shatter/Campaigns/03/Scenes/10-Haiche.def59
-rw-r--r--data/shatter/Campaigns/03/Scenes/11-Tantalus.def239
-rw-r--r--data/shatter/Campaigns/03/Scenes/12-Colony-Ship.def99
-rw-r--r--data/shatter/Campaigns/03/Scenes/13-Marauder.def97
-rw-r--r--data/shatter/Campaigns/03/Scenes/Defeat1.def98
-rw-r--r--data/shatter/Campaigns/03/Scenes/Defeat2.def72
-rw-r--r--data/shatter/Campaigns/03/Scenes/M1-Almost-Home.def46
-rw-r--r--data/shatter/Campaigns/03/Scenes/M2-Back-to-Borova.def46
-rw-r--r--data/shatter/Campaigns/03/Scenes/M3-Down-for-Repairs.def48
-rw-r--r--data/shatter/Campaigns/03/Scenes/Victory1.def91
-rw-r--r--data/shatter/Campaigns/03/Scripts/FS_Patrol_Iron.def124
-rw-r--r--data/shatter/Campaigns/03/Scripts/IS_Patrol_Iron.def124
-rw-r--r--data/shatter/Campaigns/03/Templates.def9
-rw-r--r--data/shatter/Campaigns/03/Templates/FS_Defend_Titan.def236
-rw-r--r--data/shatter/Campaigns/03/Templates/FS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/03/Templates/FS_Patrol_02.def118
-rw-r--r--data/shatter/Campaigns/03/Templates/FS_Patrol_03.def125
-rw-r--r--data/shatter/Campaigns/03/Templates/IS_Defend_Titan.def225
-rw-r--r--data/shatter/Campaigns/03/Templates/IS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/03/Templates/IS_Patrol_02.def130
-rw-r--r--data/shatter/Campaigns/03/Templates/IS_Patrol_03.def109
-rw-r--r--data/shatter/Campaigns/03/campaign.def834
-rw-r--r--data/shatter/Campaigns/03/zones.def138
-rw-r--r--data/shatter/Campaigns/04/Actions/01-campaign-start.txt7
-rw-r--r--data/shatter/Campaigns/04/Actions/02-borovan-archaelith.txt11
-rw-r--r--data/shatter/Campaigns/04/Actions/03-technite-found.txt19
-rw-r--r--data/shatter/Campaigns/04/Actions/04-zolon-ambassador.txt17
-rw-r--r--data/shatter/Campaigns/04/Actions/05-operation-firestorm.txt11
-rw-r--r--data/shatter/Campaigns/04/Actions/06-strategy.txt15
-rw-r--r--data/shatter/Campaigns/04/Actions/07-Loris-Collapse.txt19
-rw-r--r--data/shatter/Campaigns/04/Actions/08-masil-gannet.txt7
-rw-r--r--data/shatter/Campaigns/04/Actions/09-kolchev.txt15
-rw-r--r--data/shatter/Campaigns/04/Actions/10-korius.txt11
-rw-r--r--data/shatter/Campaigns/04/Actions/def1.txt3
-rw-r--r--data/shatter/Campaigns/04/Actions/def2.txt9
-rw-r--r--data/shatter/Campaigns/04/Actions/m1-new-job.txt17
-rw-r--r--data/shatter/Campaigns/04/Actions/m2-need-to-know.txt18
-rw-r--r--data/shatter/Campaigns/04/Actions/victory.txt5
-rw-r--r--data/shatter/Campaigns/04/Scenes/01-Campaign-Start.def198
-rw-r--r--data/shatter/Campaigns/04/Scenes/02-Borovan-Archaelith.def174
-rw-r--r--data/shatter/Campaigns/04/Scenes/03-Technite-Found.def211
-rw-r--r--data/shatter/Campaigns/04/Scenes/04-Zolon-Ambassador.def154
-rw-r--r--data/shatter/Campaigns/04/Scenes/05-Operation-Firestorm.def239
-rw-r--r--data/shatter/Campaigns/04/Scenes/06-Strategy.def181
-rw-r--r--data/shatter/Campaigns/04/Scenes/07-Loris-Collapse.def146
-rw-r--r--data/shatter/Campaigns/04/Scenes/08-Masil-Gannet.def171
-rw-r--r--data/shatter/Campaigns/04/Scenes/09-Kolchev.def115
-rw-r--r--data/shatter/Campaigns/04/Scenes/10-Korius.def190
-rw-r--r--data/shatter/Campaigns/04/Scenes/Defeat1.def76
-rw-r--r--data/shatter/Campaigns/04/Scenes/Defeat2.def86
-rw-r--r--data/shatter/Campaigns/04/Scenes/M1-New-Job.def46
-rw-r--r--data/shatter/Campaigns/04/Scenes/M2-Need-to-Know.def46
-rw-r--r--data/shatter/Campaigns/04/Scenes/Victory1.def89
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_AS_Patrol.def488
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_Asher_Patrol.def473
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_BG_Patrol.def472
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def445
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_DS_Patrol.def473
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_FS_Patrol.def488
-rw-r--r--data/shatter/Campaigns/04/Scripts/Zolon_IS_Patrol.def488
-rw-r--r--data/shatter/Campaigns/04/Templates.def13
-rw-r--r--data/shatter/Campaigns/04/Templates/FS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/04/Templates/FS_Patrol_02.def118
-rw-r--r--data/shatter/Campaigns/04/Templates/FS_Patrol_03.def125
-rw-r--r--data/shatter/Campaigns/04/Templates/IS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/04/Templates/IS_Patrol_02.def130
-rw-r--r--data/shatter/Campaigns/04/Templates/IS_Patrol_03.def109
-rw-r--r--data/shatter/Campaigns/04/campaign.def957
-rw-r--r--data/shatter/Campaigns/04/zones.def100
-rw-r--r--data/shatter/Campaigns/05/Actions/01-operation-nightfall.txt19
-rw-r--r--data/shatter/Campaigns/05/Actions/02-garden.txt3
-rw-r--r--data/shatter/Campaigns/05/Actions/03-radix.txt3
-rw-r--r--data/shatter/Campaigns/05/Actions/04-politics.txt9
-rw-r--r--data/shatter/Campaigns/05/Actions/06-geothermal-platforms.txt13
-rw-r--r--data/shatter/Campaigns/05/Actions/07-deadmans-alley.txt17
-rw-r--r--data/shatter/Campaigns/05/Actions/08-ramek-station.txt13
-rw-r--r--data/shatter/Campaigns/05/Actions/08a-ramek-destroyed.txt4
-rw-r--r--data/shatter/Campaigns/05/Actions/09-garrison-station.txt15
-rw-r--r--data/shatter/Campaigns/05/Actions/09a-garrison-destroyed.txt4
-rw-r--r--data/shatter/Campaigns/05/Actions/10-trocanther-biodomes.txt17
-rw-r--r--data/shatter/Campaigns/05/Actions/11a-blackwing-destroyed.txt4
-rw-r--r--data/shatter/Campaigns/05/Actions/11b-hood-destroyed.txt4
-rw-r--r--data/shatter/Campaigns/05/Actions/11c-omega-destroyed.txt4
-rw-r--r--data/shatter/Campaigns/05/Actions/12-endgame.txt17
-rw-r--r--data/shatter/Campaigns/05/Actions/15-disappearance.txt21
-rw-r--r--data/shatter/Campaigns/05/Actions/def1.txt3
-rw-r--r--data/shatter/Campaigns/05/Actions/def2.txt3
-rw-r--r--data/shatter/Campaigns/05/Actions/def3.txt3
-rw-r--r--data/shatter/Campaigns/05/Actions/m1-incommunicado.txt17
-rw-r--r--data/shatter/Campaigns/05/Actions/m2-final-message.txt23
-rw-r--r--data/shatter/Campaigns/05/Actions/victory.txt5
-rw-r--r--data/shatter/Campaigns/05/Scenes/01-Operation-Nightfall.def137
-rw-r--r--data/shatter/Campaigns/05/Scenes/02-Garden.def152
-rw-r--r--data/shatter/Campaigns/05/Scenes/03-Radix.def57
-rw-r--r--data/shatter/Campaigns/05/Scenes/04-Politics.def44
-rw-r--r--data/shatter/Campaigns/05/Scenes/06-Geothermal-Platforms.def150
-rw-r--r--data/shatter/Campaigns/05/Scenes/07-Deadmans-Alley.def119
-rw-r--r--data/shatter/Campaigns/05/Scenes/08-Ramek-Station.def57
-rw-r--r--data/shatter/Campaigns/05/Scenes/09-Garrison-Station.def52
-rw-r--r--data/shatter/Campaigns/05/Scenes/10-Trocanther-Biodomes.def157
-rw-r--r--data/shatter/Campaigns/05/Scenes/12-Endgame.def141
-rw-r--r--data/shatter/Campaigns/05/Scenes/15-Disappearance.def133
-rw-r--r--data/shatter/Campaigns/05/Scenes/Defeat1.def71
-rw-r--r--data/shatter/Campaigns/05/Scenes/Defeat2.def94
-rw-r--r--data/shatter/Campaigns/05/Scenes/Defeat3.def95
-rw-r--r--data/shatter/Campaigns/05/Scenes/M1-Incommunicado.def46
-rw-r--r--data/shatter/Campaigns/05/Scenes/M2-Final-Message.def55
-rw-r--r--data/shatter/Campaigns/05/Scenes/Victory.def116
-rw-r--r--data/shatter/Campaigns/05/Templates.def13
-rw-r--r--data/shatter/Campaigns/05/Templates/FS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/05/Templates/FS_Patrol_02.def123
-rw-r--r--data/shatter/Campaigns/05/Templates/FS_Patrol_03.def113
-rw-r--r--data/shatter/Campaigns/05/Templates/IS_Patrol_01.def135
-rw-r--r--data/shatter/Campaigns/05/Templates/IS_Patrol_02.def128
-rw-r--r--data/shatter/Campaigns/05/Templates/IS_Patrol_03.def108
-rw-r--r--data/shatter/Campaigns/05/campaign.def1403
-rw-r--r--data/shatter/Campaigns/05/zones.def97
-rw-r--r--data/shatter/Campaigns/Alliance.def3471
-rw-r--r--data/shatter/Campaigns/Dantari.def1226
-rw-r--r--data/shatter/Campaigns/Haiche.def402
-rw-r--r--data/shatter/Campaigns/Hegemony.def5190
-rw-r--r--data/shatter/Campaigns/Pirates.def452
-rw-r--r--data/shatter/Campaigns/Silessia.def559
-rw-r--r--data/shatter/Campaigns/Solus.def906
-rw-r--r--data/shatter/Campaigns/Zolons.def330
-rw-r--r--data/shatter/Explosions/Explosions.def376
-rw-r--r--data/shatter/Fonts/GUIfont.def26
-rw-r--r--data/shatter/Fonts/GUIsmall.def5
-rw-r--r--data/shatter/Fonts/HUDfont.def5
-rw-r--r--data/shatter/Fonts/Limerick12.def26
-rw-r--r--data/shatter/Fonts/Limerick18.def42
-rw-r--r--data/shatter/Fonts/OCRB.def7
-rw-r--r--data/shatter/Fonts/Terminal.def5
-rw-r--r--data/shatter/Fonts/Verdana.def5
-rw-r--r--data/shatter/Galaxy/Athenar/Athenar.def83
-rw-r--r--data/shatter/Galaxy/Black/Black.def50
-rw-r--r--data/shatter/Galaxy/Borova/Borova.def271
-rw-r--r--data/shatter/Galaxy/Galaxy.def50
-rw-r--r--data/shatter/Galaxy/Garrison/Garrison.def124
-rw-r--r--data/shatter/Galaxy/Haiche/Haiche.def198
-rw-r--r--data/shatter/Galaxy/Isham/Isham.def223
-rw-r--r--data/shatter/Galaxy/Janus/Janus.def218
-rw-r--r--data/shatter/Galaxy/Jarnell/Jarnell.def227
-rw-r--r--data/shatter/Galaxy/Kolchev/Kolchev.def217
-rw-r--r--data/shatter/Galaxy/Korius/Korius.def177
-rw-r--r--data/shatter/Galaxy/Loris/Loris.def173
-rw-r--r--data/shatter/Galaxy/Marak/Marak.def70
-rw-r--r--data/shatter/Galaxy/Museum/Museum.def49
-rw-r--r--data/shatter/Galaxy/Nephrys/Nephrys.def53
-rw-r--r--data/shatter/Galaxy/Ostara/Ostara.def61
-rw-r--r--data/shatter/Galaxy/Paragon/Paragon.def168
-rw-r--r--data/shatter/Galaxy/Radix/Radix.def183
-rw-r--r--data/shatter/Galaxy/Renser/Renser.def184
-rw-r--r--data/shatter/Galaxy/Silessia/Silessia.def191
-rw-r--r--data/shatter/Galaxy/Solus/Solus.def222
-rw-r--r--data/shatter/Galaxy/Tarsus/Tarsus.def82
-rw-r--r--data/shatter/Galaxy/Thralis/Thralis.def171
-rw-r--r--data/shatter/Galaxy/Trocanther/Trocanther.def155
-rw-r--r--data/shatter/Missions/01-Alert.def163
-rw-r--r--data/shatter/Missions/02-Wings.def142
-rw-r--r--data/shatter/Missions/03-Honor.def628
-rw-r--r--data/shatter/Missions/04-Sand.def290
-rw-r--r--data/shatter/Missions/05-Execution.def179
-rw-r--r--data/shatter/Missions/06-SEAD.def242
-rw-r--r--data/shatter/Missions/07-SLGAM.def282
-rw-r--r--data/shatter/Missions/08-Focus.def186
-rw-r--r--data/shatter/Missions/09-Hounds.def210
-rw-r--r--data/shatter/Missions/10-Angels.def233
-rw-r--r--data/shatter/Missions/Missions.def137
-rw-r--r--data/shatter/Multiplayer/D4.DEF140
-rw-r--r--data/shatter/Multiplayer/Thrash.def97
-rw-r--r--data/shatter/Multiplayer/hawkmatch.def182
-rw-r--r--data/shatter/Multiplayer/wargames.def446
-rw-r--r--data/shatter/Screens/AudDlg.frm298
-rw-r--r--data/shatter/Screens/AwardDlg.frm145
-rw-r--r--data/shatter/Screens/CmdDlg.frm435
-rw-r--r--data/shatter/Screens/CmdForceDlg.frm358
-rw-r--r--data/shatter/Screens/CmdIntelDlg.frm364
-rw-r--r--data/shatter/Screens/CmdMissionsDlg.frm351
-rw-r--r--data/shatter/Screens/CmdMsgDlg.frm76
-rw-r--r--data/shatter/Screens/CmdOrdersDlg.frm264
-rw-r--r--data/shatter/Screens/CmdTheaterDlg.frm356
-rw-r--r--data/shatter/Screens/CmpCompleteDlg.frm85
-rw-r--r--data/shatter/Screens/CmpLoadDlg.frm89
-rw-r--r--data/shatter/Screens/CmpSceneDlg.frm31
-rw-r--r--data/shatter/Screens/CmpSelectDlg.frm214
-rw-r--r--data/shatter/Screens/ConfirmDlg.frm79
-rw-r--r--data/shatter/Screens/CtlDlg.frm475
-rw-r--r--data/shatter/Screens/DebriefDlg.frm375
-rw-r--r--data/shatter/Screens/DeckDlg.frm275
-rw-r--r--data/shatter/Screens/EngDlg.frm606
-rw-r--r--data/shatter/Screens/ExitDlg.frm88
-rw-r--r--data/shatter/Screens/FileDlg.frm122
-rw-r--r--data/shatter/Screens/FirstTimeDlg.frm163
-rw-r--r--data/shatter/Screens/FltDlg.frm428
-rw-r--r--data/shatter/Screens/HelmDetail.frm235
-rw-r--r--data/shatter/Screens/JoyDlg.frm220
-rw-r--r--data/shatter/Screens/KeyDlg.frm142
-rw-r--r--data/shatter/Screens/LoadDlg.frm64
-rw-r--r--data/shatter/Screens/MenuDlg.frm159
-rw-r--r--data/shatter/Screens/ModConfigDlg.frm138
-rw-r--r--data/shatter/Screens/ModDlg.frm337
-rw-r--r--data/shatter/Screens/ModInfoDlg.frm111
-rw-r--r--data/shatter/Screens/MsgDlg.frm120
-rw-r--r--data/shatter/Screens/MsnDlg.frm454
-rw-r--r--data/shatter/Screens/MsnEditDlg.frm618
-rw-r--r--data/shatter/Screens/MsnEditNavDlg.frm520
-rw-r--r--data/shatter/Screens/MsnElemDlg.frm494
-rw-r--r--data/shatter/Screens/MsnEventDlg.frm326
-rw-r--r--data/shatter/Screens/MsnNavDlg.frm477
-rw-r--r--data/shatter/Screens/MsnObjDlg.frm352
-rw-r--r--data/shatter/Screens/MsnPkgDlg.frm467
-rw-r--r--data/shatter/Screens/MsnSelectDlg.frm241
-rw-r--r--data/shatter/Screens/MsnWepDlg.frm509
-rw-r--r--data/shatter/Screens/NavDlg.frm396
-rw-r--r--data/shatter/Screens/NetAddrDlg.frm145
-rw-r--r--data/shatter/Screens/NetClientDlg.frm205
-rw-r--r--data/shatter/Screens/NetLobbyDlg.frm218
-rw-r--r--data/shatter/Screens/NetPassDlg.frm118
-rw-r--r--data/shatter/Screens/NetServerDlg.frm198
-rw-r--r--data/shatter/Screens/NetUnitDlg.frm286
-rw-r--r--data/shatter/Screens/OptDlg.frm426
-rw-r--r--data/shatter/Screens/PlanDlg.frm424
-rw-r--r--data/shatter/Screens/PlayerDlg.frm690
-rw-r--r--data/shatter/Screens/TacRefDlg.frm212
-rw-r--r--data/shatter/Screens/VidDlg.frm425
-rw-r--r--data/shatter/Screens/WepDlg.frm701
-rw-r--r--data/shatter/Ships/Airbases/Airbase1.def119
-rw-r--r--data/shatter/Ships/Airbases/Airbase2.def120
-rw-r--r--data/shatter/Ships/Airbases/Airbase3.def121
-rw-r--r--data/shatter/Ships/Alliance_Fighters/Eagle.def366
-rw-r--r--data/shatter/Ships/Alliance_Fighters/Falcon.def309
-rw-r--r--data/shatter/Ships/Alliance_Fighters/Stormhawk.def335
-rw-r--r--data/shatter/Ships/Alliance_Fighters/Thunderbolt.def356
-rw-r--r--data/shatter/Ships/Alliance_Fighters/Zodiac.def243
-rw-r--r--data/shatter/Ships/Alliance_Ships/Asher.def398
-rw-r--r--data/shatter/Ships/Alliance_Ships/Berents.def333
-rw-r--r--data/shatter/Ships/Alliance_Ships/Cruiser.def437
-rw-r--r--data/shatter/Ships/Alliance_Ships/Devastator.def450
-rw-r--r--data/shatter/Ships/Alliance_Ships/Orion.def515
-rw-r--r--data/shatter/Ships/Alliance_Ships/Spectre.def415
-rw-r--r--data/shatter/Ships/Alliance_Stations/Farcaster.def111
-rw-r--r--data/shatter/Ships/Alliance_Stations/Fortress.def272
-rw-r--r--data/shatter/Ships/Alliance_Stations/FreightXfer.def167
-rw-r--r--data/shatter/Ships/Alliance_Stations/Harmony.def158
-rw-r--r--data/shatter/Ships/Alliance_Stations/Observatory.def98
-rw-r--r--data/shatter/Ships/Alliance_Stations/S6.def199
-rw-r--r--data/shatter/Ships/Archaelith/Archaelith.def79
-rw-r--r--data/shatter/Ships/Buildings/Barracks.def36
-rw-r--r--data/shatter/Ships/Buildings/BioDome.def23
-rw-r--r--data/shatter/Ships/Buildings/BioDome2.def23
-rw-r--r--data/shatter/Ships/Buildings/BioTrail.def22
-rw-r--r--data/shatter/Ships/Buildings/Bldg00.def37
-rw-r--r--data/shatter/Ships/Buildings/Bldg01.def35
-rw-r--r--data/shatter/Ships/Buildings/Bldg02.def35
-rw-r--r--data/shatter/Ships/Buildings/Bldg03.def35
-rw-r--r--data/shatter/Ships/Buildings/Bldg04.def35
-rw-r--r--data/shatter/Ships/Buildings/Bldg05.def35
-rw-r--r--data/shatter/Ships/Buildings/City00.def21
-rw-r--r--data/shatter/Ships/Buildings/City01.def21
-rw-r--r--data/shatter/Ships/Buildings/City02.def21
-rw-r--r--data/shatter/Ships/Buildings/City03.def21
-rw-r--r--data/shatter/Ships/Buildings/Cool00.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt00.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt01.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt02.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt03.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt04.def35
-rw-r--r--data/shatter/Ships/Buildings/Dsrt05.def35
-rw-r--r--data/shatter/Ships/Buildings/Fact00.def35
-rw-r--r--data/shatter/Ships/Buildings/Fact01.def35
-rw-r--r--data/shatter/Ships/Buildings/Fact02.def35
-rw-r--r--data/shatter/Ships/Buildings/Fact03.def35
-rw-r--r--data/shatter/Ships/Buildings/Fact04.def35
-rw-r--r--data/shatter/Ships/Buildings/Platform.def35
-rw-r--r--data/shatter/Ships/Buildings/Reac01.def35
-rw-r--r--data/shatter/Ships/Buildings/Senate.def17
-rw-r--r--data/shatter/Ships/Buildings/Tank00.def35
-rw-r--r--data/shatter/Ships/CameraPod/CameraPod.def81
-rw-r--r--data/shatter/Ships/Civil/CargoA.def252
-rw-r--r--data/shatter/Ships/Civil/CargoB.def252
-rw-r--r--data/shatter/Ships/Civil/CargoC.def254
-rw-r--r--data/shatter/Ships/Civil/Courier.def192
-rw-r--r--data/shatter/Ships/Civil/TankerA.def257
-rw-r--r--data/shatter/Ships/Civil/TankerB.def257
-rw-r--r--data/shatter/Ships/Civil/Transport.def242
-rw-r--r--data/shatter/Ships/Colony/Colony.def88
-rw-r--r--data/shatter/Ships/Dantari_Ships/Baikal.def314
-rw-r--r--data/shatter/Ships/Dantari_Ships/Goliath.def363
-rw-r--r--data/shatter/Ships/Dantari_Ships/Mine1.def126
-rw-r--r--data/shatter/Ships/Dantari_Ships/Wolf.def367
-rw-r--r--data/shatter/Ships/Farcaster/Farcaster.def146
-rw-r--r--data/shatter/Ships/Farcaster/Farcaster2.def153
-rw-r--r--data/shatter/Ships/Ground_Units/Gnd_aaa1.def64
-rw-r--r--data/shatter/Ships/Ground_Units/Gnd_aaa2.def63
-rw-r--r--data/shatter/Ships/Ground_Units/Gnd_sam1.def70
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Avenger.def360
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Cobra.def332
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Intruder.def309
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Jackal.def210
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Raptor.def360
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Razor.def337
-rw-r--r--data/shatter/Ships/Marakan_Fighters/Viper.def273
-rw-r--r--data/shatter/Ships/Marakan_Ships/Broadsword.def456
-rw-r--r--data/shatter/Ships/Marakan_Ships/Dragon.def492
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Broadsword.def401
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Dragon.def487
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Imperial.def413
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Tiger.def256
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Vendetta.def444
-rw-r--r--data/shatter/Ships/Marakan_Ships/Hulk-Volnaris.def293
-rw-r--r--data/shatter/Ships/Marakan_Ships/Imperial.def418
-rw-r--r--data/shatter/Ships/Marakan_Ships/Tiger.def314
-rw-r--r--data/shatter/Ships/Marakan_Ships/Vendetta.def449
-rw-r--r--data/shatter/Ships/Marakan_Ships/Volnaris.def349
-rw-r--r--data/shatter/Ships/Marakan_Stations/S4.def255
-rw-r--r--data/shatter/Ships/Marakan_Stations/S5.def271
-rw-r--r--data/shatter/Ships/Marakan_Stations/S7.def218
-rw-r--r--data/shatter/Ships/Pirate_Ships/Carrier.def409
-rw-r--r--data/shatter/Ships/Pirate_Ships/Cutlass.def236
-rw-r--r--data/shatter/Ships/Pirate_Ships/Marauder.def270
-rw-r--r--data/shatter/Ships/Pirate_Ships/QShip.def311
-rw-r--r--data/shatter/Ships/Pirate_Ships/Saber.def254
-rw-r--r--data/shatter/Ships/Stations/Relay1.def33
-rw-r--r--data/shatter/Ships/TargetDrone/TargetDrone.def105
-rw-r--r--data/shatter/Ships/Zolons/ZZA.def146
-rw-r--r--data/shatter/Ships/Zolons/ZZCA.def274
-rw-r--r--data/shatter/Ships/Zolons/ZZCS.def274
-rw-r--r--data/shatter/Ships/Zolons/ZZDD.def249
-rw-r--r--data/shatter/Ships/Zolons/ZZF.def148
-rw-r--r--data/shatter/Ships/Zolons/ZZFF.def274
-rw-r--r--data/shatter/Ships/catalog.def117
-rw-r--r--data/shatter/Sys.def751
-rw-r--r--data/shatter/Weapons/Wep.def2135
-rw-r--r--data/shatter/credits.txt134
-rw-r--r--data/shatter/magic.fx847
734 files changed, 144914 insertions, 0 deletions
diff --git a/data/.gitignore b/data/.gitignore
new file mode 100644
index 0000000..eabf464
--- /dev/null
+++ b/data/.gitignore
@@ -0,0 +1,9 @@
+*.wav
+*.WAV
+*.mag
+*.MAG
+*.pcx
+*.PCX
+*.jpg
+*.IPL
+*.PAL
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100644
index 0000000..5ce31e3
--- /dev/null
+++ b/data/CMakeLists.txt
@@ -0,0 +1,3 @@
+include(AddDatafile)
+add_datafile(content)
+add_datafile(shatter)
diff --git a/data/content/Awards/Awards.def b/data/content/Awards/Awards.def
new file mode 100644
index 0000000..38a2253
--- /dev/null
+++ b/data/content/Awards/Awards.def
@@ -0,0 +1,386 @@
+AWARDS
+
+//
+// *** R A N K T A B L E ***
+//
+
+award: {
+ type: rank,
+ id: 0,
+ name: "award.rank.0.name",
+ abrv: "award.rank.0.abrv",
+ desc: "award.rank.0.desc",
+ award: "award.rank.0.grant",
+ award_sound: "Awards/Rank0.wav"
+ small: Rank00,
+ large: Rank01,
+ grant: 0x7,
+ total_points: 0,
+}
+
+award: {
+ type: rank,
+ id: 1,
+ name: "award.rank.1.name",
+ abrv: "award.rank.1.abrv",
+ desc: "award.rank.1.desc",
+ award: "award.rank.1.grant",
+ award_sound: "Awards/Rank1.wav"
+ small: Rank10,
+ large: Rank11,
+ grant: 0x7,
+ total_points: 500,
+}
+
+award: {
+ type: rank,
+ id: 2,
+ name: "award.rank.2.name",
+ abrv: "award.rank.2.abrv",
+ desc: "award.rank.2.desc",
+ award: "award.rank.2.grant",
+ award_sound: "Awards/Rank2.wav"
+ small: Rank20,
+ large: Rank21,
+ grant: 0x7,
+ total_points: 2000,
+}
+
+award: {
+ type: rank,
+ id: 3,
+ name: "award.rank.3.name",
+ abrv: "award.rank.3.abrv",
+ desc: "award.rank.3.desc",
+ award: "award.rank.3.grant",
+ award_sound: "Awards/Rank3.wav"
+ small: Rank30,
+ large: Rank31,
+ grant: 0x03ff,
+ total_points: 5000,
+}
+
+award: {
+ type: rank,
+ id: 4,
+ name: "award.rank.4.name",
+ abrv: "award.rank.4.abrv",
+ desc: "award.rank.4.desc",
+ award: "award.rank.4.grant",
+ award_sound: "Awards/Rank4.wav"
+ small: Rank40,
+ large: Rank41,
+ grant: 0x03ff,
+ total_points: 10e3,
+}
+
+award: {
+ type: rank,
+ id: 5,
+ name: "award.rank.5.name",
+ abrv: "award.rank.5.abrv",
+ desc: "award.rank.5.desc",
+ award: "award.rank.5.grant",
+ award_sound: "Awards/Rank5.wav"
+ small: Rank50,
+ large: Rank51,
+ grant: 0x0fff,
+ total_points: 20e3,
+}
+
+award: {
+ type: rank,
+ id: 6,
+ name: "award.rank.6.name",
+ abrv: "award.rank.6.abrv",
+ desc: "award.rank.6.desc",
+ award: "award.rank.6.grant",
+ award_sound: "Awards/Rank6.wav"
+ small: Rank60,
+ large: Rank61,
+ grant: 0xffff,
+ total_points: 40e3,
+}
+
+award: {
+ type: rank,
+ id: 7,
+ name: "award.rank.7.name",
+ abrv: "award.rank.7.abrv",
+ desc: "award.rank.7.desc",
+ award: "award.rank.7.grant",
+ award_sound: "Awards/Rank7.wav"
+ small: Rank70,
+ large: Rank71,
+ grant: 0xffff,
+ total_points: 100e3,
+}
+
+award: {
+ type: rank,
+ id: 8,
+ name: "award.rank.8.name",
+ abrv: "award.rank.8.abrv",
+ desc: "award.rank.8.desc",
+ award: "award.rank.8.grant",
+ award_sound: "Awards/Rank8.wav"
+ small: Rank80,
+ large: Rank81,
+ grant: 0xffff,
+ total_points: 150e3,
+}
+
+award: {
+ type: rank,
+ id: 9,
+ name: "award.rank.9.name",
+ abrv: "award.rank.9.abrv",
+ desc: "award.rank.9.desc",
+ award: "award.rank.9.grant",
+ award_sound: "Awards/Rank9.wav"
+ small: Rank90,
+ large: Rank91,
+ grant: 0xffff,
+ total_points: 200e3,
+}
+
+award: {
+ type: rank,
+ id: 10,
+ name: "award.rank.10.name",
+ abrv: "award.rank.10.abrv",
+ desc: "award.rank.10.desc",
+ award: "award.rank.10.grant",
+ award_sound: "Awards/RankA.wav"
+ small: RankA0,
+ large: RankA1,
+ grant: 0xffff,
+ total_points: 250e3,
+}
+
+//
+// *** M E D A L T A B L E ***
+//
+
+award: {
+ type: medal,
+ id: 0x0001,
+ name: "award.medal.0001.name",
+ desc: "award.medal.0001.desc",
+ award: "award.medal.0001.grant",
+ small: Ribbon05,
+ large: Medal05,
+
+ campaign_id: 5,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0002,
+ name: "award.medal.0002.name",
+ desc: "award.medal.0002.desc",
+ award: "award.medal.0002.grant",
+ small: Ribbon04,
+ large: Medal04,
+
+ campaign_id: 4,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0004,
+ name: "award.medal.0004.name",
+ desc: "award.medal.0004.desc",
+ award: "award.medal.0004.grant",
+ small: Ribbon03,
+ large: Medal03,
+
+ campaign_id: 3,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0010,
+ name: "award.medal.0010.name",
+ desc: "award.medal.0010.desc",
+ award: "award.medal.0010.grant",
+ small: Ribbon01,
+ large: Medal01,
+
+ campaign_id: 2,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0020,
+ name: "award.medal.0020.name",
+ desc: "award.medal.0020.desc",
+ award: "award.medal.0020.grant",
+ small: Ribbon06,
+ large: Medal06,
+ lost: 1,
+ min_rank: 1,
+ max_rank: 6,
+ lottery: 2,
+}
+
+award: {
+ type: medal,
+ id: 0x0040,
+ name: "award.medal.0040.name",
+ desc: "award.medal.0040.desc",
+ award: "award.medal.0040.grant",
+ small: Ribbon07,
+ large: Medal07,
+ lost: -1,
+ kills: 3,
+ min_rank: 1,
+ max_rank: 6,
+ max_ship_class: attack,
+ lottery: 10,
+ total_missions: 15,
+}
+
+award: {
+ type: medal,
+ id: 0x0080,
+ name: "award.medal.0080.name",
+ desc: "award.medal.0080.desc",
+ award: "award.medal.0080.grant",
+ small: Ribbon08,
+ large: Medal08,
+ lost: -1,
+ kills: 3,
+ min_rank: 3,
+ max_rank: 6,
+ min_ship_class: corvette,
+ lottery: 10,
+}
+
+award: {
+ type: medal,
+ id: 0x0100,
+ name: "award.medal.0100.name",
+ desc: "award.medal.0100.desc",
+ award: "award.medal.0100.grant",
+ small: Ribbon09,
+ large: Medal09,
+
+ kills: 1,
+ min_rank: 3,
+ lottery: 20,
+ total_missions: 100,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0200,
+ name: "award.medal.0200.name",
+ desc: "award.medal.0200.desc",
+ award: "award.medal.0200.grant",
+ small: Ribbon0A,
+ large: Medal0A,
+
+ lost: -1,
+ kills: 3,
+ min_rank: 4,
+ max_rank: 7,
+ lottery: 20,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0400,
+ name: "award.medal.0400.name",
+ desc: "award.medal.0400.desc",
+ award: "award.medal.0400.grant",
+ small: Ribbon0B,
+ large: Medal0B,
+
+ lost: 1,
+ kills: 5,
+ required_awards: 0x0020,
+ lottery: 2,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0800,
+ name: "award.medal.0800.name",
+ desc: "award.medal.0800.desc",
+ award: "award.medal.0800.grant",
+ small: Ribbon0C,
+ large: Medal0C,
+
+ lost: -1,
+ kills: 2,
+ min_ship_class: destroyer,
+ required_awards: 0x0080,
+ lottery: 20,
+ total_missions: 50,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x1000,
+ name: "award.medal.1000.name",
+ desc: "award.medal.1000.desc",
+ award: "award.medal.1000.grant",
+ small: Ribbon0D,
+ large: Medal0D,
+
+ kills: 8,
+ required_awards: 0x0400,
+ lottery: 3,
+ total_missions: 100,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x2000,
+ name: "award.medal.2000.name",
+ desc: "award.medal.2000.desc",
+ award: "award.medal.2000.grant",
+ small: Ribbon0E,
+ large: Medal0E,
+
+ kills: 8,
+ required_awards: 0x0400,
+ lottery: 3,
+ total_missions: 150,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x4000,
+ name: "award.medal.4000.name",
+ desc: "award.medal.4000.desc",
+ award: "award.medal.4000.grant",
+ small: Ribbon0F,
+ large: Medal0F,
+
+ kills: 10,
+ required_awards: 0x3400,
+ total_missions: 200,
+ dynamic_campaign: true
+}
+
+
diff --git a/data/content/Campaigns/01/Scenes/Intro.def b/data/content/Campaigns/01/Scenes/Intro.def
new file mode 100644
index 0000000..4d87242
--- /dev/null
+++ b/data/content/Campaigns/01/Scenes/Intro.def
@@ -0,0 +1,153 @@
+MISSION
+
+name: "Campaign 01 - Intro"
+type: "Patrol"
+system: Borova
+region: Borova
+stardate: 1001994001
+
+degrees: true
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: true
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-6e3, 10e3, 0)
+ navpt: { cmd: Vector, loc: (-6e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Lifters"
+ design: "Zodiac"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 8
+ iff: 1
+ region: "Borova"
+ loc: (17e3, 18e3, 0)
+}
+
+element: {
+ name: "Proteus"
+ design: "Zodiac"
+ squadron: "Lifters"
+ commander: "Archon"
+ mission: "Transport"
+ head: -30
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (15e3, 29e3, 0)
+
+ navpt: { cmd: Vector, loc: (7e3, 17e3, 0), speed: 500 }
+ navpt: { cmd: RTB, loc: (4e3, 9e3, 0), speed: 350 }
+}
+
+event: { id: 100, event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Hold, param: 99, ship: Archon }
+event: { event: Hold, param: 99, ship: Stalwart }
+event: { event: Hold, param: 99, ship: Gerson }
+event: { event: Hold, param: 99, ship: Simmons }
+
+event: { event: Camera, param: 3, target: Proteus, vec: (1,-0.1,1500) }
+event: { event: Camera, param: 5, vec: (0.10, 0.002, -0.01) }
+
+event: { event: Display, time: 1, message: "c01.intro.e001", font: Limerick18, color: 0xffffff80, fade: (1,15,1), rect: (20,20, 400,100) }
+event: { event: Display, time: 3, message: "c01.intro.e002", font: Limerick12, color: 0xffffff80, fade: (1,13,1), rect: (20,40, 400,100) }
+
+event: { id: 1, time: 5, sound: "Vox/Scenes/01/Intro-1.ogg" }
+event: { id: 2, time: 15, sound: "Vox/Scenes/01/Intro-2.ogg" }
+event: { id: 3, time: 52, sound: "Vox/Scenes/01/Intro-3.ogg" }
+event: { id: 4, sound: "Vox/Scenes/01/Intro-4.ogg", trigger: Dock, trigger_ship: Proteus }
+
+event: { event: Hold, param: 0, ship: Archon, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Stalwart, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Gerson, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Simmons, trigger: Event, trigger_param: 4 }
+
+event: { event: Camera, param: 3, target: Archon, vec: (2,0,2700), trigger: Event, trigger_param: 4 }
+event: { event: Camera, param: 5, vec: (0.12, 0.006, -0.02), trigger: Event, trigger_param: 4 }
+
+event: { event: Display, message: "c01.intro.e003", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 400,100), trigger: Event, trigger_param: 4 }
+event: { event: Display, message: "c01.intro.e004", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4 }
+event: { event: Display, message: "c01.intro.e005", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 3 }
+event: { event: Display, message: "c01.intro.e006", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 6 }
+event: { event: Display, message: "c01.intro.e007", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 9 }
+
+event: { event: Jump, ship: Archon, target: Tulkas, trigger: Event, trigger_param: 4, delay: 20 }
+event: { event: Jump, ship: Stalwart, target: Tulkas, trigger: Event, trigger_param: 4, delay: 19 }
+event: { event: Jump, ship: Gerson, target: Tulkas, trigger: Event, trigger_param: 4, delay: 18 }
+event: { event: Jump, ship: Simmons, target: Tulkas, trigger: Event, trigger_param: 4, delay: 16 }
+
+event: { event: Display, image: "Campaigns/01/Scenes/Black.pcx", color: 0xffffffff, fade: (1,30,1), rect: (0,0,0,0) , trigger: Event, trigger_param: 4, delay: 21 }
+event: { event: Display, image: "Campaigns/01/Scenes/Starshatter.pcx", color: 0xffffffff, fade: (1,10,1), rect: (0,0, -1024,-256) , trigger: Event, trigger_param: 4, delay: 22 }
+event: { event: Display, image: "Campaigns/01/Scenes/TheGatheringStorm.pcx", color: 0xffffffff, fade: (1, 7,1), rect: (0,0, -1024,-256) , trigger: Event, trigger_param: 4, delay: 25 }
+
+event: { id: 200, event: EndScene, message: "Scene 1", delay: 35, trigger: Event, trigger_param: 4 }
+event: { id: 201, event: Exit, delay: 35, trigger: Event, trigger_param: 4 }
+
+// EOF
diff --git a/data/content/Campaigns/01/T1.def b/data/content/Campaigns/01/T1.def
new file mode 100644
index 0000000..029aa5a
--- /dev/null
+++ b/data/content/Campaigns/01/T1.def
@@ -0,0 +1,69 @@
+MISSION
+
+name: "c01.t01.name"
+type: "Training"
+system: "Janus"
+region: "Janek"
+
+objective: "c01.t01.obj"
+sitrep: "c01.t01.sitrep"
+
+start: "01/09:23:00"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Stallions,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ }
+
+element: {
+ name: Delta
+ design: Falcon
+ squadron: Stallions
+ loc: (1e3, 2e3, 0)
+ mission: sweep
+ player: 2
+ alert: true
+ count: 2
+ iff: 1
+ loadout: { ship: -1, name: "ACM Medium Range" }
+
+ navpt: { cmd: vector, loc: (10e3,-20e3, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (30e3,-20e3, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (40e3, 0, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (15e3, 20e3, 0), speed: 500 }
+ navpt: { cmd: rtb, loc: ( 0, 25e3, 0), speed: 250 }
+}
+
+
+// VOICE-OVER
+
+
+event: { event: Message, time: 2, sound: "Vox/Train/Train-01-01.ogg", message: "c01.t01.e01" }
+event: { event: Message, time: 35, sound: "Vox/Train/Train-01-02.ogg", message: "c01.t01.e02" }
+event: { event: Message, time: 50, sound: "Vox/Train/Train-01-03.ogg", message: "c01.t01.e03" }
+event: { event: Message, time: 75, sound: "Vox/Train/Train-01-04.ogg", message: "c01.t01.e04" }
+event: { event: Message, time: 100, sound: "Vox/Train/Train-01-05.ogg", message: "c01.t01.e05" }
+event: { event: Message, time: 125, sound: "Vox/Train/Train-01-06.ogg", message: "c01.t01.e06" }
+event: { event: Message, time: 135, sound: "Vox/Train/Train-01-07.ogg", message: "c01.t01.e07" }
+event: { event: Message, time: 170, sound: "Vox/Train/Train-01-08.ogg", message: "c01.t01.e08" }
+event: { event: Message, id: 100, sound: "Vox/Train/Train-01-09.ogg", message: "c01.t01.e09",
+ trigger: Navpoint, trigger_param: 5, trigger_ship: Delta }
+event: { event: Message, sound: "Vox/Train/Train-01-10.ogg", message: "c01.t01.e10",
+ trigger: Event, trigger_param: 100, delay: 25 }
+
+
diff --git a/data/content/Campaigns/01/T2.def b/data/content/Campaigns/01/T2.def
new file mode 100644
index 0000000..f643659
--- /dev/null
+++ b/data/content/Campaigns/01/T2.def
@@ -0,0 +1,283 @@
+MISSION
+
+name: "c01.t02.name"
+type: "Training"
+system: "Janus"
+region: "Janek"
+
+objective: "c01.t02.obj"
+sitrep: "c01.t02.sitrep"
+
+start: "01/09:23:00"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+/*****/
+
+element: {
+ name: Stallions,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ }
+
+element: {
+ name: Echo,
+ design: Falcon,
+ squadron: Stallions,
+ loc: (1e3, 2e3, 0),
+ mission: sweep,
+ objective: { cmd: intercept, tgt: Alpha },
+ objective: { cmd: intercept, tgt: Bravo },
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: ( 5e3,-10e3, 0), speed: 500 },
+ navpt: { cmd: vector, loc: (12e3,-25e3, 0), speed: 500 },
+ navpt: { cmd: sweep, loc: (40e3, 0, 0), speed: 500 },
+ navpt: { cmd: sweep, loc: (30e3, 30e3, 0), speed: 500 },
+ navpt: { cmd: rtb, loc: ( 0, 30e3, 0), speed: 250 }
+}
+
+/***/
+
+element: {
+ name: Alpha,
+ design: TargetDrone,
+ loc: (-12e3, -50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-8e3, -50e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, -30e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 50e3, 0), speed: 400 },
+}
+
+element: {
+ name: Bravo,
+ design: TargetDrone,
+ loc: (5e3, 50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (10e3, 40e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (20e3, 25e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, -50e3, 0), speed: 400 },
+}
+
+element: {
+ name: Delta,
+ design: Viper,
+ loc: (40e3, 60e3, 0),
+ count: 2,
+ iff: 200,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: sweep, loc: (15e3, -40e3, 0), speed: 750 },
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 4",
+}
+
+
+
+event: {
+ id: 106,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 1",
+}
+
+event: {
+ id: 107,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 2",
+}
+
+event: {
+ id: 108,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 3",
+}
+
+event: {
+ id: 109,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 4",
+}
+
+
+event: {
+ id: 120,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Delta 1",
+}
+
+event: {
+ id: 121,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Delta 2",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 151, event: Message, time: 2, sound: "Vox/Train/Train-02-01.ogg", message: "c01.t02.e151" }
+event: { id: 152, event: Message, time: 25, sound: "Vox/Train/Train-02-02a.ogg", message: "c01.t02.e152" }
+event: { id: 153, event: Message, time: 42, sound: "Vox/Train/Train-02-02b.ogg", message: "c01.t02.e153" }
+event: { id: 154, event: Message, time: 55, sound: "Vox/Train/Train-02-03.ogg", message: "c01.t02.e154" }
+event: { id: 155, event: Message, time: 90, sound: "Vox/Train/Train-02-04.ogg", message: "c01.t01.e155" }
+
+event: {
+ id: 199,
+ event: Message,
+ trigger: "Event (ANY)",
+ trigger_param: (101, 102, 103, 104),
+}
+
+event: {
+ id: 200,
+ event: Message,
+ sound: "Vox/Train/Train-02-05.ogg",
+ message: "Good!",
+ trigger: "Event (ALL)",
+ trigger_param: (155, 199),
+ delay: 1
+}
+
+event: {
+ id: 201,
+ event: Message,
+ sound: "Vox/Train/Train-02-06.ogg", message: "c01.t01.e201",
+ trigger: Event,
+ trigger_param: 200,
+ delay: 5
+}
+
+event: {
+ id: 205,
+ event: Message,
+ sound: "Vox/Train/Train-02-07.ogg",
+ message: "c01.t01.e205",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104, 201),
+ delay: 1
+}
+
+
+event: {
+ id: 210,
+ event: Message,
+ sound: "Vox/Train/Train-02-08.ogg",
+ message: "c01.t01.e210",
+ trigger: "Event (ALL)",
+ trigger_param: (205, 106, 107, 108, 109),
+}
+
+event: {
+ id: 211,
+ event: Message,
+ sound: "Vox/Train/Train-02-09.ogg",
+ message: "c01.t01.e211",
+ trigger: Event,
+ trigger_param: 210,
+ delay: 3
+}
+
+
+event: {
+ id: 212,
+ event: IFF,
+ event_param: 2,
+ event_ship: "Delta 1",
+ trigger: Event,
+ trigger_param: 211,
+ delay: 3
+}
+
+event: {
+ id: 213,
+ event: Message,
+ sound: "Vox/Train/Train-02-10.ogg",
+ event_message: "c01.t01.e213",
+ trigger: "Event",
+ trigger_param: 211,
+ delay: 25
+}
+
+event: {
+ id: 215,
+ event: Message,
+ sound: "Vox/Train/Train-02-11.ogg",
+ event_message: "c01.t01.e215",
+ trigger: "Event (ALL)",
+ trigger_param: (120, 121),
+}
+
+event: {
+ id: 300,
+ event: Message,
+ message: "c01.t01.e300",
+ sound: "Vox/Train/Train-02-12.ogg",
+ trigger: Navpoint,
+ trigger_param: 5,
+ trigger_ship: Echo
+}
+
+event: {
+ id: 301,
+ event: Message,
+ message: "c01.t01.e301",
+ sound: "Vox/Train/Train-02-13.ogg",
+ trigger: Event,
+ trigger_param: 300,
+ delay: 18
+}
diff --git a/data/content/Campaigns/01/T3.def b/data/content/Campaigns/01/T3.def
new file mode 100644
index 0000000..11e0b1f
--- /dev/null
+++ b/data/content/Campaigns/01/T3.def
@@ -0,0 +1,279 @@
+MISSION
+
+name: "c01.t03.name"
+type: "Training"
+system: "Janus"
+region: "Janek Station"
+
+objective: "c01.t03.obj"
+sitrep: "c01.t03.sitrep"
+
+start: "01/13:23:00"
+stardate: 1084144000
+
+degrees: true
+
+
+element: {
+ name: "Janek Station",
+ design: Airbase1,
+ loc: (25e3, 0, 0),
+ head: -90,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: "Janek Station",
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Alpha,
+ design: Falcon,
+ squadron: Avengers,
+ loc: (15e3,-5e3, 5e3),
+ mission: sweep,
+ objective: { cmd: intercept, tgt: Sierra },
+ player: 1,
+ head: -90,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: (-15e3, -5e3, 7e3), speed: 350 },
+ navpt: { cmd: vector, loc: (-15e3, -20e3, 8e3), speed: 500 },
+ navpt: { cmd: sweep, loc: ( 0, -10e3, 10e3), speed: 500 },
+ navpt: { cmd: sweep, loc: ( 10e3, -10e3, 10e3), speed: 500 },
+ navpt: { cmd: rtb, loc: ( 60e3, 0, 10e3), speed: 400 },
+}
+
+
+/***/
+
+element: {
+ name: Sierra,
+ design: TargetDrone,
+ loc: ( 50e3, 20e3, 10e3),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: ( 20e3, 20e3, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: ( 20e3, 0, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: ( 0, -20e3, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: (-20e3, -15e3, 10e3), speed: 300 },
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 28e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-21e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-16e3, 32e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Dome",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 31e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-18e3, 30e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Fact03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-17e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 4,
+ iff: 2,
+ playable: false,
+ region: "Janek Station",
+ loc: (70000, -10000, 0),
+
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 4",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 200, event: Message, time: 2, sound: "Vox/Train/Train-03-01.ogg", message: "c01.t03.e200" }
+event: { id: 210, event: Message, time: 20, sound: "Vox/Train/Train-03-02.ogg", message: "c01.t03.e210" }
+event: { id: 220, event: Message, time: 40, sound: "Vox/Train/Train-03-03.ogg", message: "c01.t03.e220" }
+event: { id: 230, event: Message, time: 65, sound: "Vox/Train/Train-03-04.ogg", message: "c01.t03.e230" }
+
+event: {
+ id: 240,
+ event: Message,
+ message: "c01.t03.e240"
+ sound: "Vox/Train/Train-03-05.ogg",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 250,
+ event: Message,
+ sound: "Vox/Train/Train-03-06.ogg",
+ message: "c01.t03.e250",
+ trigger: Event,
+ trigger_param: 240,
+ delay: 14
+}
+
+event: {
+ id: 260,
+ event: Message,
+ sound: "Vox/Train/Train-03-07.ogg",
+ message: "c01.t03.e260",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104),
+ delay: 1
+}
+
+event: {
+ id: 270,
+ event: Message,
+ sound: "Vox/Train/Train-03-08.ogg",
+ message: "c01.t03.e270",
+ trigger: Navpoint,
+ trigger_param: 4,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 300,
+ event: Message,
+ sound: "Vox/Train/Train-03-09.ogg",
+ message: "c01.t03.e300",
+ trigger: Navpoint,
+ trigger_param: 5,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 310,
+ event: Message,
+ time: 120,
+ sound: "Vox/Train/Train-03-10.ogg",
+ message: "c01.t03.e310",
+ trigger: Event,
+ ship: "Alpha 1",
+ trigger: Range,
+ trigger_param: 15e3,
+ trigger_ship: "Janek Station"
+}
+
+event: {
+ id: 311,
+ event: Message,
+ time: 120,
+ sound: "Vox/Train/Train-03-11.ogg",
+ message: "c01.t03.e311",
+ ship: "Alpha 1",
+ trigger: Range,
+ trigger_param: 10e3,
+ trigger_ship: "Janek Station"
+}
+
+
+/***/
diff --git a/data/content/Campaigns/01/T4.def b/data/content/Campaigns/01/T4.def
new file mode 100644
index 0000000..4e2e44c
--- /dev/null
+++ b/data/content/Campaigns/01/T4.def
@@ -0,0 +1,264 @@
+MISSION
+
+name: "c01.t04.name"
+type: "Training"
+system: "Janus"
+region: "Janek Station"
+
+objective: "c01.t04.obj"
+sitrep: "c01.t04.sitrep"
+
+start: "02/05:35:00"
+stardate: 1084170240
+
+degrees: true
+
+element: {
+ name: "Janek Station",
+ design: Airbase1,
+ loc: (25e3, 0, 0),
+ head: -90,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Stallions,
+ design: Stormhawk,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: "Janek Station",
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Alpha,
+ design: Stormhawk,
+ squadron: Stallions,
+ player: 1,
+ alert: true,
+ loc: (15e3, -5e3, 5e3),
+ count: 2,
+ iff: 1,
+ head: -90,
+
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ mission: strike,
+ objective: { cmd: strike, tgt: "Cooling Tower" },
+ navpt: { cmd: vector, loc: ( 0, -40e3, 5e3), speed: 500, formation: 0 },
+ navpt: { cmd: strike, loc: (30e3, -15e3, 7e3), speed: 500, formation: 3 },
+ navpt: { cmd: rtb, loc: (50e3, 0, 5e3), speed: 400 },
+}
+
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 28e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-21e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-16e3, 32e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Dome",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 31e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-18e3, 30e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Fact03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-17e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 4,
+ iff: 2,
+ playable: false,
+ region: "Janek Station",
+ loc: (70000, -10000, 0),
+
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 4",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 200, event: Message, time: 2, sound: "Vox/Train/Train-04-01.ogg", message: "c01.t03.e200" }
+event: { id: 210, event: Message, time: 20, sound: "Vox/Train/Train-04-02.ogg", message: "c01.t03.e210" }
+event: { id: 220, event: Message, time: 40, sound: "Vox/Train/Train-04-03.ogg", message: "c01.t03.e220" }
+event: { id: 230, event: Message, time: 60, sound: "Vox/Train/Train-04-04.ogg", message: "c01.t03.e230" }
+
+/**
+ ** THIS MESSAGE IS NONSENSE!
+ **
+event: {
+ id: 240,
+ event: Message,
+ message: "c01.t04.e240"
+ sound: "Vox/Train/Train-04-05.ogg",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+}
+ **
+ **/
+
+event: {
+ id: 250,
+ event: Message,
+ sound: "Vox/Train/Train-04-06.ogg",
+ message: "c01.t04.e250",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+ delay: 5
+}
+
+event: {
+ id: 260,
+ event: Message,
+ sound: "Vox/Train/Train-04-07.ogg",
+ message: "c01.t04.e260",
+ trigger: Event,
+ trigger_param: 250,
+ delay: 15
+}
+
+event: {
+ id: 270,
+ event: Message,
+ sound: "Vox/Train/Train-04-08.ogg",
+ message: "c01.t04.e270",
+ trigger: Event,
+ trigger_param: 260,
+ delay: 12
+}
+
+event: {
+ id: 300,
+ event: Message,
+ sound: "Vox/Train/Train-04-09.ogg",
+ message: "c01.t04.e300",
+ trigger: Event,
+ trigger_param: 270,
+ delay: 12
+}
+
+
+event: {
+ id: 310,
+ event: Message,
+ sound: "Vox/Train/Train-04-10.ogg",
+ message: "c01.t04.e310",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104),
+ delay: 1
+}
+
+event: {
+ id: 311,
+ event: Message,
+ sound: "Vox/Train/Train-04-11.ogg",
+ message: "c01.t04.e311",
+ trigger: Event,
+ trigger_param: 310,
+ delay: 20
+}
+
+
+/***/
diff --git a/data/content/Campaigns/01/T5.def b/data/content/Campaigns/01/T5.def
new file mode 100644
index 0000000..e06217f
--- /dev/null
+++ b/data/content/Campaigns/01/T5.def
@@ -0,0 +1,201 @@
+MISSION
+
+name: "c01.t05.name"
+type: "Training"
+system: "Janus"
+region: "Alystra"
+
+objective: "c01.t05.obj"
+sitrep: "c01.t05.sitrep"
+
+start: "03/15:20:00"
+
+/*************************/
+
+ship: {
+ name: Archon,
+ design: Orion,
+ region: Janek,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+}
+
+element: {
+ name: "Flying Tigers",
+ design: Stormhawk,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, stations: (0, 1, 1, 0) },
+ }
+
+element: {
+ name: "Warhawks",
+ design: Stormhawk,
+ count: 20,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, stations: (0, 0, 0, 0) },
+ }
+
+element: {
+ name: "Starlifters",
+ design: Zodiac,
+ count: 8,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ dead_count: 2,
+ }
+
+
+/*************************/
+
+ship: {
+ name: Carlisle,
+ design: Berents,
+ region: Alystra,
+ loc: (20e3, -30e3, 0),
+ commander: Archon,
+ count: 1,
+ iff: 1,
+ player: 1,
+
+ navpt: { cmd: vector, loc: (20e3, -40e3, 0), speed: 500, rgn: Alystra },
+ navpt: { cmd: vector, loc: (10e3, -10e3, 0), speed: 500, rgn: Janek },
+}
+
+/**********************/
+
+element: {
+ name: Alpha,
+ design: TargetDrone,
+ region: Alystra,
+ loc: (-12e3, -50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-8e3, -50e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, -30e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 50e3, 0), speed: 400 },
+}
+
+/**********************/
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 1",
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 2",
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 3",
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 4",
+}
+
+event: {
+ id: 5,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "c01.t05.e005",
+ trigger: "Event (ALL)",
+ trigger_param: (1, 2, 3, 4),
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 0.5,
+ event: Message,
+ event_message: "c01.t05.e006",
+ trigger: "Event",
+ trigger_param: 5,
+}
+
+event: {
+ id: 7,
+ delay: 3.0,
+ event: Message,
+ event_message: "c01.t05.e007",
+ trigger: "Jump",
+ trigger_ship: "Carlisle",
+}
+
+event: {
+ id: 8,
+ delay: 2.0,
+ event: Message,
+ event_message: "c01.t05.e008",
+ trigger: "Event",
+ trigger_param: 7,
+}
+
+event: {
+ id: 9,
+ delay: 20.0,
+ event: Message,
+ event_message: "c01.t05.e009",
+ trigger: "Event",
+ trigger_param: 8,
+}
+
+event: {
+ id: 10,
+ delay: 30.0,
+ event: Exit,
+ trigger: "Event",
+ trigger_param: 8,
+}
+
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 101, event: Message, time: 2, sound: "Vox/Train/Train-05-01.ogg", message: "" }
+event: { id: 102, event: Message, delay: 10, sound: "Vox/Train/Train-05-02.ogg", message: "", trigger: Event, trigger_param: 101 }
+event: { id: 103, event: Message, delay: 14, sound: "Vox/Train/Train-05-03.ogg", message: "", trigger: Event, trigger_param: 102 }
+event: { id: 104, event: Message, delay: 16, sound: "Vox/Train/Train-05-04.ogg", message: "", trigger: Event, trigger_param: 103 }
+event: { id: 105, event: Message, delay: 16, sound: "Vox/Train/Train-05-05.ogg", message: "", trigger: Event, trigger_param: 104 }
+event: { id: 106, event: Message, delay: 10, sound: "Vox/Train/Train-05-06.ogg", message: "", trigger: Event, trigger_param: 105 }
+event: { id: 107, event: Message, delay: 8, sound: "Vox/Train/Train-05-07.ogg", message: "", trigger: Event, trigger_param: 106 }
+event: { id: 108, event: Message, delay: 8, sound: "Vox/Train/Train-05-08.ogg", message: "", trigger: Event, trigger_param: 107 }
+event: { id: 109, event: Message, delay: 25, sound: "Vox/Train/Train-05-09.ogg", message: "", trigger: Event, trigger_param: 108 }
+event: { id: 110, event: Message, delay: 2, sound: "Vox/Train/Train-05-10.ogg", message: "", trigger: "Event (ALL)", trigger_param: (5,109) }
+event: { id: 111, event: Message, delay: 1, sound: "Vox/Train/Train-05-11.ogg", message: "", trigger: "Event (ALL)", trigger_param: (7,110) }
+event: { id: 112, event: Message, delay: 5, sound: "Vox/Train/Train-05-12.ogg", message: "", trigger: Event, trigger_param: 111 }
+
+
+/**********************/
+
+// EOF
+
diff --git a/data/content/Campaigns/01/T6.def b/data/content/Campaigns/01/T6.def
new file mode 100644
index 0000000..8fd435d
--- /dev/null
+++ b/data/content/Campaigns/01/T6.def
@@ -0,0 +1,98 @@
+MISSION
+
+name: "c01.t06.name"
+type: "Training"
+system: "Janus"
+region: "Dante"
+
+objective: "c01.t06.obj"
+sitrep: "c01.t06.sitrep"
+
+start: "04/11:00:00"
+
+degrees: true
+
+/*************************/
+
+element: {
+ name: Mahan
+ design: Asher
+ mission: Training
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: false
+ region: Dante
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: Tarkis
+ design: Wolf
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Dante
+ loc: (-258e3, -47e3, 0)
+
+ navpt: { cmd: Vector, loc: (-132e3, -175e3, 0), speed: 500 }
+}
+
+element: {
+ name: "DTS Equinox"
+ design: IM4300
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: Dante
+ loc: (5e3, -195e3, 0)
+
+ navpt: { cmd: Vector, loc: (-190e3, -125e3, 0), speed: 400 }
+}
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 1, time: 2, sound: "Vox/Train/Train-06-01.ogg" }
+event: { id: 2, delay: 22, sound: "Vox/Train/Train-06-02.ogg", trigger: Event, trigger_param: 1 }
+event: { id: 3, delay: 16, sound: "Vox/Train/Train-06-03.ogg", trigger: Event, trigger_param: 2 }
+
+event: { id: 4, delay: 2, sound: "Vox/Train/Train-06-04.ogg", trigger: Event, trigger_param: 50 }
+event: { id: 5, delay: 17, sound: "Vox/Train/Train-06-05.ogg", trigger: Event, trigger_param: 4 }
+event: { id: 6, delay: 17, sound: "Vox/Train/Train-06-06.ogg", trigger: Event, trigger_param: 5 }
+event: { id: 7, delay: 25, sound: "Vox/Train/Train-06-07.ogg", trigger: Event, trigger_param: 6 }
+event: { id: 8, delay: 30, sound: "Vox/Train/Train-06-08.ogg", trigger: Event, trigger_param: 7 }
+event: { id: 9, delay: 25, sound: "Vox/Train/Train-06-09.ogg", trigger: Event, trigger_param: 8 }
+
+event: { id: 13, delay: 0, sound: "Vox/Train/Train-06-10.ogg", trigger: Event, trigger_param: 51 }
+event: { id: 14, delay: 30, sound: "Vox/Train/Train-06-11.ogg", trigger: Event, trigger_param: 13 }
+event: { id: 15, delay: 17, sound: "Vox/Train/Train-06-12.ogg", trigger: Event, trigger_param: 14 }
+event: { id: 16, delay: 30, sound: "Vox/Train/Train-06-13.ogg", trigger: Event, trigger_param: 15 }
+
+event: { id: 20, delay: 0, sound: "Vox/Train/Train-06-14.ogg", trigger: Destroyed, trigger_ship: Tarkis }
+
+event: { id: 50, delay: 0, message: "c01.t06.e050", trigger: Detect, trigger_ship: Mahan, trigger_target: Tarkis }
+event: { id: 51, delay: 0, message: "c01.t06.e051", trigger: Target, trigger_ship: Mahan, trigger_target: Tarkis }
+
+event: { id: 80, event: Skip, param: ( 1, 2, 3), trigger: Event, trigger_param: 50 }
+event: { id: 81, event: Skip, param: ( 1, 2, 3, 4, 5), trigger: Event, trigger_param: 51 }
+event: { id: 82, event: Skip, param: ( 5, 6, 7, 8, 9), trigger: Event, trigger_param: 13 }
+event: { id: 83, event: Skip, param: (13,14,15,16), trigger: Event, trigger_param: 20 }
+
+event: { id: 100, event: EXIT, delay: 10, trigger: Event, trigger_param: 20 }
+
+/*************************/
+
+// EOF
diff --git a/data/content/Campaigns/01/T7.def b/data/content/Campaigns/01/T7.def
new file mode 100644
index 0000000..6df1c14
--- /dev/null
+++ b/data/content/Campaigns/01/T7.def
@@ -0,0 +1,195 @@
+MISSION
+
+name: "c01.t07.name"
+type: "Training"
+system: "Janus"
+region: "Alystra"
+
+objective: "c01.t07.obj"
+sitrep: "c01.t07.sitrep"
+
+start: "129:30:00"
+
+degrees: true
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: false
+ region: "Alystra"
+ loc: (-60e3, -25e3, 0)
+}
+
+element: {
+ name: "Avengers"
+ design: "Falcon"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 6
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Stallions"
+ design: "Stormhawk"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 6
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Warbirds"
+ design: "Thunderbolt"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 12
+ maint_count: 2
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Starlifters"
+ design: "Zodiac"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 8
+ dead_count: 2
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Alystra"
+ loc: (-75e3, -31e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Alystra"
+ loc: (-45e3, -24e3, 0)
+}
+
+/**********************/
+
+element: {
+ name: "Tarpon"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (-130e3, -215e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 600 }
+}
+
+element: {
+ name: "Sculpin"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (250e3, 230e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 750 }
+}
+
+element: {
+ name: "Rockeye"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (250e3, 125e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 550 }
+}
+
+element: {
+ name: Pompano,
+ design: IM3500
+ skin: Red
+ loc: (260e3, 125e3, 0)
+ count: 1,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-50e3, -50e3, 0), speed: 550 },
+}
+
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 1, event: Message, time: 2, sound: "Vox/Train/Train-07-01.ogg" }
+event: { id: 2, event: Message, delay: 18, sound: "Vox/Train/Train-07-02.ogg", trigger: Event, trigger_param: 1 }
+event: { id: 3, event: Message, delay: 15, sound: "Vox/Train/Train-07-03.ogg", trigger: Event, trigger_param: 2 }
+event: { id: 4, event: Message, delay: 12, sound: "Vox/Train/Train-07-04.ogg", trigger: Event, trigger_param: 3 }
+event: { id: 5, event: Message, delay: 17, sound: "Vox/Train/Train-07-05.ogg", trigger: Event, trigger_param: 4 }
+event: { id: 6, event: Message, delay: 12, sound: "Vox/Train/Train-07-06.ogg", trigger: Event, trigger_param: 5 }
+event: { id: 7, event: Message, delay: 18, sound: "Vox/Train/Train-07-07.ogg", trigger: Event, trigger_param: 6 }
+event: { id: 8, event: Message, delay: 20, sound: "Vox/Train/Train-07-08.ogg", trigger: Event, trigger_param: 7 }
+event: { id: 9, event: Message, delay: 30, sound: "Vox/Train/Train-07-09.ogg", trigger: Event, trigger_param: 8 }
+event: { id: 10, event: Message, delay: 16, sound: "Vox/Train/Train-07-10.ogg", trigger: Event, trigger_param: 9 }
+event: { id: 11, event: Message, delay: 12, sound: "Vox/Train/Train-07-11.ogg", trigger: Event, trigger_param: 10 }
+event: { id: 12, event: Message, delay: 18, sound: "Vox/Train/Train-07-12.ogg", trigger: Event, trigger_param: 11 }
+event: { id: 13, event: Message, delay: 20, sound: "Vox/Train/Train-07-13.ogg", trigger: Event, trigger_param: 12 }
+event: { id: 14, event: Message, delay: 17, sound: "Vox/Train/Train-07-14.ogg", trigger: Event, trigger_param: 13 }
+event: { id: 15, event: Message, delay: 16, sound: "Vox/Train/Train-07-15.ogg", trigger: Event, trigger_param: 14 }
+event: { id: 16, event: Message, delay: 18, sound: "Vox/Train/Train-07-16.ogg", trigger: Event, trigger_param: 15 }
+event: { id: 17, event: Message, delay: 30, sound: "Vox/Train/Train-07-17.ogg", trigger: Event, trigger_param: 16 }
+event: { id: 18, event: Message, delay: 30, sound: "Vox/Train/Train-07-18.ogg", trigger: Event, trigger_param: 17 }
+
+
+/**********************/
+
+// EOF
diff --git a/data/content/Campaigns/01/campaign.def b/data/content/Campaigns/01/campaign.def
new file mode 100644
index 0000000..4e86a1f
--- /dev/null
+++ b/data/content/Campaigns/01/campaign.def
@@ -0,0 +1,18 @@
+CAMPAIGN
+
+name: "c01.name"
+desc: "c01.desc"
+situation: "c01.sitrep"
+orders: "c01.orders"
+
+scripted: true
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Janus,
+ source: News,
+ scene: "Scenes/Intro.def"
+}
diff --git a/data/content/Campaigns/02/Actions/01-campaign-start.txt b/data/content/Campaigns/02/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..79de975
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/01-campaign-start.txt
@@ -0,0 +1,5 @@
+SOLUS - The Provisional Security Directorate of the Independent System of Solus formally requested military assistance from Terellian Alliance Force:Command this morning. Special couriers ran the Trellis blockade to deliver the message to the Force outpost in the nearby Janek system. "The official government of this system has been cut off by the illegal blockade of the Trellis Farcaster," said Adminstrator Lars of the Directorate. "We have suffered a great deal of damage in the fighting, and we need help to reestablish basic services here."
+
+Solus has been ripped nearly in two by the bloody civil war that erupted between the Loyalist and Separatist factions of the system government. Dantari Separatists under the leadership of Senator Masil Gannet, after months of pressing for an official alliance with the Hegemony Prefecture of Renser, have seized much of the Solus star fleet and taken control of the outer worlds of Trellis and Jalah. The Loyalist faction, although still technically in control of the official goverment, has been trapped on the inner planets Solus and Meridian.
+
+The Separatist blockade of the Trellis Farcaster has also taken a toll on the many Alliance citizens in the Solus system. Several Terellian companies maintain major offices on the capitol world itself, and Tal Vesta University runs a stellar observatory near the planet Meridian. An estimated 375,000 Terellians are trapped by the blockade. So far they have been unable to convince the Dantari Separatists to grant them safe passage back to the main Alliance systems.
diff --git a/data/content/Campaigns/02/Actions/02-coup-failure.txt b/data/content/Campaigns/02/Actions/02-coup-failure.txt
new file mode 100644
index 0000000..0033e2f
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/02-coup-failure.txt
@@ -0,0 +1,5 @@
+TELMERA CITY, SOLUS - An attempted palace coup by Dantari agents was thwarted by alert members of the Provisional Security Directorate early this morning. Separatist agents, working from a secret base near the capitol offices, succeeded in destroying the executive suite of the presidential palace.
+
+Security service members discovered the bomb only moments before it was detonated and were able to escort President Marish and his party to an undisclosed safe location. Senators Hamil and Covanon who were to attend a working breakfast with the President were killed in the blast, as were two security service agents who died trying to protect them. Memorial services for all four men are planned for later in the week.
+
+Speaking on behalf of President Marish, executive spokesperson Cyn Talban affirmed that the central government had not been struck down by the terrorist-style attack. "We are still very much open for business. President Marish is meeting with security advisors at this hour, and he will be holding a press conference from the safehouse later this morning to address your questions and concerns." \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/03-blockade-broken.txt b/data/content/Campaigns/02/Actions/03-blockade-broken.txt
new file mode 100644
index 0000000..8a3c4b2
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03-blockade-broken.txt
@@ -0,0 +1,5 @@
+TRELLIS - The Alliance Third Fleet has broken the blockade of the Trellis-Solus Farcaster network, a Force:Command spokesperson has announced. The minefields surrounding the Farcaster terminus have been cleared, and several Separatist squadrons have been eliminated or greatly reduced in strength.
+
+Theater commander Admiral Evars has given official authorization for the commencement of humanitarian aid traffic to the inner planets. Certified non-governmental agencies delivering food, clothing, medicines, and emergency equipment will receive protective escorts by warships from the Third Fleet.
+
+"Although the blockade has been broken, there are still several hostile squadrons in operation near the outer worlds. We strongly recommend that only emergency traffic be routed through the Trellis sector. Civilian ships are advised to avoid the area until the threat can be assessed and appropriate actions taken," Evars was quoted as saying. \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/03a-minefield-a.txt b/data/content/Campaigns/02/Actions/03a-minefield-a.txt
new file mode 100644
index 0000000..4b70700
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03a-minefield-a.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield A near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/03a-minefield-b.txt b/data/content/Campaigns/02/Actions/03a-minefield-b.txt
new file mode 100644
index 0000000..0b70a24
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03a-minefield-b.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield B near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/03a-minefield-c.txt b/data/content/Campaigns/02/Actions/03a-minefield-c.txt
new file mode 100644
index 0000000..2c47b8b
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03a-minefield-c.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield C near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/03a-minefield-d.txt b/data/content/Campaigns/02/Actions/03a-minefield-d.txt
new file mode 100644
index 0000000..6c7b9b6
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03a-minefield-d.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield D near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/03a-minefield-e.txt b/data/content/Campaigns/02/Actions/03a-minefield-e.txt
new file mode 100644
index 0000000..b86500e
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/03a-minefield-e.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield E near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/04-harmony-risk.txt b/data/content/Campaigns/02/Actions/04-harmony-risk.txt
new file mode 100644
index 0000000..f63463a
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/04-harmony-risk.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** HARMONY STATION
+*** KALON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Force:Intel assessment of risk to Harmony Station: Threat Level Gamma (Severe)
+
+Field agents have intercepted communications believed to be for Dantari Separatist strike teams in the Solus or Kalon sectors. COMINT has completed first (partial) decoding of intercepted transmissions, and believes there is a credible threat to High Value Assets (HVAs) in Solus and Kalon sectors. Specific times, targets, and methods remain unknown.
+
+Force:Intel recommends additional Force:Space patrols be assigned to the Kalon sector pending further analysis of intercepted transmissions. Harmony Station in Kalon orbit would make an extremely choice target for a separatist strike.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/02/Actions/05-foothill-ridge.txt b/data/content/Campaigns/02/Actions/05-foothill-ridge.txt
new file mode 100644
index 0000000..0624922
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/05-foothill-ridge.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** FOOTHILL RIDGE
+*** TELMERA SECTOR
+*** CLASSIFIED: SECRET R5 NTK
+*************************************
+
+Dantari Separatist base discovered on Solus
+
+Force:Intel field agents have uncovered a Separatist military base in the city of Foothill Ridge near Telmera on Solus. The encampment consists of an operational airbase, reactor complex, weapons bunkers, and an unknown complement of starfighters and personnel. The Foothill Ridge Base is protected by a series of AAA and SAM batteries in the hills surrounding the city.
+
+Force:Intel recommends Force:Space deploy a package of air strikes to reduce the fixed weapon emplacements and the airbase. The reactor complex does not appear to be needed for civilian power in the Foothill Ridge area. However, the reactor poses an unknown danger to the area of radiation and toxic chemical contamination if it is destroyed using air-to-ground weapons, so you will need to be careful when you prosecute your ground strikes.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/02/Actions/06-renser-buildup.txt b/data/content/Campaigns/02/Actions/06-renser-buildup.txt
new file mode 100644
index 0000000..1bee82b
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/06-renser-buildup.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Renser Fleet Mobilization
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space long range sensor patrols report probable fleet buildup in the Hegemony system of Renser. Ship movement in the system has increased by 137% in the past twenty hours.
+
+Mass density analysis indicates several ships have left berths in the Lornas asteroid belt. Lornas Sector contains the major outer reserve naval yards for the Renser system. Common displacement includes Broadsword Class Destroyer Squadrons and Dragon Class Carrier Groups. Force:Intel COMINT reports increased signal activity in the Khaital Sector staging area. The Renser central capitol has been placed on heightened security awareness.
+
+Tactical Planning Analysis suggests 50% probability of Renser mobilization to Solus system within the next twenty hours. Probability of mobilization within the next fifty hours is estimated to be greater than 80%.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/02/Actions/07-research-lab.txt b/data/content/Campaigns/02/Actions/07-research-lab.txt
new file mode 100644
index 0000000..0b600e0
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/07-research-lab.txt
@@ -0,0 +1,5 @@
+MERIDIAN - The Tal Vesta University Stellar Observatory in Meridian orbit has been cut off by Separatist patrols and is facing severe shortages of food and consumable supplies. University staff indicate that the fusion plant on the observatory is still operational, and that basic life support functions - water, air, and power - are not an immediate concern. "Mainly, the students are just hungry. And frustrated," said Research Coordinator Alen Tolap.
+
+Student researchers living at the observatory are protesting the ongoing civil war. Native Solusans, ethnic Dantari, and even many Terellian Alliance students have issued a joint statement condemning the conflict and demanding the resumption of peaceful negotiations. Thus far, neither party in the conflict has commented on the student protests.
+
+Alliance Theater Command has promised to make humanitarian aid to the Meridian sector a top priority. "We'll find a way to feed these kids," Fleet Admiral Evars was quoted as saying. "There's nothing more ornery than a bunch of hungry college students."
diff --git a/data/content/Campaigns/02/Actions/08-renser-accusation.txt b/data/content/Campaigns/02/Actions/08-renser-accusation.txt
new file mode 100644
index 0000000..a634d33
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/08-renser-accusation.txt
@@ -0,0 +1,5 @@
+CITY OF ULNAR, RENSER - The Renser Secretary of Intersystem Affairs issued a statement this evening accusing the Terellian Alliance of committing illegal acts of agression in the Solus Conflict.
+
+"External involvement in this civil conflict is a clear violation of the Korian Treaty. Alliance actions are a threat to Solusan sovereignty, and constitute a clear and present danger to the security of the Prefecture of Renser. Strong measures may be taken to restore normal discourse in Solus."
+
+Policy analysts believe that this statement amounts to diplomatic code words for the commencement of Renser military action in the Solusan conflict. The statement does not set a timeline for events, but the general feeling is that something is going to happen sooner rather than later.
diff --git a/data/content/Campaigns/02/Actions/09-senate-resolution.txt b/data/content/Campaigns/02/Actions/09-senate-resolution.txt
new file mode 100644
index 0000000..082adab
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/09-senate-resolution.txt
@@ -0,0 +1,7 @@
+ALLIANCE CAPITOL, JARNELL - Alliance government officials wasted no time in responding to the accusations of illegality made yesterday by the Renser Secretary of Intersystem Affairs. The Combined Senate passed resolution SR498/37 censuring the Prefecture of Renser and warning of possible reprisals should Hegemony forces become involved in the Solusan Conflict.
+
+"The Alliance has undertaken Operation Highland for the specific purposes of safeguarding our citizens in the Solus system and providing humanitarian aid to those civilians who have been hardest hit by the blockade of the inner worlds. These actions have been carried out in strict accord with Korian Treaty provisions, and we resent the implication that the Alliance has Imperial designs on our neighbors."
+
+Several anonymous sources have hinted that there may be more to this conflict than is immediately apparent. Rumors of an Hegemony fleet buildup in Renser have leaked from Force:Command Headquarters. Others have expressed suspicions regarding the breakdown of peaceful negotiations between the Loyalist and Separatist factions that directly led to the current hostilities.
+
+Military analysts are predicting that although widening of the Solusan Conflict to include Renser was unexpected and is undesirable, it may soon become unavoidable. Alliance forces appear to have gained the upper hand in some of the fiercest fighting of the war to date. A Force:Space garrison, once established in the Solus system, would be within easy striking distance of Renser. That is a situation that no Hegemony border world would be willing to tolerate.
diff --git a/data/content/Campaigns/02/Actions/10-renser-arrival.txt b/data/content/Campaigns/02/Actions/10-renser-arrival.txt
new file mode 100644
index 0000000..18f0ac4
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/10-renser-arrival.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Hegemony Task Force TF4.3
+Classified: CONFIDENTIAL DND/CRYPTO
+
+A task force (TF4.3) from the Hegemony Fourth Fleet "Manticore" has successfully translated in system and is currently staging through Jalah Sector. The task force appears to have bypassed the Trellis Sector entirely, somehow translating directly into Jalah orbit. This may have been achieved by first staging beyond the outer Oort cloud before attempting the final jump.
+
+Hegemony TF4.3 is composed of one Dragon class CVBG led by CV-7A4 Manticore, and Broadsword class DESRONs 25 and 26 led by DD-3C40 Claymore and DD-3C42 Ironhelm, respectively. The Dragon class carrier groups generally field a full complement of intercept, fighter, and attack squadrons, and we believe that TF4.3 is no exception. On paper, this makes TF4.3 heavier than the Alliance forces assigned to the Solus system. We have requested a Spectre class DESRON from Fleet to help shore us up, but we are unsure as to how long they will take to arrive.
+
+On the plus side, we have the advantage of maneuverability for the moment. Now that they are here, TF4.3 will need some time to get organized and integrated with the Dantari fleet framework. If they did in fact take two jumps to translate to Jalah, they will need to UNREP before they are ready to fight. Either way, they will likely be tied up near Fort Talas in Jalah Sector for at least fifteen to twenty more hours.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/02/Actions/11-dantari-pullback.txt b/data/content/Campaigns/02/Actions/11-dantari-pullback.txt
new file mode 100644
index 0000000..3b2369f
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/11-dantari-pullback.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Separatist Withdrawal to Jalah
+Classified: CONFIDENTIAL DND/CRYPTO
+
+All mobile Separatist forces have withdrawn from the inner planets to Jalah Sector. We believe they plan to regroup and integrate with Hegemony TF4.3 before resuming the offensive in the Solus and Omane Sectors. Alliance forces have been doing an excellent job of reducing Separatist fleet strength, and Loyalist security forces believe that they can handle the job of cleaning up the remaining ground based Separatist units.
+
+However, the combined weight of Hegemony and Separatist forces will very likely overmatch our capabilities. We have received word that Spectre-class DESRON 43 "Shadow" has been assigned to the Solusan conflict, but they will not arrive for at least another fifteen hours.
+
+In the meantime, our plan is to strike the Separatist forces at Jalah before they can regroup. If we can keep them off balance in a defensive posture there, we believe they will be prevented from mounting an effective attack on Solus.
+
+Simulations suggest that the combined force will try to regroup near Fort Talas Station, using its air cover and defensive fire to protect the fleet. Remember that our primary objective is to cripple the Separatist fleet, not the Hegemony Task Force, and definitely not the station. Fort Talas belongs to the Solusan government, and is their primary defensive outpost in the outer worlds. The station will be vital to their defensive plans after this conflict is over, so we must not cause any more damage to it than absolutely necessary.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/02/Actions/11a-goliath.txt b/data/content/Campaigns/02/Actions/11a-goliath.txt
new file mode 100644
index 0000000..3b2011a
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/11a-goliath.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 5th Carrier Group "Goliath" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/11a-kendra.txt b/data/content/Campaigns/02/Actions/11a-kendra.txt
new file mode 100644
index 0000000..31ac444
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/11a-kendra.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 7th DESRON "Kendra" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/11a-kitts.txt b/data/content/Campaigns/02/Actions/11a-kitts.txt
new file mode 100644
index 0000000..3d93a56
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/11a-kitts.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 6th DESRON "Kitts" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/11a-wolf.txt b/data/content/Campaigns/02/Actions/11a-wolf.txt
new file mode 100644
index 0000000..a51dcaf
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/11a-wolf.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 5th DESRON "Wolf" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/content/Campaigns/02/Actions/12-cease-fire.txt b/data/content/Campaigns/02/Actions/12-cease-fire.txt
new file mode 100644
index 0000000..71fd6be
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/12-cease-fire.txt
@@ -0,0 +1,7 @@
+TELMERA CITY, SOLUS - Guns are falling silent throughout the Solus System in accordance with a cease-fire agreement between the Solusan government and the Separatist faction that have been locked in a violent civil war for control of the region. ISS President Marish and newly-appointed leader of the Separatist movement Ayn Toran signed the agreement in the recently repaired presidential palace as Terellian Alliance Fleet Admiral A. Evars looked on. Notably absent from the signing ceremony was former Separatist leader Masil Gannet, who is believed to have fled the system to return to his native Adantar in the Korius System.
+
+The cease-fire agreement has sparked hopes for a lasting peace in this war-torn region that has suffered unprecedented levels of bloodshed in a very short period of time. The pact is the first step to renewed peace talks to address the fair settlement of ethnic Dantari throughout the system.
+
+The deal calls for an open-ended cease-fire between both parties, with independent observers from the nearby system of Silessia to monitor the situation until more permanent agreements can be implemented. The details of the cease-fire agreement have not yet been made public.
+
+Pursuant to the cease-fire arrangement, Hegemony Fleet Task Force TF4.3 is standing down and will abandon the system within hours. The Terellian Alliance Task Force that has been assisting the official Solusan Government is also making plans to leave the region.
diff --git a/data/content/Campaigns/02/Actions/13-renser-invasion.txt b/data/content/Campaigns/02/Actions/13-renser-invasion.txt
new file mode 100644
index 0000000..1916a67
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/13-renser-invasion.txt
@@ -0,0 +1,13 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, at this hour, Force:Space units are in the early stages of military operations to disarm the Hegemony Prefecture of Renser and eliminate a grave threat to the peace and stability of the Terellian Alliance and the Independent Systems of the blue drift.
+
+On my orders, under the authority granted to this office by Combined Senate Resolution SR498/37, Alliance forces have begun striking specific military targets in the Renser System to undermine that government's ability to wage agressive war on her neighbors. The victory of the Solusan people in Operation Highland can not be complete until the hard won peace has been made secure.
+
+Now, that peace is gravely threatened by the armed might of the Hegemony. In fact, we have evidence that the entire Solusan affair was instigated by agents of Renser Prefecture, including former Separatist Leader Masil Gannet.
+
+To all the men and women of the various branches of Force now serving in the Renser Theater of Operations, the peace of a troubled region, and the hope for prosperity of all its free people now depend on you, on your determination, and on your abilities. We trust in your abilities and your resolve, and we know that our trust is well placed.
+
+Now that this stage of the conflict has come, the only way to limit its duration is to apply decisive force. And I assure you, this will not be a campaign of half measures. We will accept no outcome save victory.
+
+Thank you, and good evening. \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/campaign_end.txt b/data/content/Campaigns/02/Actions/campaign_end.txt
new file mode 100644
index 0000000..1b299b9
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/campaign_end.txt
@@ -0,0 +1,5 @@
+Alliance forces have completed operations in the Solus-Renser Theater. Hegemony resistance has been broken and the Prefect of Renser is meeting with the Alliance Provisional Consulate at this hour to establish terms for a cease-fire and eventual non-agression pact.
+
+All Force:Space units in Third Fleet will be withdrawing from Renser space to predetermined guard points in the surrounding systems. Force:Command expects to be able to rotate your unit back to home space within a few weeks for replenishment and shore leave.
+
+Well done, Commander! \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/def1.txt b/data/content/Campaigns/02/Actions/def1.txt
new file mode 100644
index 0000000..32f3a25
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Highland has failed to secure the peace. Alliance losses have been severe. The Presdient, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from the Solus-Renser Theater. Civilian casualties are estimated at more than 10,000 dead and 52,000 injured or missing.
+
+At least one additional fleet is being mobilized from the Hegemony system of Korius. Force:Command expects that they will translate in system within forty hours. At that time, the Independent System of Solus will be brought under the direct control of the Marakan Hegemony. \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/def2.txt b/data/content/Campaigns/02/Actions/def2.txt
new file mode 100644
index 0000000..867e70f
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/def2.txt
@@ -0,0 +1,3 @@
+Operation Highland has failed in its mission to secure the peace. Alliance losses in the Renser system have been severe, including the loss of the Fleet Carrier Battle Group Archon. The President, with the approval of the Combined Senate, has ordered the immediate withdrawal of all remaining Force:Space units from the Prefecture of Renser.
+
+At least one additional Hegemony fleet is being mobilized from the Korius System. We can only hope that this failure does not result in the unilateral escalation on the part of Hegemony forces... \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/m1-catching-up.txt b/data/content/Campaigns/02/Actions/m1-catching-up.txt
new file mode 100644
index 0000000..dc96f62
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/m1-catching-up.txt
@@ -0,0 +1,21 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: CATCHING UP
+-----
+PATH: Magellan IV Shipboard | Loris Station | Northeast Transceiver 4 | Silessian Outer Relay | Silessian Inner Relay | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP
+-----
+
+Hey Mate!
+
+I just heard about your promotion and wanted to say congratulations! Sorry I didn't get to give you a proper send-off before you shipped out.
+
+So, the Force brass is starting to recognize your 'unique talents,' eh? You should have followed in my footsteps and joined the Independent Trade fleet. Too bad you had to get all respectable, you could have been a rich man by now. I'm not a rich man, but I'm sure you would have been. Next time I see you I'll have to remember to salute.
+
+Can't tell you too much from this end. The 'Maggie' just put in for a forty-hour stopover in Loris on the way through to "parts unknown". Don't ask me no questions, and I'll tell you no lies. But just between you and me, watch your tail out there, all right?
+
+Hey, are you going to the Academy Reunion this year? We should be back in the core systems by then, and I've been meaning to ask the skipper of this here tub for some time off. If you complete your tour by then, I'll catch you at the bar. You can buy me a drink in exchange for that salute.
+
+--Jonas
+
+PS Have you heard from Sara lately? I haven't been able to track her down from way out here. If you talk to her, tell her "I am the Doorway" for me. -J \ No newline at end of file
diff --git a/data/content/Campaigns/02/Actions/m2-new-digs.txt b/data/content/Campaigns/02/Actions/m2-new-digs.txt
new file mode 100644
index 0000000..855dfb4
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/m2-new-digs.txt
@@ -0,0 +1,22 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: NEW DIGS
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP
+-----
+
+Hello,
+
+Well, we're finally just about moved in to the new Ele'aan Consular Center. My new position as the Junior Consular Liason to the Ele'aan Fusion rates a new office with a lovely view of the Endless Falls. At twilight, when the mist shroud catches the light of the setting sun, it's just breathtaking. Ever so much better than that sub-basement hovel I was lurking in on Borova. Yay me!
+
+Thanks for relaying that message from Jonas. "I am the Doorway" Honestly, he's such a character. [giggle] I don't even know where he could have heard that expression - it's part of an old Ele'aan greeting and farewell ritual. The Ele'aans are an advanced race, but they can be pretty inscrutable at times, even for me.
+
+In fact, right now they are all agitated about the Zolon Empire for some reason. They won't tell anybody what's going on, but I get little bits of messages here and there, and they are definitely worried about something, if you can believe that.
+
+Say, if you talk to Jonas again, see if he knows anything about Zolon activity. I know his trade route takes him through the northern Hegemony systems. I don't know if he's ever been out as far as Nephrys in all his wanderings. That's right on the border of Zolon space. Maybe he's seen or heard something out there...
+
+Congratulations on your promotion! I knew you'd hit the big time eventually. [grin]
+
+Love from
+Sara
diff --git a/data/content/Campaigns/02/Actions/m3-why-renser.txt b/data/content/Campaigns/02/Actions/m3-why-renser.txt
new file mode 100644
index 0000000..ff22eae
--- /dev/null
+++ b/data/content/Campaigns/02/Actions/m3-why-renser.txt
@@ -0,0 +1,18 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: WHY RENSER?
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | Renser Temporary Transceiver | $GROUP
+-----
+
+$NAME,
+
+Why are we attacking Renser now? The Separatists started this fight, not the Hegemony. How is this going to help stabilize the crisis in Solus, or improve the safety of the Alliance?
+
+The Ele'aan Ambassador, Councilor Auris was most. . . well, I don't think "upset" is the right word. But he seemed very disconcerted about the potential consequences of this invasion during the Council meeting this morning. I think the Ele'aan delegation tried to talk President Valmar out of this action - I think they wanted him to leave well enough alone and stay out of Hegemony internal affairs.
+
+I hope you're all right out there. . . I’m worried that we are throwing away lives on a foolish errand, and risking far more in the long run… Just tell me you'll stay safe, OK?
+
+Love from
+Sara
diff --git a/data/content/Campaigns/02/Scenes/01-News-Start.def b/data/content/Campaigns/02/Scenes/01-News-Start.def
new file mode 100644
index 0000000..f3516aa
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/01-News-Start.def
@@ -0,0 +1,262 @@
+MISSION
+
+name: "Cmpn02 News01 - Campaign Start"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+subtitles: "Campaigns/02/Actions/01-campaign-start.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Tal Vesta Stellar Observatory"
+ design: "Observatory"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Meridian"
+ loc: (75000, 75000, 0)
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+element: {
+ name: "Trellis Docks"
+ design: "Station1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Blockade Runner"
+ design: "Courier"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-120e3, -90e3, 0)
+
+ navpt: { cmd: Vector, loc: (-120e3, -170e3, 0), speed: 1000, rgn: "Trellis" }
+}
+
+
+element: {
+ name: "Kitts"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Trellis"
+ loc: (185e3, -280e3, 0)
+}
+
+element: {
+ name: "Lovo"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Trellis"
+ loc: (187e3, -281e3, 0)
+}
+
+
+element: {
+ name: "Edmonton"
+ design: "IM4300"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (212e3, -290e3, 0)
+
+ navpt: { cmd: Vector, loc: (-120e3, -170e3, 0), speed: 500, rgn: "Trellis" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Hold, param: 20, event_ship: Kitts }
+event: { event: Hold, param: 20, event_ship: Lovo }
+
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (0,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Solus System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Camera, time: 12, param: (6, 15), target: "Blockade Runner" }
+
+event: { event: Display, message: "Trellis Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Blockade Runner", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 22, param: (6, 20), target: "Kitts" }
+event: { event: Display, message: "Dantari Separatists", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Destroyer Squadron 'Kitts'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 40, param: 3, target: "body:Trellis", vec: (0,0,1e8) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, message: "Trellis", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Jalah", vec: (0,0,8e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, message: "Jalah", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: 3, target: "Tal Vesta Stellar Observatory", vec: (0,0,2e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+event: { event: Display, message: "Meridian Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tal Vesta Stellar Observatory", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 80, param: 3, target: "body:Solus", vec: (60,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.14, 0.01, 0.02) }
+
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/02-Coup-Failure.def b/data/content/Campaigns/02/Scenes/02-Coup-Failure.def
new file mode 100644
index 0000000..19a1830
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/02-Coup-Failure.def
@@ -0,0 +1,219 @@
+MISSION
+
+name: "Cmpn02 News02 - Coup Failure"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/02-coup-failure.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29500, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52500, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54600, 32800, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "Downtown Telmera"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "Palace"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55300, 28800, 0)
+}
+
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30700, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30500, 0)
+}
+
+element: {
+ name: "Telmera Starport"
+ design: "Airbase1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55000, 22000, 0)
+}
+
+
+/***
+
+TELMERA CITY, SOLUS - An attempted palace coup by Dantari agents was thwarted
+by alert members of the Provisional Security Directorate early this morning.
+Separatist agents, working from a secret base near the capitol offices, succeeded
+in destroying the executive suite of the presidential palace.
+
+Security service members discovered the bomb only moments before it was detonated
+and were able to escort President Marish and his party to an undisclosed safe
+location. Senators Hamil and Covanon who were to attend a working breakfast with
+the President were killed in the blast, as were two security service agents who
+died trying to protect them. Memorial services for all four men are planned for
+later in the week.
+
+Speaking on behalf of President Marish, executive spokesperson Cyn Talban affirmed
+that the central government had not been struck down by the terrorist-style attack.
+"We are still very much open for business. President Marish is meeting with security
+advisors at this hour, and he will be holding a press conference from the safehouse
+later this morning to address your questions and concerns."
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (0,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Solus System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_02_Coup_Failure.ogg" }
+
+
+event: { event: Camera, time: 13, param: 3, target: "Downtown Telmera", vec: (0,0,5000) }
+event: { event: Camera, param: 5, vec: (-0.08, 0.005, -0.02) }
+
+event: { event: Damage, ship: "Palace", param: 1e6 }
+
+event: { event: Display, message: "Telmera Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Presidential Palace", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/03-Blockade-Broken.def b/data/content/Campaigns/02/Scenes/03-Blockade-Broken.def
new file mode 100644
index 0000000..17cff4c
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/03-Blockade-Broken.def
@@ -0,0 +1,299 @@
+MISSION
+
+name: "Cmpn02 News03 - Blockade Broken"
+type: "Patrol"
+system: "Solus"
+region: "Trellis"
+
+sitrep: "Unknown"
+
+objective: "Unspecified"
+
+subtitles: "Campaigns/02/Actions/03-blockade-broken.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+element: {
+ name: "Trellis Docks"
+ design: "Station1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-130000, 160000, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-111503, 155656, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-155657, 148787, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-166015, 151521, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Avengers"
+ design: "Falcon"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Trellis"
+ loc: (-118941, 180411, 0)
+}
+
+element: {
+ name: "Stallions"
+ design: "Stormhawk"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Trellis"
+ loc: (-118754, 143664, 0)
+}
+
+element: {
+ name: "Warbirds"
+ design: "Thunderbolt"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 20
+ maint_count: 10
+ iff: 1
+ region: "Trellis"
+ loc: (-135947, 178901, 0)
+}
+
+
+/***
+
+TRELLIS - The Alliance Third Fleet has broken the blockade of the
+Trellis-Solus Farcaster network, a Force:Command spokesperson has
+announced. The minefields surrounding the Farcaster terminus have
+been cleared, and several Separatist squadrons have been eliminated
+or greatly reduced in strength.
+
+Theater commander Admiral Evars has given official authorization for
+the commencement of humanitarian aid traffic to the inner planets.
+Certified non-governmental agencies delivering food, clothing,
+medicines, and emergency equipment will receive protective escorts
+by warships from the Third Fleet.
+
+"Although the blockade has been broken, there are still several
+hostile squadrons in operation near the outer worlds. We strongly
+recommend that only emergency traffic be routed through the Trellis
+sector. Civilian ships are advised to avoid the area until the threat
+can be assessed and appropriate actions taken," Evars was quoted as
+saying.
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Trellis-Solus", vec: (0,0,1000) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Trellis-Solus Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_03_Blockade_Broken.ogg" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "Archon", vec: (2,0,2700) }
+event: { event: Camera, param: 5, vec: (0.12, 0.006, -0.02) }
+
+event: { event: Display, message: "Task Force 3.7", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "CV-71 'Archon'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 200,100) }
+
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/04-Harmony-Risk.def b/data/content/Campaigns/02/Scenes/04-Harmony-Risk.def
new file mode 100644
index 0000000..d911345
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/04-Harmony-Risk.def
@@ -0,0 +1,175 @@
+MISSION
+
+name: "Cmpn 02 Brief 04"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/04-harmony-risk.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Solus-Kalon"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (80000, 20000, 0)
+
+ objective: { cmd: Vector, tgt: "Kalon-Solus" }
+}
+
+element: {
+ name: "Kalon-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Kalon"
+ loc: (90000, -54000, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Kalon" }
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Harmony Station"
+ design: "Station2"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Kalon"
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "body:Solus", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** HARMONY STATION \n*** KALON SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+
+event: {
+ event: Message
+ time: 1
+ sound: "Vox/Scenes/02/Briefing_04_sam.ogg"
+}
+
+
+event: { event: Camera, time: 10, param: 3, target: "Solus-Kalon", vec: (7,1,7500) }
+event: { event: Camera, time: 10, param: 5, vec: (-0.12, 0.01, 0.03) }
+event: { event: Display, time: 10, message: "Solus-Kalon Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Kalon-Solus", vec: (1,3,8500) }
+event: { event: Camera, time: 20, param: 5, vec: (0.14, 0.02, 0.03) }
+event: { event: Display, time: 20, message: "Kalon-Solus Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Harmony Station", vec: (2,0,15000) }
+event: { event: Camera, time: 30, param: 5, vec: (0.15, 0.01,-0.03) }
+event: { event: Display, time: 30, message: "Harmony Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 50, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/05-Foothill-Ridge.def b/data/content/Campaigns/02/Scenes/05-Foothill-Ridge.def
new file mode 100644
index 0000000..828e95d
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/05-Foothill-Ridge.def
@@ -0,0 +1,350 @@
+MISSION
+
+name: "Cmpn 02 Brief 05"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/05-foothill-ridge.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (45000, -36000, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ commander: "SAM"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (40000, -35000, 0)
+}
+
+element: {
+ name: "AAA 2"
+ design: "AAA 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 2
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (40000, -60000, 0)
+}
+
+element: {
+ name: "SAM 2"
+ design: "SAM 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (30000, -32000, 0)
+}
+
+element: {
+ name: "Foothill Base"
+ design: "Airbase2"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (56000, -49000, 0)
+}
+
+element: {
+ name: "Adanis"
+ design: "Viper"
+ carrier: "Foothill Base"
+ commander: "Foothill Base"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 12
+ iff: 2
+ region: "Telmera"
+ loc: (38927, -31272, 0)
+}
+
+element: {
+ name: "Cobra Fangs"
+ design: "Cobra"
+ carrier: "Foothill Base"
+ commander: "Foothill Base"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 12
+ iff: 2
+ region: "Telmera"
+ loc: (46163, -63427, 0)
+}
+
+element: {
+ name: "Reactor"
+ design: "Reac01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (55000, -57000, 0)
+}
+
+element: {
+ name: "Factory 1"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (56000, -55000, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact02"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (58000, -56000, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29000, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52000, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54000, 32000, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (52000, -52000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (53000, -55000, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30000, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Foothill Base", vec: (1,0.05,2800) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** FOOTHILL RIDGE \n*** TELMERA SECTOR \n*** CLASSIFIED: SECRET R5 NTK\n*************************************" }
+
+
+event: {
+ event: Message
+ time: 1
+ sound: "Vox/Scenes/02/Briefing_05_sam.ogg"
+}
+
+
+event: { event: Camera, time: 20, param: 3, target: "AAA 1", vec: (7,0.3,1000) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.03) }
+event: { event: Display, message: "AAA Battery", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 25, param: 3, target: "SAM 1", vec: (1,0.5,1000) }
+event: { event: Camera, param: 5, vec: (0.14, 0.02, 0.03) }
+event: { event: Display, message: "SAM Launcher", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Reactor", vec: (2,0.05,3500) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01,-0.03) }
+event: { event: Display, message: "Reactor Complex", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/06-Renser-Buildup.def b/data/content/Campaigns/02/Scenes/06-Renser-Buildup.def
new file mode 100644
index 0000000..a1f7d5d
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/06-Renser-Buildup.def
@@ -0,0 +1,122 @@
+MISSION
+
+name: "Cmpn 02 Brief 06"
+type: "Patrol"
+system: "Renser"
+region: "Renser"
+stardate: 1147287263.0
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/06-renser-buildup.txt"
+
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (5e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-8e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Ironhelm", vec: (1,0.2,350e3) }
+event: { event: Camera, param: 5, vec: (0.10, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Renser Fleet Mobilization\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Briefing_06.ogg"
+}
+
+
+event: { event: Camera, time: 10, param: 3, target: "Ironhelm", vec: (1,0.05,40e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, message: "Lornas Fleet Yards", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Ironhelm", vec: (-1,-0.07,6e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+event: { event: Display, message: "DESRON 26 'IRONHELM'", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "body:Khaital", vec: (2,-0.06,3e7) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01,-0.02) }
+event: { event: Display, message: "Khaital Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/07-Research-Lab.def b/data/content/Campaigns/02/Scenes/07-Research-Lab.def
new file mode 100644
index 0000000..c60a7ab
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/07-Research-Lab.def
@@ -0,0 +1,226 @@
+MISSION
+
+name: "Cmpn02 News07 Research Lab"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/07-research-lab.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Tal Vesta Stellar Observatory"
+ design: "Observatory"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Meridian"
+ loc: (75e3, 75e3, 0)
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+
+
+element: {
+ name: "Kendra"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Meridian"
+ loc: (125e3, 180e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Meridian, speed: 500 }
+}
+
+element: {
+ name: "Pelorat"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Meridian"
+ loc: (127e3, 170e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Meridian, speed: 500 }
+}
+
+
+
+/***
+
+MERIDIAN - The Tal Vesta University Stellar Observatory in Meridian
+orbit has been cut off by Separatist patrols and is facing severe
+shortages of food and consumable supplies. University staff indicate
+that the fusion plant on the observatory is still operational, and
+that basic life support functions - water, air, and power - are not
+an immediate concern. "Mainly, the students are just hungry. And
+frustrated," said Research Coordinator Alen Tolap.
+
+Student researchers living at the observatory are protesting the ongoing
+civil war. Native Solusans, ethnic Dantari, and even many Terellian
+Alliance students have issued a joint statement condemning the conflict
+and demanding the resumption of peaceful negotiations. Thus far, neither
+party in the conflict has commented on the student protests.
+
+Alliance Theater Command has promised to make humanitarian aid to the
+Meridian sector a top priority. "We'll find a way to feed these kids,"
+Fleet Admiral Evars was quoted as saying. "There's nothing more ornery
+than a bunch of hungry college students."
+
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Tal Vesta Stellar Observatory", vec: (0,0,5e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_07_Research_Lab.ogg"
+}
+event: { event: Display, message: "Meridian Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tal Vesta Stellar Observatory", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: (6, 25), target: "Kendra" }
+event: { event: Display, message: "Dantari Separatists", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Destroyer Squadron 'Kendra'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 55, param: 3, target: "Tal Vesta Stellar Observatory", vec: (1,-0.1,8e3) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, 0.02) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/08-Renser-Accusation.def b/data/content/Campaigns/02/Scenes/08-Renser-Accusation.def
new file mode 100644
index 0000000..8762ee3
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/08-Renser-Accusation.def
@@ -0,0 +1,183 @@
+MISSION
+
+name: "Cmpn02 News08 Renser"
+type: "Patrol"
+
+system: Renser
+system: Solus
+region: Solus
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/08-renser-accusation.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-130e3, 160e3, 0)
+
+ navpt: { cmd: Vector, loc: (-130e3, 200e3, 0), speed: 500, rgn: Solus }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-147605, 152855, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-154062, 174318, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-162917, 143104, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (5e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (-8e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Renser", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_08_Renser_Accusation.ogg"
+}
+event: { event: Display, message: "Renser System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Marakan Hegemony", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 15, param: (6, 15), target: "Ironhelm" }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Archon", vec: (2,-0.05,8e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01, 0.02) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Solus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/09-Senate-Resolution.def b/data/content/Campaigns/02/Scenes/09-Senate-Resolution.def
new file mode 100644
index 0000000..2c62581
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/09-Senate-Resolution.def
@@ -0,0 +1,179 @@
+MISSION
+
+name: "Cmpn02 News09 Senate"
+type: "Patrol"
+
+system: Jarnell
+system: Renser
+system: Solus
+region: Solus
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/09-senate-resolution.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-130e3, 160e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-130e3, 260e3, 0), speed: 500, rgn: Solus }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-125e3, 155e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-125e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-154e3, 174e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-154e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-162e3, 143e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-162e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+
+element: {
+ name: Dragon
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-7e3, -2e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 5e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, message: "Jarnell", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,100) }
+event: { event: Display, time: 5, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Display, image: "Campaigns/02/Scenes/Senate.pcx", color: 0xffffffff, fade: (1,7,1), rect: (-280,-280, 256,256) }
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_09_Senate_Resolution.ogg"
+}
+
+
+event: { event: Camera, time: 30, param: 3, target: "Archon", vec: (-1,-0.1,8e3) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Solus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Dragon", vec: ( 1,0.16,9e3) }
+event: { event: Camera, param: 5, vec: ( 0.15,-0.01, 0.01) }
+event: { event: Display, message: "Khaital Sector Staging Area", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/10-Renser-Arrival.def b/data/content/Campaigns/02/Scenes/10-Renser-Arrival.def
new file mode 100644
index 0000000..65d74d6
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/10-Renser-Arrival.def
@@ -0,0 +1,162 @@
+MISSION
+
+name: "Cmpn02 Brief10 Jalah"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/10-renser-arrival.txt"
+
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: Manticore
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-120e3, -50e3, 0)
+ region: Jalah
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-127e3, -52e3, 0)
+ region: Jalah
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: ( 110e3, 105e3, 0)
+ region: Jalah
+ navpt: { cmd: Vector, loc: ( 110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: Martak
+ design: Razor
+ mission: Misc
+
+ intel: Secret
+ count: 2
+ iff: 2
+ loc: (-51e3, -45e3, 0)
+ region: Jalah
+
+ loadout: { ship: -1, name: "ACM Short Range" }
+ navpt: { cmd: Vector, loc: (-110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "body:Jalah", vec: (3,0,2e8) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Hegemony Task Force TF4.3\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 2, sound: "Vox/Scenes/02/Briefing_10-OK.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: Manticore, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, target: Manticore, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Hegemony Carrier Group 'Manticore'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 30, param: (6,16), target: Martak, vec: (-1,-0.1,8e3) }
+
+event: { event: Camera, time: 45, param: 3, target: Mattock, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+
+event: { event: Camera, time: 60, param: 3, target: "Fort Talas", vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Fort Talas Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/11-Dantari-Pullback.def b/data/content/Campaigns/02/Scenes/11-Dantari-Pullback.def
new file mode 100644
index 0000000..5bcfe36
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/11-Dantari-Pullback.def
@@ -0,0 +1,234 @@
+MISSION
+
+name: "Cmpn02 Brief11 Pullback"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/11-dantari-pullback.txt"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: Manticore
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-120e3, -50e3, 0)
+ region: Jalah
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-127e3, -52e3, 0)
+ region: Jalah
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: ( 110e3, 105e3, 0)
+ region: Jalah
+ navpt: { cmd: Vector, loc: ( 110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: Martak
+ design: Razor
+ mission: Misc
+
+ intel: Secret
+ count: 2
+ iff: 2
+ loc: (-51e3, -45e3, 0)
+ region: Jalah
+
+ loadout: { ship: -1, name: "ACM Short Range" }
+ navpt: { cmd: Vector, loc: (-110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: "Goliath"
+ design: "Goliath"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (225e3, 280e3, 0)
+ navpt: { cmd: Vector, loc: (190e3,190e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+element: {
+ name: "Lanner"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (215e3, 290e3, 0)
+ navpt: { cmd: Vector, loc: (210e3,190e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+element: {
+ name: "Kendra"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (125e3, 180e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Jalah, speed: 500 }
+}
+
+element: {
+ name: "Pelorat"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (127e3, 170e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Jalah", vec: (3,0,1e8) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Separatist Withdrawal to Jalah\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 2, sound: "Vox/Scenes/02/Briefing_11-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: Goliath, vec: (-1,-0.1,7e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Dantari Carrier Group 'Goliath'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 25, param: (6,20), target: Kendra, vec: (-1,-0.1,8e3) }
+
+
+event: { event: Camera, time: 40, param: 3, target: Manticore, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Hegemony Carrier Group 'Manticore'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Completing UNREP", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Fort Talas", vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Fort Talas Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/12-Cease-Fire.def b/data/content/Campaigns/02/Scenes/12-Cease-Fire.def
new file mode 100644
index 0000000..6904c44
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/12-Cease-Fire.def
@@ -0,0 +1,312 @@
+MISSION
+
+name: "Cmpn02 News12 Cease Fire"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/12-cease-fire.txt"
+
+start: "33:00:00"
+stardate: 1147384500.0
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-140e3, -160e3, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-125e3, -155e3, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-154e3, -174e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-162e3, -143e3, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29500, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52500, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54600, 32800, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "Downtown Telmera"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "Palace"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55300, 28800, 0)
+}
+
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30700, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30500, 0)
+}
+
+element: {
+ name: "Telmera Starport"
+ design: "Airbase1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55000, 22000, 0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Stalwart", vec: (4,0,4e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01, 0.01) }
+event: { event: Display, message: "Jalah Sector", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,100) }
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/News_12_Cease_Fire.ogg"
+}
+
+
+event: { event: Camera, time: 18, param: 3, target: "Downtown Telmera", vec: (1,0.1,4e3) }
+event: { event: Camera, param: 5, vec: (-0.08, 0.005, -0.02) }
+event: { event: Display, message: "Telmera Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Presidential Palace", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 43, param: 3, target: "body:Solus", vec: (-2,-0.1,2e7) }
+event: { event: Camera, param: 5, vec: (-0.10, 0.02, 0.01) }
+
+
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/13-Renser-Invasion.def b/data/content/Campaigns/02/Scenes/13-Renser-Invasion.def
new file mode 100644
index 0000000..c03b0a3
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/13-Renser-Invasion.def
@@ -0,0 +1,174 @@
+MISSION
+
+name: "Cmpn02 News13 Invasion"
+type: "Patrol"
+
+system: Jarnell
+system: Renser
+region: Khaital
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/13-renser-invasion.txt"
+
+start: "00:00:00"
+stardate: 1147400000.0
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-140e3, -160e3, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-125e3, -155e3, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-154e3, -174e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-162e3, -143e3, 0)
+}
+
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-2e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (11e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2, 0, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, time: 1, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/News_13_Renser_Invasion.ogg"
+}
+
+event: { event: Camera, time: 20, param: 3, target: "Archon", vec: (4,0,5e3) }
+event: { event: Camera, param: 5, vec: (0.15,0.01, 0.01) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Ironhelm", vec: (4,0.2,5e3) }
+event: { event: Camera, param: 5, vec: (-0.15, -0.01, 0.01) }
+event: { event: Display, message: "", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+
+event: { event: Camera, time: 70, param: 3, target: "Archon", vec: (2,0,7e3) }
+event: { event: Camera, param: 5, vec: (0.15,-0.01, -0.01) }
+
+event: { event: EndScene, time: 100, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/Defeat1.def b/data/content/Campaigns/02/Scenes/Defeat1.def
new file mode 100644
index 0000000..4cedc4a
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/Defeat1.def
@@ -0,0 +1,74 @@
+MISSION
+
+name: "Cmpn 02 Defeat 01"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/def1.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Kitts"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ loc: (185e3, -280e3, 0)
+}
+
+element: {
+ name: "Lovo"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ loc: (187e3, -281e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (3,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 20, param: 3, target: "Kitts", vec: (1,0.05,4e3) }
+event: { event: Camera, param: 5, vec: (-0.08,-0.005, 0.01) }
+
+event: { event: Display, time: 40, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 42, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/Defeat2.def b/data/content/Campaigns/02/Scenes/Defeat2.def
new file mode 100644
index 0000000..8c85339
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/Defeat2.def
@@ -0,0 +1,99 @@
+MISSION
+
+name: "Cmpn 02 Defeat 02"
+type: "Patrol"
+system: "Renser"
+region: "Khaital"
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/def2.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-2e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (11e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Khaital", vec: (1,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Ironhelm }
+
+event: { event: Display, time: 33, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 35, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/M1-Catching-Up.def b/data/content/Campaigns/02/Scenes/M1-Catching-Up.def
new file mode 100644
index 0000000..c47d8f1
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/M1-Catching-Up.def
@@ -0,0 +1,58 @@
+MISSION
+
+name: "Cmpn 02 Mail 01"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,67,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: CATCHING UP\n-----\nPATH: Magellan IV Shipboard | Loris Station | Northeast Transceiver 4 | Silessian Outer Relay | Silessian Inner Relay | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,65,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate!\n\nI just heard about your promotion and wanted to say congratulations! Sorry I didn't get to give you a proper send-off before you shipped out.\n\nSo, the Force brass is starting to recognize your 'unique talents,' eh? You should have followed in my footsteps and joined the Independent Trade fleet. Too bad you had to get all respectable, you could have been a rich man by now. I'm not a rich man, but I'm sure you would have been. Next time I see you I'll have to remember to salute.\n\nCan't tell you too much from this end. The 'Maggie' just put in for a forty-hour stopover in Loris on the way through to 'parts unknown'. Don't ask me no questions, and I'll tell you no lies. But just between you and me, watch your tail out there, all right?\n\nHey, are you going to the Academy Reunion this year? We should be back in the core systems by then, and I've been meaning to ask the skipper of this here tub for some time off. If you complete your tour by then, I'll catch you at the bar. You can buy me a drink in exchange for that salute.\n\n--Jonas\n\nPS Have you heard from Sara lately? I haven't been able to track her down from way out here. If you talk to her, tell her 'I am the Doorway' for me. -J" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_01a.ogg"
+}
+
+event: {
+ event: Message
+ time: 32
+ sound: "Vox/Scenes/02/Mail_01b.ogg"
+}
+
+event: {
+ event: Message
+ time: 45
+ sound: "Vox/Scenes/02/Mail_01c.ogg"
+}
+
+
+event: { event: EndScene, time: 72, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/M2-New-Digs.def b/data/content/Campaigns/02/Scenes/M2-New-Digs.def
new file mode 100644
index 0000000..cbcf052
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/M2-New-Digs.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 02 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,83,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,77,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: NEW DIGS\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,75,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nWell, we're finally just about moved in to the new Ele'aan Consular Center. My new position as the Junior Consular Liason to the Ele'aan Fusion rates a new office with a lovely view of the Endless Falls. At twilight, when the mist shroud catches the light of the setting sun, it's just breathtaking. Ever so much better than that sub-basement hovel I was lurking in on Borova. Yay me!\n\nThanks for relaying that message from Jonas. 'I am the Doorway' Honestly, he's such a character. [giggle] I don't even know where he could have heard that expression - it's part of an old Ele'aan greeting and farewell ritual. The Ele'aans are an advanced race, but they can be pretty inscrutable at times, even for me.\n\nIn fact, right now they are all agitated about the Zolon Empire for some reason. They won't tell anybody what's going on, but I get little bits of messages here and there, and they are definitely worried about something, if you can believe that.\n\nSay, if you talk to Jonas again, see if he knows anything about Zolon activity. I know his trade routes take him through the northern Hegemony systems. I don't know if he's ever been out as far as Nephrys in all his wanderings. That's right on the border of Zolon space. Maybe he's seen or heard something out there...\n\nAnyway, congratulations on your promotion! I knew you'd hit the big time eventually. [grin]\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_02_New_Digs.ogg"
+}
+
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/M3-Why-Renser.def b/data/content/Campaigns/02/Scenes/M3-Why-Renser.def
new file mode 100644
index 0000000..d768606
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/M3-Why-Renser.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 02 Mail 03"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,46,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,42,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: WHY RENSER?\n-----\nPATH: PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | Renser Temporary Transceiver | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,40,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Why are we attacking Renser now? The Separatists started this fight, not the Hegemony. How is this going to help stabilize the crisis in Solus, or improve the safety of the Alliance?\n\nThe Ele'aan Ambassador, Councilor Auris was most... well, I don't think 'upset' is the right word. But he seemed very disconcerted about the potential consequences of this invasion during the Council meeting this morning. I think the Ele'aan delegation tried to talk President Valmar out of this action - I think they wanted him to leave well enough alone and stay out of Hegemony internal affairs.\n\nI hope you're all right out there... I'm worried that we are throwing away lives on a foolish errand, and risking far more in the long run... Just tell me you'll stay safe, OK?\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_03_Why_Renser.ogg"
+}
+
+
+event: { event: EndScene, time: 46, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Scenes/Victory1.def b/data/content/Campaigns/02/Scenes/Victory1.def
new file mode 100644
index 0000000..53112c6
--- /dev/null
+++ b/data/content/Campaigns/02/Scenes/Victory1.def
@@ -0,0 +1,94 @@
+MISSION
+
+name: "Cmpn 02 Victory"
+type: "Patrol"
+system: "Renser"
+region: "Renser"
+
+sitrep: "Unknown"
+objective: "Unspecified"
+subtitles: "Campaigns/02/Actions/campaign_end.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Renser }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-125e3, 155e3, 0)
+ navpt: { cmd: Vector, loc: (-125e3,-50e3,0), speed: 350, rgn: Renser }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-154e3, 174e3, 0)
+ navpt: { cmd: Vector, loc: (-154,-50e3,0), speed: 350, rgn: Renser }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Renser", vec: (1,0,5e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,22), target: Archon }
+
+event: { event: Display, time: 33, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 35, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/02/Templates/DS_Escort_03.def b/data/content/Campaigns/02/Templates/DS_Escort_03.def
new file mode 100644
index 0000000..5e79464
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/DS_Escort_03.def
@@ -0,0 +1,175 @@
+MISSION_TEMPLATE
+
+name: "Freight Escort"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: Obs, elem: "Tal Vesta Stellar Observatory" }
+
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: TypeIII,
+ rloc: { ref: FC1, dex: 180e3, dex_var: 50e3, el: 0, el_var: 0 },
+ mission: freight,
+ count: 1,
+ iff: 1,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: Ward, dex: 50e3, dex_var:10e3, el: 0, el_var: 0 }, speed: 450, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: Obs, dex: 40e3, dex_var:10e3, el: 0, el_var: 0 }, speed: 450, rgn: Meridian },
+}
+
+ward: Ward
+
+alias: {
+ name: Player,
+ code: player,
+ mission: escort_freight,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Meridian },
+ navpt: { cmd: rtb, rloc: { ref: Player, dex: 20e3, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "vox.misc.a01-01",
+ event_chance: 50,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "vox.misc.a01-07",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "vox.misc.a01-08",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "vox.misc.a01-06",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "vox.misc.a01-09",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "vox.misc.a01-10",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "vox.misc.a01-11",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 75e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:1", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 800, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Meridian,
+ rloc: { ref: "Ward:2", dex: 170e3, az: 90, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:2", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 800, rgn: Meridian },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Escort_01.def b/data/content/Campaigns/02/Templates/FS_Escort_01.def
new file mode 100644
index 0000000..5b4a6bc
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Escort_01.def
@@ -0,0 +1,222 @@
+MISSION_TEMPLATE
+
+name: "Humanitarian Aid"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 0, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex:100e3, dex_var:30e3, az: 0, az_var: 60, el_var: 0 }, speed: 400, rgn: Solus },
+}
+
+ward: Ward
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 5e3, az: 180, az_var:25, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 30e3, dex_var: 2e3, az: 180, az_var:75, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "vox.misc.a01-01",
+ event_chance: 35,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "vox.misc.a01-02",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "vox.misc.a01-03",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "vox.misc.a01-07",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "vox.misc.a01-08",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "vox.misc.a01-06",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "vox.misc.a01-09",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "vox.misc.a01-10",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "vox.misc.a01-11",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Escort_02.def b/data/content/Campaigns/02/Templates/FS_Escort_02.def
new file mode 100644
index 0000000..449dc46
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Escort_02.def
@@ -0,0 +1,255 @@
+MISSION_TEMPLATE
+
+name: "Harmony Run"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+alias: { name: FC3, elem: "Solus-Kalon" }
+alias: { name: FC4, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Ward1,
+ design: IM2800,
+ region: Trellis,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 3, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 20e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var: 5e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+ward: Ward1
+
+element: {
+ name: Ward2,
+ design: IM2800,
+ region: Solus,
+ rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 0, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 22e3, dex_var: 6e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var:20e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ region: Trellis,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward1", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:2", dex: 10e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:4", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:5", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:6", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 18e3, dex_var: 3e3, az: 0, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward1, tgt_desc: "the merchant vessel" },
+ objective: { cmd: escort, tgt: Ward2, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "vox.misc.a01-01",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "vox.misc.a01-02",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "vox.misc.a01-03",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-04.ogg",
+ event_message: "vox.misc.a01-04",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-05.ogg",
+ event_message: "vox.misc.a01-05",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "vox.misc.a01-06",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 6,
+ delay: 2,
+}
+
+event: {
+ id: 8,
+ event: Hold,
+ event_ship: Ward2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 4,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward1:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Ward1:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:5", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Ward1:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Patrol_01.def b/data/content/Campaigns/02/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..1e23f72
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Patrol_02.def b/data/content/Campaigns/02/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..4f9720e
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Patrol_02.def
@@ -0,0 +1,123 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Patrol_03.def b/data/content/Campaigns/02/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..710d72a
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Patrol_03.def
@@ -0,0 +1,119 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Baikal,
+ rloc: { ref: "Player:2", dex: 60e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/FS_Patrol_HS.def b/data/content/Campaigns/02/Templates/FS_Patrol_HS.def
new file mode 100644
index 0000000..210535f
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/FS_Patrol_HS.def
@@ -0,0 +1,198 @@
+MISSION_TEMPLATE
+
+name: "Harmony Patrol"
+type: PATROL
+system: Solus
+region: Solus
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Solus-Kalon" }
+alias: { name: FC2, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony Station" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+ward: HS
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ region: Solus,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 25e3, dex_var: 0, az: 180, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus }, // 1
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 0, az: 0, az_var: 30, el_var: 0 }, speed: 500, rgn: Kalon }, // 2
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 0, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 3
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 270, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 4
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 180, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 5
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 90, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 6
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, dex_var: 1e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon }, // 7
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus }, // 8
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Solus }, // 9
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: HS },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:4", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Player:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:3", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Player:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+element: {
+ name: Wolf1,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (250e3, 250e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+element: {
+ name: Wolf2,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (280e3, 280e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Wolf1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 2,
+ event: Hold,
+ event_ship: Wolf2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ event_ship: Player,
+ event_source: HS,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "vox.misc.a02-01",
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+ delay: 120,
+}
+
+event: {
+ id: 20,
+ event: Jump,
+ event_ship: Stalwart,
+ event_target: Kalon,
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 15,
+}
+
+event: {
+ id: 21,
+ event: Objective,
+ event_ship: Stalwart,
+ event_param: 10,
+ event_target: Wolf1,
+
+ trigger: Event,
+ trigger_param: 20,
+ delay: 15,
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Escort_01.def b/data/content/Campaigns/02/Templates/IS_Escort_01.def
new file mode 100644
index 0000000..5c5a320
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Escort_01.def
@@ -0,0 +1,222 @@
+MISSION_TEMPLATE
+
+name: "Humanitarian Aid"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 0, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex:100e3, dex_var:30e3, az: 0, az_var: 60, el_var: 0 }, speed: 400, rgn: Solus },
+}
+
+ward: Ward
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 5e3, az: 180, az_var:25, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 30e3, dex_var: 2e3, az: 180, az_var:75, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "vox.misc.a01-01",
+ event_chance: 35,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "vox.misc.a01-02",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "vox.misc.a01-03",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "vox.misc.a01-07",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "vox.misc.a01-08",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "vox.misc.a01-06",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "vox.misc.a01-09",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "vox.misc.a01-10",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "vox.misc.a01-11",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Escort_02.def b/data/content/Campaigns/02/Templates/IS_Escort_02.def
new file mode 100644
index 0000000..45cca3d
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Escort_02.def
@@ -0,0 +1,255 @@
+MISSION_TEMPLATE
+
+name: "Harmony Run"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+alias: { name: FC3, elem: "Solus-Kalon" }
+alias: { name: FC4, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Ward1,
+ design: IM2800,
+ region: Trellis,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 3, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 20e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var: 5e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+ward: Ward1
+
+element: {
+ name: Ward2,
+ design: IM2800,
+ region: Solus,
+ rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 0, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 22e3, dex_var: 6e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var:20e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ region: Trellis,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward1", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:2", dex: 10e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:4", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:5", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:6", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 18e3, dex_var: 3e3, az: 0, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward1, tgt_desc: "the merchant vessel" },
+ objective: { cmd: escort, tgt: Ward2, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "vox.misc.a01-01",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "vox.misc.a01-02",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "vox.misc.a01-03",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-04.ogg",
+ event_message: "vox.misc.a01-04",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-05.ogg",
+ event_message: "vox.misc.a01-05",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "vox.misc.a01-06",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 6,
+ delay: 2,
+}
+
+event: {
+ id: 8,
+ event: Hold,
+ event_ship: Ward2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 4,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward1:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Ward1:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:5", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Ward1:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Patrol_01.def b/data/content/Campaigns/02/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..7ddb607
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Patrol_02.def b/data/content/Campaigns/02/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..5a24576
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Patrol_02.def
@@ -0,0 +1,123 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Patrol_03.def b/data/content/Campaigns/02/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..0141a75
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Patrol_03.def
@@ -0,0 +1,119 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Baikal,
+ rloc: { ref: "Player:2", dex: 45e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
diff --git a/data/content/Campaigns/02/Templates/IS_Patrol_HS.def b/data/content/Campaigns/02/Templates/IS_Patrol_HS.def
new file mode 100644
index 0000000..3cb6c31
--- /dev/null
+++ b/data/content/Campaigns/02/Templates/IS_Patrol_HS.def
@@ -0,0 +1,198 @@
+MISSION_TEMPLATE
+
+name: "Harmony Patrol"
+type: PATROL
+system: Solus
+region: Solus
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Solus-Kalon" }
+alias: { name: FC2, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony Station" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+ward: HS
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ region: Solus,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 25e3, dex_var: 0, az: 180, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus }, // 1
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 0, az: 0, az_var: 30, el_var: 0 }, speed: 500, rgn: Kalon }, // 2
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 0, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 3
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 270, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 4
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 180, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 5
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 90, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 6
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, dex_var: 1e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon }, // 7
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus }, // 8
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Solus }, // 9
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: HS },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:4", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Player:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:3", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Player:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+element: {
+ name: Wolf1,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (250e3, 250e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+element: {
+ name: Wolf2,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (280e3, 280e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Wolf1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 2,
+ event: Hold,
+ event_ship: Wolf2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ event_ship: Player,
+ event_source: HS,
+ sound: "Vox/Misc/A02-01.ogg",
+ message: "vox.misc.a02-01",
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+ delay: 120,
+}
+
+event: {
+ id: 20,
+ event: Jump,
+ event_ship: Stalwart,
+ event_target: Kalon,
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 15,
+}
+
+event: {
+ id: 21,
+ event: Objective,
+ event_ship: Stalwart,
+ event_param: 10,
+ event_target: Wolf1,
+
+ trigger: Event,
+ trigger_param: 20,
+ delay: 15,
+}
diff --git a/data/content/Campaigns/02/campaign.def b/data/content/Campaigns/02/campaign.def
new file mode 100644
index 0000000..4c20601
--- /dev/null
+++ b/data/content/Campaigns/02/campaign.def
@@ -0,0 +1,1153 @@
+CAMPAIGN
+
+name: "c02.name"
+desc: "c02.desc"
+situation: "c02.sitrep"
+orders: "c02.orders"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: carrier_group, id: 6 },
+ group: { type: destroyer_squadron, id: 43 },
+ group: { type: destroyer_squadron, id: 60 },
+ group: { type: freight, id: 3000 },
+}
+
+combatant: {
+ name: "Dantari Separatists",
+ group: { type: fleet, id: 1 },
+ group: { type: battalion, id: 1 },
+ group: { type: battalion, id: 2 },
+ group: { type: war_production, id: 1 },
+ group: { type: freight, id: 3000 },
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 4 },
+}
+
+combatant: {
+ name: "Independent System of Solus",
+ group: { type: infrastructure, id: 2000 },
+ group: { type: transport, id: 2100 },
+ group: { type: civilian, id: 2200 },
+ group: { type: freight, id: 3000 },
+ group: { type: civilian, id: 5000 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Solus,
+ text: "c02.a000",
+ source: News,
+ file: "Actions/01-campaign-start.txt",
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-News-Start.def"
+}
+
+action: {
+ id: 1,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Trellis,
+ image: "Actions/AA-archon-trellis.pcx"
+}
+
+action: {
+ id: 2,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Trellis,
+ image: "Actions/AA-gerrond-trellis.pcx"
+}
+
+action: {
+ id: 50,
+ type: zone,
+ team: 2,
+ asset_type: carrier_group,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 51,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 52,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 6,
+ region: Trellis,
+}
+
+action: {
+ id: 53,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 7,
+ region: Meridian,
+}
+
+action: {
+ id: 60
+ type: event
+ subtype: story
+ team: 1
+ rgn: Loris
+ after: "01/15:00:00"
+ text: "c02.a060"
+ source: Mail
+ file: "Actions/m1-catching-up.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-Catching-Up.def"
+}
+
+
+action: {
+ id: 110,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Trellis,
+ asset_type: minefield,
+ asset_id: 4,
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: LT, score: 10 },
+}
+
+action: {
+ id: 120,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Trellis,
+ asset_type: minefield,
+ asset_id: 5,
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: LT, score: 10 },
+}
+
+
+action: {
+ id: 130,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "02/05:00:00",
+ text: "c02.a130",
+ source: News,
+ file: "Actions/02-coup-failure.txt",
+ image: "Actions/02-coup-failure.pcx",
+ scene: "Scenes/02-Coup-Failure.def"
+}
+
+action: {
+ id: 140,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "c02.a140",
+ file: "Actions/03a-minefield-a.txt",
+ source: TACNET,
+ after: "02/09:00:00",
+ before: "03/09:00:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 1,
+ target_iff: 2,
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "c02.a150",
+ file: "Actions/03a-minefield-b.txt",
+ source: TACNET,
+ after: "02/13:30:00",
+ before: "03/13:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 2,
+ target_iff: 2,
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+}
+
+action: {
+ id: 160,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "c02.a160",
+ file: "Actions/03a-minefield-c.txt",
+ source: TACNET,
+ after: "02/19:20:00",
+ before: "03/19:20:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 3, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 3,
+ target_iff: 2,
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+}
+
+action: {
+ id: 170,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "c02.a170",
+ file: "Actions/03a-minefield-d.txt",
+ source: TACNET,
+ after: "03/00:45:00",
+ before: "04/00:45:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 4, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 4,
+ target_iff: 2,
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+}
+
+action: {
+ id: 180,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "c02.a180",
+ file: "Actions/03a-minefield-e.txt",
+ source: TACNET,
+ after: "03/08:30:00",
+ before: "04/08:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 5, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+}
+
+action: {
+ id: 190
+ type: event
+ subtype: story
+ team: 1,
+ rgn: Jarnell
+ after: "03/18:00:00"
+ text: "c02.a190"
+ source: Mail
+ file: "Actions/m2-new-digs.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-New-Digs.def"
+}
+
+action: {
+ id: 200,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "c02.a200",
+ source: News,
+ file: "Actions/03-blockade-broken.txt",
+ image: "Actions/03-blockade-broken.pcx",
+ scene: "Scenes/03-Blockade-Broken.def",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 3, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 4, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 5, comp: LT, score: 10 },
+}
+
+action: {
+ id: 210,
+ type: sitrep,
+ team: 1,
+ text: "c02.a210"
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 230,
+ type: intel,
+ subtype: known,
+ team: 1,
+ rgn: Trellis,
+ asset_type: freight,
+ asset_id: 3000,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 240,
+ type: orders,
+ team: 1,
+ text: "c02.a240"
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 250,
+ type: mission,
+ subtype: escort_freight,
+ team: 1,
+ rgn: Trellis,
+ asset_type: fighter_squadron,
+ asset_id: 36,
+ count: 4,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 255,
+ type: mission,
+ subtype: escort_freight,
+ team: 1,
+ rgn: Trellis,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ count: 2,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 260,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "03/09:15:00",
+ text: "c02.a260",
+ source: SECURE,
+ file: "Actions/04-harmony-risk.txt",
+ image: "Actions/04-harmony-risk.pcx",
+ scene: "Scenes/04-Harmony-Risk.def",
+}
+
+action: {
+ id: 270,
+ type: zone,
+ team: 1,
+ after: "03/19:00:00",
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Solus,
+ image: "Actions/AA-archon-solus.pcx"
+}
+
+action: {
+ id: 280,
+ type: zone,
+ team: 1,
+ after: "03/19:30:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Solus,
+ image: "Actions/AA-gerrond-solus.pcx"
+}
+
+action: {
+ id: 300,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "04/04:00:00",
+ text: "c02.a300",
+ source: FORCOM,
+ file: "Actions/06-renser-buildup.txt",
+ image: "Actions/06-renser-buildup.pcx",
+ scene: "Scenes/06-Renser-Buildup.def"
+}
+
+action: {
+ id: 305,
+ type: sitrep,
+ team: 1,
+ after: "04/04:00:00",
+ text: "c02.a305",
+}
+
+// if player stumbles upon the base before expected:
+action: {
+ id: 310,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Telmera,
+ before: "04/08:20:00",
+ text: "c02.a310",
+ source: SECURE,
+ file: "Actions/05-foothill-ridge.txt",
+ image: "Actions/05-foothill-ridge.pcx",
+ scene: "Scenes/05-Foothill-Ridge.def",
+
+ req: { c1: "Dantari Separatists", group_type: battalion, group_id: 2, comp: GT, intel: SECRET },
+}
+
+action: {
+ id: 315,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:20:00",
+ asset_type: intercept_squadron,
+ asset_id: 3,
+}
+
+action: {
+ id: 320,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ asset_type: attack_squadron,
+ asset_id: 4,
+}
+
+action: {
+ id: 325,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ asset_type: battery,
+ asset_id: 1,
+}
+
+action: {
+ id: 330,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ text: "c02.a330",
+ source: SECURE,
+ file: "Actions/05-foothill-ridge.txt",
+ image: "Actions/05-foothill-ridge.pcx",
+ scene: "Scenes/05-Foothill-Ridge.def",
+
+ req: { action: 310, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 350,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Meridian,
+ after: "04/15:00:00",
+ text: "c02.a350",
+ source: News,
+ file: "Actions/07-research-lab.txt",
+ image: "Actions/07-research-lab.pcx",
+ scene: "Scenes/07-Research-Lab.def"
+}
+
+action: {
+ id: 370,
+ type: zone,
+ team: 1,
+ after: "04/16:30:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Meridian,
+ image: "Actions/AA-gerrond-meridian.pcx"
+}
+
+action: {
+ id: 375,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "04/20:00:00",
+ text: "c02.a375",
+ source: News,
+ file: "Actions/08-renser-accusation.txt",
+ image: "Actions/08-renser-accusation.pcx",
+ scene: "Scenes/08-Renser-Accusation.def"
+}
+
+action: {
+ id: 410,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "05/12:00:00",
+ text: "c02.a410",
+ source: News,
+ file: "Actions/09-senate-resolution.txt",
+ image: "Actions/09-senate-resolution.pcx",
+ scene: "Scenes/09-Senate-Resolution.def"
+}
+
+// RENSER TASK FORCE ARRIVES IN SOLUS (JALAH SECTOR)
+
+action: {
+ id: 420,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/21:15:00",
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+}
+
+action: {
+ id: 421,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/22:45:00",
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+}
+
+action: {
+ id: 422,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/23:30:00",
+ asset_type: carrier_group,
+ asset_id: 4,
+}
+
+// KEEP RENSER TASK FORCE IN JALAH SECTOR
+
+action: {
+ id: 425,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/21:15:00",
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+}
+
+action: {
+ id: 426,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/22:45:00",
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+}
+
+action: {
+ id: 427,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/23:30:00",
+ asset_type: carrier_group,
+ asset_id: 4,
+}
+
+action: {
+ id: 440,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jalah,
+ after: "06/23:45:00",
+ text: "c02.a440",
+ source: FORCOM,
+ file: "Actions/10-renser-arrival.txt",
+ image: "Actions/10-renser-arrival.pcx",
+}
+
+action: {
+ id: 450,
+ type: sitrep,
+ team: 1,
+ after: "06/23:45:00",
+ text: "c02.a450"
+}
+
+action: {
+ id: 455,
+ type: orders,
+ team: 1,
+ after: "06/23:45:00",
+ text: "c02.a455"
+}
+
+// DANTARI FORCES FALL BACK TO JALAH TO REGROUP WITH RENSER TASK FORCE
+
+action: {
+ id: 500,
+ type: zone,
+ team: 2,
+ after: "07/18:00:00",
+ asset_type: carrier_group,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 501,
+ type: zone,
+ team: 2,
+ after: "07/20:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 502,
+ type: zone,
+ team: 2,
+ after: "07/21:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 6,
+ region: Jalah,
+}
+
+action: {
+ id: 503,
+ type: zone,
+ team: 2,
+ after: "07/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 7,
+ region: Jalah,
+}
+
+action: {
+ id: 510,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jalah,
+ after: "07/22:15:00",
+ text: "c02.a510",
+ source: FORCOM,
+ file: "Actions/11-dantari-pullback.txt",
+ image: "Actions/11-dantari-pullback.pcx",
+ scene: "Scenes/11-Dantari-Pullback.def"
+}
+
+action: {
+ id: 515,
+ type: sitrep,
+ team: 1,
+ after: "07/22:15:00",
+ text: "c02.a515"
+}
+
+// ALLIANCE FORCES PURSUE THEM INTO JALAH
+
+action: {
+ id: 520,
+ type: zone,
+ team: 1,
+ after: "08/00:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Jalah,
+ image: "Actions/AA-gerrond-jalah.pcx"
+}
+
+action: {
+ id: 521,
+ type: zone,
+ team: 1,
+ after: "08/01:00:00",
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Jalah,
+ image: "Actions/AA-archon-jalah.pcx"
+}
+
+action: {
+ id: 530,
+ type: intel,
+ subtype: known,
+ team: 1,
+ after: "08/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Jalah,
+}
+
+action: {
+ id: 535,
+ type: zone,
+ team: 1,
+ after: "08/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Jalah,
+ image: "Actions/AA-shadow-jalah.pcx",
+
+ req: { action: 735, status: COMPLETE, not: true }
+}
+
+// DON'T PROLONG THE SUFFERING INDEFINITELY
+
+action: {
+ id: 550,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "c02.a550",
+ file: "Actions/11a-wolf.txt",
+ source: TACNET,
+ after: "10/13:30:00",
+ before: "11/13:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 5, comp: GT, score: 100 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Wolf",
+ target_kill: "Halas",
+ target_kill: "Baikal",
+ target_kill: "Kyren",
+}
+
+action: {
+ id: 555,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "c02.a555",
+ file: "Actions/11a-kitts.txt",
+ source: TACNET,
+ after: "10/20:30:00",
+ before: "11/20:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 6, comp: GT, score: 200 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 6,
+ target_iff: 2,
+ target_kill: "Kitts",
+ target_kill: "Tomal",
+ target_kill: "Loval",
+ target_kill: "Udel",
+}
+
+action: {
+ id: 560,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "c02.a560",
+ file: "Actions/11a-kendra.txt",
+ source: TACNET,
+ after: "11/10:30:00",
+ before: "12/10:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 7, comp: GT, score: 300 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 7,
+ target_iff: 2,
+ target_kill: "Kendra",
+ target_kill: "Sayal",
+ target_kill: "Baionne",
+ target_kill: "Pelorat",
+}
+
+action: {
+ id: 565,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "c02.a565",
+ file: "Actions/11a-goliath.txt",
+ source: TACNET,
+ after: "12/10:20:00",
+ before: "13/10:20:00",
+
+ req: { c1: "Dantari Separatists", group_type: carrier_group, group_id: 5, comp: GT, score: 500 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: carrier_group,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Goliath",
+ target_kill: "Lanner",
+ target_kill: "Connel",
+ target_kill: "Ganat",
+}
+
+// AFTER JALAH FALLS, TASK FORCE RETREATS TO RENSER
+
+action: {
+ id: 600,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "c02.a600",
+ source: News,
+ file: "Actions/12-cease-fire.txt",
+ image: "Actions/12-cease-fire.pcx",
+
+ req: { c1: "Dantari Separatists", group_type: carrier_group, group_id: 5, comp: LT, score: 500 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 5, comp: LT, score: 100 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 6, comp: LT, score: 200 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 7, comp: LT, score: 300 },
+}
+
+action: {
+ id: 620,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 621,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 622,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Lornas,
+ asset_type: carrier_group,
+ asset_id: 4,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+// KEEP RENSER TASK FORCE IN KHAITAL SECTOR
+
+action: {
+ id: 630,
+ type: zone,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 640,
+ type: zone,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+
+ req: { action: 621, status: COMPLETE }
+}
+
+action: {
+ id: 650,
+ type: zone,
+ team: 2,
+ rgn: Lornas,
+ asset_type: carrier_group,
+ asset_id: 4,
+
+ req: { action: 622, status: COMPLETE }
+}
+
+// ALLIANCE FORCES ARRIVE IN KHAITAL
+
+action: {
+ id: 700,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "c02.a700",
+ source: News,
+ file: "Actions/13-renser-invasion.txt",
+ image: "Actions/13-renser-invasion.pcx",
+ scene: "Scenes/13-Renser-Invasion.def",
+ delay: 19800, // five and a half hours after 600
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 701,
+ type: event,
+ subtype: story
+ team: 1
+ rgn: Jarnell
+ text: "c02.a701"
+ source: Mail
+ file: "Actions/m3-why-renser.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M3-Why-Renser.def"
+ delay: 21600 // six hours after 700
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 710,
+ type: sitrep,
+ team: 1,
+ text: "c02.a710",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 711,
+ type: orders,
+ team: 1,
+ text: "c02.a711",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 720,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Khaital,
+ image: "Actions/AA-gerrond-khaital.pcx",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 725,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Khaital,
+ image: "Actions/AA-archon-khaital.pcx",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 735,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Khaital,
+ image: "Actions/AA-shadow-khaital.pcx",
+
+ req: { action: 530, status: COMPLETE },
+ req: { action: 700, status: COMPLETE }
+}
+
+// ALLIANCE FORCES PURSUE FLEET INTO LORNAS
+
+action: {
+ id: 660,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+ delay: 90e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 670,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+ delay: 90e3,
+
+ req: { action: 621, status: COMPLETE }
+}
+
+action: {
+ id: 680,
+ type: zone,
+ team: 2,
+ asset_type: carrier_group,
+ asset_id: 4,
+ delay: 90e3,
+
+ req: { action: 622, status: COMPLETE }
+}
+
+action: {
+ id: 721,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ delay: 36000,
+
+ req: { action: 660, status: COMPLETE },
+ req: { action: 720, status: COMPLETE }
+}
+
+action: {
+ id: 726,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ delay: 36000,
+
+ req: { action: 670, status: COMPLETE },
+ req: { action: 725, status: COMPLETE }
+}
+
+action: {
+ id: 736,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ delay: 36000,
+
+ req: { action: 680, status: COMPLETE },
+ req: { action: 735, status: COMPLETE }
+}
+
+// THE BITTER END
+
+action: {
+ id: 997
+ type: event
+ subtype: campaign_fail
+ team: 1
+ rgn: Solus
+ text: "c02.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 6, comp: LT, score: 3000 },
+ req: { action: 600, status: COMPLETE, not: true },
+}
+
+action: {
+ id: 998
+ type: event
+ subtype: campaign_fail
+ team: 1
+ rgn: Solus
+ text: "c02.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 6, comp: LT, score: 3000 }
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 999
+ type: event
+ subtype: campaign_end // successful ending
+ team: 1
+ rgn: Solus
+ text: "c02.victory"
+ file: "Actions/campaign_end.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 4, comp: LT, score: 4000 }
+}
diff --git a/data/content/Campaigns/03/Actions/01-campaign-start.txt b/data/content/Campaigns/03/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..6c1d0f2
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/01-campaign-start.txt
@@ -0,0 +1,7 @@
+JARNELL - Just four local months after the success of Operation Highland, the Terellian Alliance has once more been plunged into violent conflict. For the first time in its five hundred year history, enemy forces have invaded core Alliance systems and attacked civilian ships and property.
+
+"Using the Force involvement in the Solusan-Renser Conflict as a pretext, two key systems within the Marakan Hegemony have formally declared war on the people of the Terellian Alliance," Force:Space Fleet Commander A. Evars was quoted as saying.
+
+The attack has employed two bold thrusts. The Hegemony Sixth Fleet out of Kolchev System has taken the Independent Civil Protectorate of Haiche and proceeded to assault targets at the Force proving grounds in Janus System. Simultaneously, the Hegemony Seventh Fleet has left its home port in Loris and bypassed the neutral Silessian Confederacy to begin a rapid invasion of the Borovan Republic (see diagram at right).
+
+Alliance forces are said to be scrambling to defend and hold these two key systems before the invasions can be completed. Force:Command joint chiefs expressed cautious optimism that early and decisive containment could prevent this conflict from developing into a full scale war. \ No newline at end of file
diff --git a/data/content/Campaigns/03/Actions/02-president-speech.txt b/data/content/Campaigns/03/Actions/02-president-speech.txt
new file mode 100644
index 0000000..93ebfc8
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/02-president-speech.txt
@@ -0,0 +1,11 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, together we now face an unprecedented crisis in the long history of our proud nation. The Terellian Alliance is under attack by an implacable enemy. Warships from systems under the control of the Marakan Hegemony are even now invading core Alliance systems, including Janus and the Borovan Republic.
+
+To meet this threat before it can engulf any more of our sovreign territory or endanger any more civilian lives, I have authorized and commanded Force combined military to begin Operation Shining Fortress in defense of our home worlds. The cost of this defense will be great, but the cost of surrender would be even greater.
+
+As another great leader once told his people, 'I have nothing to offer you but blood, toil, tears, and sweat.' The time of this war will not be short, but together we will stand victorious, made fast to the resolve that freedom, honor, and justice shall not perish from our worlds.
+
+I urge each of you to remain calm through this long, dark night. Brace yourselves to your individual duties, and together we shall greet a new dawn of peace.
+
+Thank you, and may fortune favor our brave men and women at arms. \ No newline at end of file
diff --git a/data/content/Campaigns/03/Actions/03-titan-destroyed.txt b/data/content/Campaigns/03/Actions/03-titan-destroyed.txt
new file mode 100644
index 0000000..ac0dadf
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/03-titan-destroyed.txt
@@ -0,0 +1,6 @@
+BOROVA - In a devastating surprise attack, Hegemony destroyers and cruisers assaulted the Titan 7th CVBG while in Borova orbit. The fleet carrier CV-72 Titan is believed lost with all hands, although some of the embarked 21st Tactical Fighter Wing may have been able to escape. Damage from the fighting was extensive, and several other ships in the Titan battle group may have been damaged or destroyed.
+
+The sudden reversal has staggered the Seventh Fleet. All surviving units are rapidly withdrawing before Hegemony forces can strike again. A temporary strategic loss of the Borovan system seems likely at this point.
+
+Force:Space 12th CVBG led by CV-77 Chronos is being readied in Jarnell fleet yards to take over for the Titan. However, this CVBG is generally reserved for systemic defense. The 29th Tactical Fighter Wing attached to the carrier contains only half the number of fighters of the Wing it will be asked to replace.
+
diff --git a/data/content/Campaigns/03/Actions/04-fort-talden.txt b/data/content/Campaigns/03/Actions/04-fort-talden.txt
new file mode 100644
index 0000000..04b6ff3
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/04-fort-talden.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** FORT TALDEN ADVANCED PROJECTS
+*** BOROVA SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Fort Talden Advanced Projects Laboratory Attacked
+
+Force:Intel field agents in the Borovan Capitol report extensive fighting by advance units of the Hegemony invasion force. The Fort Talden Advanced Projects Laboratory has been attacked and is now in the hands of Hegemony AAF. Force:Intel field agents are attempting to infiltrate the laboratory and destroy sensitive materials before they can be captured or documented.
+
+Force:Intel recommends Force:Space accelerate deployment of transorbital platforms in Borova Sector. A package of air strikes could reduce the risk of intel compromise, if assets can be deployed within ten hours.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/03/Actions/05-grand-concourse.txt b/data/content/Campaigns/03/Actions/05-grand-concourse.txt
new file mode 100644
index 0000000..d96ed8d
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/05-grand-concourse.txt
@@ -0,0 +1,5 @@
+VESTAPOL, BOROVA - The Borovan planetary capitol was a scene of fierce fighting in last night's raids by Hegemony advanced ground forces. Military, logistic, and even civilian targets on the Grand Concourse suffered extensive damage.
+
+Tourist Sara Hunter was an eyewitness to the action: "It was a long night. I'm still a bit shaken. I had just left the Museum of Precolonial Antiquities when Hegemony forces started hitting it with rocket fire. Fortunately, I was able to take shelter in a small shop across from the museum district. About twenty minutes later, there was a huge explosion and the MPCA was nothing but ashes." Military analysts believe that low-yield shaped plasma charges were used on some of the targets.
+
+The pattern to the attacks is unclear, and may be the result of spotty intelligence gathering by Hegemony forces. "I have no idea why they hit the museum district so hard. I'm just glad I got out before they did," said Hunter. \ No newline at end of file
diff --git a/data/content/Campaigns/03/Actions/06-eleaan-diplomats.txt b/data/content/Campaigns/03/Actions/06-eleaan-diplomats.txt
new file mode 100644
index 0000000..9e0eb23
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/06-eleaan-diplomats.txt
@@ -0,0 +1,5 @@
+BOROVA - The Ambassador for the Ele'aan Fusion announced the recall of diplomatic missions to the Marakan Hegemony and the Zolon Empire today. "Our fact-finding mission to Borova is complete and our findings are conclusive. We return to Jarnell to present the detailed information directly to the Terellian President and his advisors. The Zolon Empire and the states of the Marakan Hegemony act together in this invasion, in direct violation of the Korian Treaty. We recall all of our diplomatic missions to those systems."
+
+Force military analysts insist that they can find no evidence of Zolon involvement in the recent invasion, which seems to be a purely human affair. "The Zolon Empire has never shown much interest in the core Alliance systems, since they contain no worlds suitable for Zolon life. Thus far, we haven't detected any prohibited weapons technology in use by the Hegemony invasion force. Our main goal is to regain control of the system and bring Operation Shining Fortress to a successful conclusion. Accusing the Zolon Empire of involvement is not consistent with that goal."
+
+The Zolons are a hive-like hereditary empire on the northern border of Hegemony space. Zolon drones are outwardly similar to Earth crabs, although they evolved in a desert climate without liquid water. They are less than one meter in height but their six legs can reach a span of over two meters. The Zolon species is very intelligent, but also very different from humans. They use neither written nor spoken languages, instead communicating through chemical messengers, gestures, and a form of electromagnetic radiation that may serve them as telepathy. These differences make it very difficult for Zolons and humans to communicate effectively. \ No newline at end of file
diff --git a/data/content/Campaigns/03/Actions/07-athenar.txt b/data/content/Campaigns/03/Actions/07-athenar.txt
new file mode 100644
index 0000000..fb52ec9
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/07-athenar.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Hegemony Forces Invade Athenar
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Part of the Hegemony Seventh Fleet has broken off from the main formation in Janus. Hegemony 17th Battle Group led by the heavy cruiser "Intruder" has successfully breached the Athenar system.
+
+This invasion places our forces in a difficult position. Until now, we have had the advantage of position in the Janus system. The Hegemony invasion fleet has been operating with a stretched supply line, while we have had greater reserves of fuel and ordnance and the backing of ground bases to exploit them. The Hegemony invasion of Athenar will now force us to defend two systems with our smaller fleet. Although this invasion divides the Hegemony forces, it is a net tactical advantage for them.
+
+At this point in the campaign, we can not tolerate additional civilian casualties in the core systems. Force:Command has therefore decided to commit sufficient force to eliminate the Hegemony battle group in Athenar before it can be reinforced by additional supporting units. Fifth Fleet battle group "Furious" and destroyer squadron "Enigma" will proceed to Athenar immediately and engage all Hegemony units therein.
+
+Good luck and good hunting.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/03/Actions/08-liberation.txt b/data/content/Campaigns/03/Actions/08-liberation.txt
new file mode 100644
index 0000000..fdd578b
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/08-liberation.txt
@@ -0,0 +1,9 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+Today is Liberation Day. The tide has turned in the battle to secure our homelands and protect our way of life. The men and women of the various branches of Force have fought and bled, and their toil and suffering has been rewarded with a string of decisive military victories in the core systems. At this hour, I am pleased to announce that Hegemony forces are rapidly withdrawing from our borders to seek safety in the independent systems of Silessia and Haiche to the west.
+
+Force:Command has already issued clearance for reconstruction efforts to get underway. Later this morning I will be meeting with key members of the Combined Senate to prepare contingent appropriations and authorize emergency funding for aid to the affected systems of Janus, Borova, and Athenar. I know how hard it has been for those of you caught on the ground in this conflict, and I know how many of your loved ones have been lost in the ground attacks and in the cold vacuum of space. Although this administration can never fully heal the losses you have suffered, take comfort in knowing that help is on the way for you to recover, rebuild, and ultimately move on.
+
+However, while reconstruction begins at home, the job of our forces in the field is not yet fully complete. The peace can not stand while Hegemony forces lie in wait on the edge of our space. And so I must order a continuation of Operation Shining Fortress to extend the peace from our own borders to those of our independent neighbors. We must liberate Haiche and Silessia, just as our own systems have been liberated. Hegemony forces must return to their antebellum status in Loris and Kolchev.
+
+Only then shall we find respite from sorrow, and rediscover the joy of peace.
diff --git a/data/content/Campaigns/03/Actions/09-silessia.txt b/data/content/Campaigns/03/Actions/09-silessia.txt
new file mode 100644
index 0000000..11bf7cb
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/09-silessia.txt
@@ -0,0 +1,18 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Silessian Confederacy
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space Fourth Fleet has been assigned to engage Hegemony forces operating in the independent system of Silessia. Our main goals are to force the Hegemony to withdraw, while minimizing civilian casualties and property damage.
+
+The Silessian Confederacy has been an outspokenly neutral power in this region for centuries. Official government policy here is to avoid taking sides in any conflict, to the extent that Silessia maintains no armed forces beyond those needed for commercial traffic enforcement. Neutrality has worked out very well here, and the banking and communications sectors have become quite wealthy.
+
+In fact, they have become so wealthy that the Silessian government is planning a colonial expedition to an undeveloped system far to the north of the Blue Drift region. They have a colony ship in orbit around the main planet preparing to depart. We believe the ship is complete and is in the process of boarding the passengers and cargo for the expedition.
+
+Fourth Fleet will have two main defensive priorities during the next hundred hours - defending the colony ship and protecting the swarm of communications satellites that keep the banks and telcos in operation.
+
+More detailed analyses will be made available as the situation develops.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/03/Actions/10-haiche.txt b/data/content/Campaigns/03/Actions/10-haiche.txt
new file mode 100644
index 0000000..c032a69
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/10-haiche.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Haiche Protectorate
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space Fifth Fleet has been assigned to engage Hegemony forces operating in the Haiche Protectorate. Our main goals are to force the Hegemony to withdraw, while minimizing civilian casualties and property damage.
+
+Haiche is a protected independent outpost with a small indigenous population. The system contains two medium size gas giant planets, and one very dry and very dusty world of approximately terrestrial conditions. The desert planet, which is also named Haiche, is sparsely populated. The inhabitants are mainly mineral researchers, xenoarchaeologists, and enough trades to support and feed the general population.
+
+The Haiche Protectorate has never had the funds to adequately police the outer gas giants. They have become havens for traders and pirates due to their large collection of small moons. We may expect to encounter some surprises in the Cygnus and Tal Amin sectors.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/03/Actions/11-tantalus.txt b/data/content/Campaigns/03/Actions/11-tantalus.txt
new file mode 100644
index 0000000..2a96c7c
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/11-tantalus.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Tantalus Sector
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Haiche has been a protected independent outpost for the past sixty years, since the Korian treaty was signed. Per the treaty, neither Hegemony nor Alliance citizens may establish residence in the system, and all travel through the system has been strictly controlled. The main planet, Haiche, is the reason for the regulations. In the past, many nations have made claims on the wealth of heavy metals buried deep beneath its surface.
+
+Force:Intel field operatives were able to pass through the Haiche system recently. Their report indicates that the Hegemony Seventh Fleet has invaded in force and reopened an illegal mining operation in the Tantalus sector. Haiche has deep seams of tantalum, iridium, and even some gold.
+
+As part of Operation Shining Fortress, Fifth Fleet has been tasked with eliminating the Hegemony mining operation in the Tantalus Sector. Force:Command will be working closely with the Corps of Engineers and other materials experts to assess any risks to the local population that may arise either from the Hegemony operation working the mine or Alliance forces attacking it.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/03/Actions/12-colony-ship.txt b/data/content/Campaigns/03/Actions/12-colony-ship.txt
new file mode 100644
index 0000000..a4fd263
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/12-colony-ship.txt
@@ -0,0 +1,8 @@
+'FAR HORIZON' SILESSIA ORBIT - Even shrouded as she is by the pre-launch support framework, the Far Horizon is an awesome sight. The colony ship is kilometers long - larger than some groundside cities - a series of silver-white cylinders sparkling from within through hundreds of port windows. The central habitation pillar is surrounded by a ring of six fusion drive units that will one day propel this ship into the great unknown, north of the Blue Drift.
+
+When fully loaded, the Far Horizon will become home to fifty thousand colonists and flight crew members. To accompany the human colonists are more than ten million terrestrial animals stored as cryogenically frozen embryos, each smaller than the period at the end of this sentence. However, while the embryos are all on board in special refrigeration modules, most of the human colonists remain on the planet below.
+
+"When we are operating at full capacity, we can bring two thousand people aboard the ship every day," said the expedition leader, Captain Anders. "Two thousand people is pretty much the limit of both our heavy lift capacity, and the airlock and berthing systems. Unfortunately, since the Hegemony lock-down we haven't been able to bring aboard two people, much less two thousand."
+
+The Marakan Hegemony fleet occupying the Silessian system has imposed a moratorium on all in-system travel by civilian personnel, ostensibly to prevent terrorists and saboteurs from striking the colony ship. However, until the embargo is lifted, no progress can be made in bringing aboard the more than forty thousand colonists living in the quarantine center on Silessia. "For now, we can only watch and wait. And hope that this delay doesn't cause us to miss our launch window," said Captain Anders.
+
diff --git a/data/content/Campaigns/03/Actions/13-marauder.txt b/data/content/Campaigns/03/Actions/13-marauder.txt
new file mode 100644
index 0000000..d6ca7f6
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/13-marauder.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Brotherhood of Iron
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Advance trading scouts have reported that pirates from the so-called Brotherhood of Iron criminal organization are taking advantage of the Hegemony invasion to prey on civillian transports in the Silessian system. Reports indicate the presence of small and medium starships as well as several fighter class vessels. One of the scouts was able to deliver a sensor snapshot of the "Marauder" class starship shown at the right.
+
+The Brotherhood of Iron has been spreading through the unpoliced sectors of the Marakan Hegemony for several decades. In recent years they have grown more bold and started to establish a presence in the outback. Most of these characters are wanted by police organizations in both the Alliance and the Hegemony. Under normal circumstances, we would be expected to follow security protocols and allow civillian authorities to apprehend them.
+
+However, these are no longer normal circumstances. The President's mandate for Operation Shining Fortress has effectively asked us to assert martial law in the Silessian system. If you have a safe opportunity to engage Brotherhood forces without undue danger to civillian lives or property then you have permission to take them out.
+
+Good hunting.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/content/Campaigns/03/Actions/m1-almost-home.txt b/data/content/Campaigns/03/Actions/m1-almost-home.txt
new file mode 100644
index 0000000..22d0c4f
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/m1-almost-home.txt
@@ -0,0 +1,19 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: ALMOST HOME
+-----
+PATH: Magellan IV Shipboard | Janek Station Courier Drop | 3RD FLEET HQ | Force Command Transceiver | Lost and Found | $GROUP
+-----
+
+Hey Mate,
+
+I don't know if you made the Academy Reunion or not, sorry I missed catching you there. This has been a bloody awful year. The trade scouting mission did not go as well as I had hoped.
+
+We were delayed in Nephrys System for two months when the Loris Trade Executive cancelled our return visas. Nephrys is really out on the rim, I thought we'd never get back. As it was, it took weeks to find the right sort of contact to forge a new registration for the Maggie and get us cleared through Korius to try the southern route back home. We had to sneak the long way around - four hops - to avoid the military build-up in Kolchev.
+
+We jumped out of Haiche only a couple of days ahead of the invasion force. (In case you haven't heard yet, you're under attack mate.) Right lovely dump you got here in Janus. Not a decent bar in sight, and I could really use a drink or ten. We're pretty banged up, but I think we can make Jarnell and maybe sit down at Thralis for repairs.
+
+Good luck, mate. It's getting nasty out there.
+
+--Jonas
diff --git a/data/content/Campaigns/03/Actions/m2-back-to-borova.txt b/data/content/Campaigns/03/Actions/m2-back-to-borova.txt
new file mode 100644
index 0000000..ac99802
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/m2-back-to-borova.txt
@@ -0,0 +1,20 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: BACK TO BOROVA
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 4TH FLEET HQ | $GROUP
+-----
+
+Hello,
+
+I still can't quite bring myself to believe that we are at war with the Hegemony. The Consulate is leaving on a 'Fact Finding' mission to Borova, and I'll be going along to support the diplomatic corps. We should be in system within thirty hours or less, although it doesn't really feel like 'going home.'
+
+Isn't your unit patrolling the outer sectors? I think this may be the first time we've been in the same system at the same time since university. Strange that it should be under such circumstances.
+
+The Ele'aan Ambassador still thinks the Zolon Empire is behind the Marakan invasion. Although, I still don't see how that is even possible. Zolons can barely communicate with humans. I know the Ele'aans have access to information way beyond our capabilities, but Zolon involvement just seems so... unlikely.
+
+Anyway, I don't know if I'll get any free time while we are in-system. If I do, I'll try to make it over to Vestapol and see your parents. I'd love to see the museums on the Grand Concourse. Come to think of it, I haven't been shopping in Vestapol in ages. But that would be too much to hope for, I suppose.
+
+Love from
+Sara \ No newline at end of file
diff --git a/data/content/Campaigns/03/Actions/m3-down-for-repairs.txt b/data/content/Campaigns/03/Actions/m3-down-for-repairs.txt
new file mode 100644
index 0000000..bc4b314
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/m3-down-for-repairs.txt
@@ -0,0 +1,19 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: DOWN FOR REPAIRS
+-----
+PATH: Magellan IV Shipboard | Organon Motives | Thralis Relay | Force Command Transceiver | 4TH FLEET HQ | $GROUP
+-----
+
+Hey Mate,
+
+Well, Maggie is in the shop. We made it into Thralis just in time to lose the quantum drive. We're sitting in the Organon Motives repair yard waiting on parts for a drive overhaul while I try to call in every favor I have left in the system. I'm just about ready to steal the whole drive system from the next Force Cruiser that passes by just so that we can get back underway.
+
+At least I've had a chance to get caught up on the local nets. This war of yours is big news out here mate, and Thralis isn't exactly on the front lines. The Thracian Titans even canceled their season ending match against Sparta in honor of the lost crew of the CV-72. Really though, I think Thrace just needed an excuse to avoid the match. Hollis is the worst manager they've had in a decade. Anyway, I was glad to see your name wasn't on the missing in action list.
+
+Hey, did you see the news interview with Sara the first night of the fighting in Vestapol? Strange coincidence that she would happen to be on the ground just when a squad of Hegemony goons shows up to knock over the museum. Glad she's all right. Good thing that guardian angel of hers was working over time.
+
+Stay sharp out there. I don't think anyone is looking out for your welfare except you!
+
+--Jonas
diff --git a/data/content/Campaigns/03/Actions/victory.txt b/data/content/Campaigns/03/Actions/victory.txt
new file mode 100644
index 0000000..9a9f0bb
--- /dev/null
+++ b/data/content/Campaigns/03/Actions/victory.txt
@@ -0,0 +1,5 @@
+Alliance forces have completed operations in the independent systems of Silessia and Haiche. The Hegemony invasion has been forced to withdraw completely from Alliance controlled space, and is now preparing to abandon their positions in the neutral territories as well. Given the circumstances, both Force and civillian casualties have been remarkably light.
+
+The President of the Terellian Alliance will be addressing all members of Force in the field within a few hours. In the meantime, hold your positions and observe the temporary cease fire.
+
+Well done, Commander! \ No newline at end of file
diff --git a/data/content/Campaigns/03/Scenes/01-Campaign-Start.def b/data/content/Campaigns/03/Scenes/01-Campaign-Start.def
new file mode 100644
index 0000000..5ae8fab
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/01-Campaign-Start.def
@@ -0,0 +1,230 @@
+MISSION
+
+name: "Cmpn03 News01 - Campaign Start"
+type: "Patrol"
+system: "Janus"
+system: "Borova"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+subtitles: "Campaigns/03/Actions/01-campaign-start.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (22e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, 70e3, 0), rgn: Janek, speed: 700 }
+ head: 180
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (-10e3, -8e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (-14e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (8e3, -4e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (12e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (-10e3, -8e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (8e3, -4e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (11e3, 9e3, 0)
+ navpt: { cmd: Vector, loc: (16e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.015, 0.05) }
+
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Display, time: 10, image: "Campaigns/03/Scenes/Map.pcx", color: 0xffffffff, fade: (1,6,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 20, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony 24th DESRON", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Entering Janek Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Ascendance", vec: (-400,10,800) }
+event: { event: Display, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: (6, 40), target: "Archon", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/02-President-Speech.def b/data/content/Campaigns/03/Scenes/02-President-Speech.def
new file mode 100644
index 0000000..748f3f5
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/02-President-Speech.def
@@ -0,0 +1,226 @@
+MISSION
+
+name: "Cmpn03 News01 - Campaign Start"
+type: "Patrol"
+system: "Janus"
+system: "Borova"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+subtitles: "Campaigns/03/Actions/02-president-speech.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (22e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, 70e3, 0), rgn: Janek, speed: 700 }
+ head: 180
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (-10e3, -8e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (-14e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (8e3, -4e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (12e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (-10e3, -8e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (8e3, -4e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (11e3, 9e3, 0)
+ navpt: { cmd: Vector, loc: (16e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2,0,1e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, sound: "Vox/Scenes/03/News_02_President_Speech.ogg" }
+
+
+event: { event: Display, time: 10, image: "Campaigns/03/Scenes/Map.pcx", color: 0xffffffff, fade: (1,6,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 20, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony 24th DESRON", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Entering Janek Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Ascendance", vec: (-400,10,800) }
+event: { event: Display, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: (6, 40), target: "Archon", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/03-Titan-Destroyed.def b/data/content/Campaigns/03/Scenes/03-Titan-Destroyed.def
new file mode 100644
index 0000000..34722f9
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/03-Titan-Destroyed.def
@@ -0,0 +1,351 @@
+MISSION
+
+name: "Cmpn03 News03 - Titan Destroyed"
+type: "Patrol"
+system: Jarnell
+system: Borova
+region: Borova
+stardate: 1155770000.0
+
+subtitles: "Campaigns/03/Actions/03-titan-destroyed.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0, 0, 0), rgn: "Borova", speed: 50 }
+}
+
+element: {
+ name: Titan
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Windriders"
+ design: "Falcon"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Chargers"
+ design: "Stormhawk"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Razorbacks"
+ design: "Thunderbolt"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 20
+ maint_count: 10
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Artemis"
+ design: "Zodiac"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 8
+ maint_count: 4
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Omega"
+ design: "Falcon"
+ squadron: "Windriders"
+ commander: "Titan"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (18e3, -18e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: "Vulcan"
+ design: "Stormhawk"
+ squadron: "Chargers"
+ commander: "Titan"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-6e3, -23e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (40e3, 40e3, 0)
+ navpt: { cmd: Assault, tgt: Titan, rgn: Borova, loc: (0,0,0), speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (-30e3, -50e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Titan, rgn: Borova, loc: (0,0,0), speed: 500 }
+}
+
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (28e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+element: {
+ name: Sabre
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (38e3, -24e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+element: {
+ name: Lance
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (48e3, 24e3, 0)
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (-41e3, 29e3, 0)
+}
+
+element: {
+ name: "Sorrin"
+ design: "Viper"
+ squadron: "Vipers"
+ commander: "Cyclops"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Borova"
+ loc: (-34e3, 28e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: "Amnar"
+ design: "Cobra"
+ mission: Assault
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Borova"
+ loc: (-45e3, 25e3, 0)
+
+ loadout: { ship: -1, name: "Ship Strike" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, param: 3, target: "Titan", vec: (0.3, -0.15, 3e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.03) }
+
+
+event: { event: Camera, time: 10, param: (6, 7), target: "Vulcan 1" }
+
+event: { event: Camera, time: 15, param: (6, 7), target: "Omega 1" }
+
+event: { event: Camera, time: 20, param: (6,23), target: "Throne" }
+
+event: { event: Camera, time: 25, param: 3, target: "Stalwart", vec: (0.2,0,3e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.01) }
+
+event: { event: Message, time: 28, sound: "Vox/Scenes/03/News_03_Titan_Destroyed.ogg" }
+
+event: { event: Camera, time: 30, param: (6,10), target: "Titan", vec: (15e3,0,6e3) }
+
+
+event: { event: Damage, time: 33, param: 1e9, ship: "Titan" }
+
+
+event: { event: Camera, time: 40, param: (6,15), target: "Ascendance", vec: (2.3,0,3e3) }
+
+event: { event: Camera, time: 50, param: 3, target: "Gerson", vec: (0.7,0.7,4e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.02) }
+
+event: { event: Camera, time: 70, param: 3, target: "Simmons", vec: (1.7,0,4e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/04-Fort-Talden.def b/data/content/Campaigns/03/Scenes/04-Fort-Talden.def
new file mode 100644
index 0000000..6cc45e6
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/04-Fort-Talden.def
@@ -0,0 +1,159 @@
+MISSION
+
+name: "Cmpn03 Brief 04 Fort Talden"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1155990000
+
+subtitles: "Campaigns/03/Actions/04-fort-talden.txt"
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "AAA 2"
+ design: "AAA 2"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-27e3, -13e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Fort Talden 1", vec: (1,0,7000) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.01) }
+event: { event: Damage, time: 1, ship: "AAA 1", param: 2e5 }
+event: { event: Damage, time: 1, ship: "AAA 2", param: 2e5 }
+event: { event: Damage, ship: "Fort Talden 2", param: 2300 }
+event: { event: Damage, time: 2, ship: "Fort Talden 2", param: 2300 }
+event: { event: Damage, time: 3, ship: "Fort Talden 2", param: 2300 }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** FORT TALDEN ADVANCED PROJECTS\n*** BOROVA SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+event: { event: Message, time: 5, sound: "Vox/Scenes/03/Briefing_04_sam.ogg" }
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/05-Grand-Concourse.def b/data/content/Campaigns/03/Scenes/05-Grand-Concourse.def
new file mode 100644
index 0000000..b0aa7ed
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/05-Grand-Concourse.def
@@ -0,0 +1,166 @@
+MISSION
+
+name: "Cmpn03 News 05 Grand Concourse"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1166833811.0
+
+subtitles: "Campaigns/03/Actions/05-grand-concourse.txt"
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "Museum"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-8500, -1e3, 0)
+}
+
+element: {
+ name: "Target"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-9000, -1e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (2,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_05_Grand_Concourse.ogg" }
+
+event: { event: Camera, time: 10, param: 3, target: "Museum", vec: (-0.6,0.06,4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Vestapol", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Museum District", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Damage, time: 11, ship: "Target", param: 3000 }
+event: { event: Damage, time: 12, ship: "Target", param: 3000 }
+event: { event: Damage, time: 14, ship: "Target", param: 1500 }
+event: { event: Damage, time: 30, ship: "Target", param: 2500 }
+
+event: { event: EndScene, time: 50, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/06-Eleaan-Diplomats.def b/data/content/Campaigns/03/Scenes/06-Eleaan-Diplomats.def
new file mode 100644
index 0000000..a6aa782
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/06-Eleaan-Diplomats.def
@@ -0,0 +1,101 @@
+MISSION
+
+name: "Cmpn03 News 06 Ele'aan Diplomats"
+type: "Patrol"
+system: "Jarnell"
+system: "Nephrys"
+system: "Borova"
+region: "Borova"
+stardate: 1166770000.0
+
+subtitles: "Campaigns/03/Actions/06-eleaan-diplomats.txt"
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ count: 1
+ iff: 1
+ player: 1
+ rgn: Borova
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Consul
+ design: Transport
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+
+element: {
+ name: "Force:Space HQ"
+ design: Station1
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+ head: 90
+}
+
+
+element: {
+ name: Krill
+ design: ZZF
+ mission: Patrol
+
+ count: 2
+ iff: 4
+ loc: (0,0,0)
+ rgn: Nergal
+ navpt: { cmd: Vector, loc: (0,-100e3,0), rgn: Nergal, speed: 1e3 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,3,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,2,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (2,0,1.3e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.012, 0.025) }
+event: { event: Display, time: 4, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_06_Ele'aan_Diplomats.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,30), target: Consul }
+event: { event: Display, message: "Ele'aan Consular Starship", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Leaving Borova Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Force:Space HQ", vec: (-2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, message: "Force:Space HQ", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Jarnell Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 68, param: 3, target: "body:Nergal", vec: (2, -0.2, 4e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.005) }
+event: { event: Display, message: "Nephrys System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "On the Hegemony Border", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 100, param: (6,22), target: "Krill 1" }
+
+event: { event: EndScene, time: 120, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/07-Athenar.def b/data/content/Campaigns/03/Scenes/07-Athenar.def
new file mode 100644
index 0000000..e3db3cb
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/07-Athenar.def
@@ -0,0 +1,229 @@
+MISSION
+
+name: "Cmpn03 Brief 07 Athenar"
+type: "Patrol"
+system: Janus
+system: Athenar
+region: Pallas
+stardate: 1177880000.0
+
+subtitles: "Campaigns/03/Actions/07-athenar.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// FORCE:SPACE 17TH BATTLE GROUP 'FURIOUS'
+
+element: {
+ name: Furious
+ design: Devastator
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Valiant
+ design: Courageous
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Honorable
+ design: Courageous
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Salas
+ design: Asher
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+// FORCE:SPACE 48TH DESTROYER SQUADRON 'ENIGMA'
+
+element: {
+ name: Enigma
+ design: Spectre
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+element: {
+ name: Gorgon
+ design: Spectre
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (3e3, 1e3, 0)
+ navpt: { cmd: Vector, loc: (4e3, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+
+element: {
+ name: Normandy
+ design: Berents
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (-4e3, -1e3, 0)
+ navpt: { cmd: Vector, loc: (-6e3, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Intruder
+ design: Vendetta
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: Pallas, speed: 600 }
+}
+
+element: {
+ name: "Fourth Sector"
+ design: Tiger
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "Intruder", vec: (1.3, -0.15, 3e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, 0.025) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Hegemony Forces Invade Athenar\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B07-OK.ogg" }
+
+
+event: { event: Camera, time: 20, param: (6,23), target: "Royale" }
+
+
+event: { event: Camera, time: 40, param: (6,12), target: "Furious" }
+
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Force:Space 17th Battle Group 'Furious'" }
+
+event: { event: Camera, time: 50, param: (6,12), target: "Valiant" }
+
+event: { event: Camera, time: 60, param: 3, target: "Enigma", vec: (0.7,0.2,4e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.02) }
+
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Force:Space 48TH DESTROYER SQUADRON 'ENIGMA'" }
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/08-Liberation.def b/data/content/Campaigns/03/Scenes/08-Liberation.def
new file mode 100644
index 0000000..1f141eb
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/08-Liberation.def
@@ -0,0 +1,119 @@
+MISSION
+
+name: "Cmpn03 News 08 Liberation"
+type: "Patrol"
+system: "Jarnell"
+system: "Haiche"
+system: "Silessia"
+system: "Borova"
+region: "Borova"
+stardate: 1166770000.0
+
+subtitles: "Campaigns/03/Actions/08-liberation.txt"
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ count: 1
+ iff: 1
+ player: 1
+ rgn: Borova
+ loc: (-100e3, 0, 0)
+}
+
+
+element: {
+ name: Chronos
+ design: Orion
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+element: {
+ name: Asher
+ design: Asher
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (-3e3, 2e3, 40)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (-3e3,-50e3,40), rgn: Borova, speed: 500 }
+}
+
+
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (220e3, 350e3, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (220e3,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+element: {
+ name: Hauler
+ design: IM4300
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (221e3, 351e3, 30)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (220e3,-50e3,30), rgn: Borova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2, 0, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, time: 2, sound: "Vox/Scenes/03/News_08_Liberation.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,45), target: Chronos }
+
+event: { event: Camera, time: 40, param: (6,50), target: Cargo }
+
+
+event: { event: Camera, time: 85, param: 3, target: "body:Haiche", vec: (5, -0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "Haiche Protectorate", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,300) }
+event: { event: Display, message: "Independent", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,300) }
+
+
+event: { event: Camera, time: 95, param: 3, target: "body:Silessia", vec: (1.5, 0, 2e7) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.01) }
+event: { event: Display, message: "Silessian Confederacy", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,300) }
+event: { event: Display, message: "Independent", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,300) }
+
+
+event: { event: Camera, time: 105, param: 3, target: "body:Jarnell", vec: (1.5, 0, 2.2e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+
+
+event: { event: EndScene, time: 120, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/09-Silessia.def b/data/content/Campaigns/03/Scenes/09-Silessia.def
new file mode 100644
index 0000000..0773c05
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/09-Silessia.def
@@ -0,0 +1,152 @@
+MISSION
+
+name: "Cmpn03 Brief 09 Silessia"
+type: "Patrol"
+system: Silessia
+region: Silessia
+stardate: 1177881122.0
+
+subtitles: "Campaigns/03/Actions/09-silessia.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// SILESSIAN COLONY SHIP 'FAR HORIZON'
+
+element: {
+ name: "Far Horizon"
+ design: Colony
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Silessia
+}
+
+element: {
+ name: Relay
+ design: Relay1
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Prosenar
+}
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Nero
+ loc: (12e3, 15e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (18e3, -70e3, 0), rgn: Nero, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Nero
+ loc: (25e3, 13e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (27e3, -90e3, 0), rgn: Nero, speed: 600 }
+}
+
+
+// CIVILIAN FREIGHT TRAFFIC
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (223e3, 350e3, 0)
+ rgn: Prosenar
+ navpt: { cmd: Vector, loc: (223e3,-50e3,0), rgn: Prosenar, speed: 500 }
+}
+
+
+element: {
+ name: Tanker
+ design: IM1912
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (221e3, 351e3, 60)
+ rgn: Prosenar
+ navpt: { cmd: Vector, loc: (220e3,-50e3,60), rgn: Prosenar, speed: 500 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.3e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Silessian Confederacy\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B09-OK.ogg" }
+
+
+event: { event: Camera, time: 8, param: (6,25), target: "Royale" }
+
+
+event: { event: Camera, time: 22, param: (6,25), target: "Tanker" }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Far Horizon", vec: (1,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.02, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Colony Ship 'Far Horizon'" }
+
+event: { event: Camera, time: 50, param: 3, target: "body:Prosenar", vec: (3, -0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Prosenar Sector" }
+
+
+event: { event: Camera, time: 58, param: 3, target: "Relay", vec: (4, -0.1, 3e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "DataComm Relay 105/AX" }
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/10-Haiche.def b/data/content/Campaigns/03/Scenes/10-Haiche.def
new file mode 100644
index 0000000..c305f2d
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/10-Haiche.def
@@ -0,0 +1,61 @@
+MISSION
+
+name: "Cmpn03 Brief 10 Haiche"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177883344.0
+
+subtitles: "Campaigns/03/Actions/10-haiche.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Haiche Protectorate\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B10-OK.ogg" }
+
+
+
+event: { event: Camera, time: 38, param: 3, target: "body:Cygnus", vec: (1, -0.1, 7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Cygnus Sector" }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Tal Amin", vec: (3, 0.2, 8e7) }
+event: { event: Camera, param: 5, vec: (0.14, -0.02, -0.01) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Tal Amin Sector" }
+
+
+
+event: { event: EndScene, time: 62, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/11-Tantalus.def b/data/content/Campaigns/03/Scenes/11-Tantalus.def
new file mode 100644
index 0000000..1163653
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/11-Tantalus.def
@@ -0,0 +1,241 @@
+MISSION
+
+name: "Cmpn03 Brief 11 Tantalus"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177665544.0
+
+subtitles: "Campaigns/03/Actions/11-tantalus.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+}
+
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (2e3,1e3,100)
+}
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Tantalus Sector\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B11-OK.ogg" }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Broadsword", vec: (2, -0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (0.10, 0.02, -0.015) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tantalus Mining Station", vec: (0,0.005,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Downtown", vec: (1,0.005,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/12-Colony-Ship.def b/data/content/Campaigns/03/Scenes/12-Colony-Ship.def
new file mode 100644
index 0000000..60dd276
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/12-Colony-Ship.def
@@ -0,0 +1,101 @@
+MISSION
+
+name: "Cmpn03 News 12 Colony Ship"
+type: "Patrol"
+system: Silessia
+region: Silessia
+stardate: 1177883355.0
+
+subtitles: "Campaigns/03/Actions/12-colony-ship.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// SILESSIAN COLONY SHIP 'FAR HORIZON'
+
+element: {
+ name: "Far Horizon"
+ design: Colony
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Silessia
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Silessia
+ loc: (34e3, 15e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (38e3, -70e3, 0), rgn: Silessia, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Silessia
+ loc: (37e3, 13e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (43e3, -90e3, 0), rgn: Silessia, speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.3e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Silessian Confederacy" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: Limerick12, color: 0xffffff80,
+ message: "Capitol" }
+
+event: { event: Message, time: 5, sound: "Vox/Scenes/03/News_12_Colony_Ship.ogg" }
+event: { event: Camera, time: 8, param: 3, target: "Far Horizon", vec: (1,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.02, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Colony Ship 'Far Horizon'" }
+
+
+event: { event: Camera, time: 50, param: (6,25), target: "Royale" }
+
+event: { event: Camera, time: 65, param: 3, target: "Far Horizon", vec: (2,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.02,-0.01) }
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/13-Marauder.def b/data/content/Campaigns/03/Scenes/13-Marauder.def
new file mode 100644
index 0000000..7590fd1
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/13-Marauder.def
@@ -0,0 +1,99 @@
+MISSION
+
+name: "Cmpn03 Brief 13 Marauder"
+type: "Patrol"
+system: Silessia
+region: Vesta
+stardate: 1177887766.0
+
+subtitles: "Campaigns/03/Actions/13-marauder.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Devastator
+ design: Devastator
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ loc: (0,0,0)
+ rgn: Nero
+ navpt: { cmd: Vector, loc: (0,-70e3,0), rgn: Nero, speed: 500 }
+}
+
+element: {
+ name: Spectre
+ design: Spectre
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ loc: (3e3,2e3,100)
+ rgn: Nero
+ navpt: { cmd: Vector, loc: (4e3,-70e3,100), rgn: Nero, speed: 500 }
+}
+
+
+element: {
+ name: Cutlass
+ design: Cutlass
+ iff: 3
+ count: 2
+ intel: Secret
+ loc: (0,0,0)
+ rgn: Vesta
+ navpt: { cmd: Vector, loc: (5e3,-100e3, 1e3), rgn: Vesta, speed: 1000 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.02) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Brotherhood of Iron\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B13-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Vesta", vec: (1, -0.15, 6e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.015, 0.015) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Vesta Sector" }
+
+event: { event: Display, time: 20, fade: (1,8,1), rect: (-280,-280, 256,256), color: 0xffffffff,
+ image: "Campaigns/03/Scenes/Marauder.pcx" }
+
+
+event: { event: Camera, time: 35, param: (6,15), target: "Cutlass 1" }
+
+event: { event: Camera, time: 45, param: 3, target: "Devastator", vec: (4,0.005,6e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/Defeat1.def b/data/content/Campaigns/03/Scenes/Defeat1.def
new file mode 100644
index 0000000..6e608b3
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/Defeat1.def
@@ -0,0 +1,100 @@
+MISSION
+
+name: "Cmpn 03 Defeat 01"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1177889900
+
+subtitles: "Campaigns/03/Actions/def1.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Dragon
+ design: Dragon
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (0,0,0)
+ navpt: { cmd: Vector, loc: (0,-100e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ commander: Dragon
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (8e3,2e3,-400)
+ navpt: { cmd: Vector, loc: (9e3,-100e3,-400), speed: 500 }
+}
+
+element: {
+ name: Viper
+ design: Viper
+ commander: Dragon
+ count: 2
+ iff: 0
+ loc: (4e3,6e3,200)
+ navpt: { cmd: Vector, loc: (5e3,-100e3,300), speed: 1000 }
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ loc: (-30e3,-100e3,0)
+ navpt: { cmd: Vector, loc: (-30e3, 100e3,0), speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (3,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,25), target: Dragon }
+
+event: { event: Camera, time: 30, param: (6,15), target: Vendetta }
+
+event: { event: Display, time: 38, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/Defeat2.def b/data/content/Campaigns/03/Scenes/Defeat2.def
new file mode 100644
index 0000000..293762e
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/Defeat2.def
@@ -0,0 +1,74 @@
+MISSION
+
+name: "Cmpn 03 Defeat 02"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177889900
+
+subtitles: "Campaigns/03/Actions/def2.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (0,0,0)
+ navpt: { cmd: Vector, loc: (0,-100e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ commander: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (5e3,0,-300)
+ navpt: { cmd: Vector, loc: (7e3,-100e3,-300), speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (1,0,2e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Stalemate", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,40), target: Vendetta }
+
+event: { event: Display, time: 43, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/M1-Almost-Home.def b/data/content/Campaigns/03/Scenes/M1-Almost-Home.def
new file mode 100644
index 0000000..bb40e29
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/M1-Almost-Home.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 01"
+type: "Patrol"
+system: "Janus"
+region: "Janek"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,60,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: ALMOST HOME\n-----\nPATH: Magellan IV Shipboard | Janek Station Courier Drop | 3RD FLEET HQ | Force Command Transceiver | Lost and Found | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,60,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nI don't know if you made the Academy Reunion or not, sorry I missed catching you there. This has been a bloody awful year. The trade scouting mission did not go as well as I had hoped.\n\nWe were delayed in Nephrys System for two months when the Loris Trade Executive cancelled our return visas. Nephrys is really out on the rim, I thought we'd never get back. As it was, it took weeks to find the right sort of contact to forge a new registration for the Maggie and get us cleared through Korius to try the southern route back home. We had to sneak the long way around - four hops - to avoid the military build-up in Kolchev.\n\nWe jumped out of Haiche only a couple of days ahead of the invasion force. (In case you haven't heard yet, you're under attack mate.) Right lovely dump you got here in Janus. Not a decent bar in sight, and I could really use a drink or ten. We're pretty banged up, but I think we can make Jarnell and maybe sit down at Thralis for repairs.\n\nGood luck, mate. It's getting nasty out there.\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_01_Almost_Home.ogg"
+}
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/M2-Back-to-Borova.def b/data/content/Campaigns/03/Scenes/M2-Back-to-Borova.def
new file mode 100644
index 0000000..08df240
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/M2-Back-to-Borova.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: BACK TO BOROVA\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 4TH FLEET HQ | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nI still can't quite bring myself to believe that we are at war with the Hegemony. The Consulate is leaving on a 'Fact Finding' mission to Borova, and I'll be going along to support the diplomatic corps. We should be in system within thirty hours or less, although it doesn't really feel like 'going home.'\n\nIsn't your unit patrolling the outer sectors? I think this may be the first time we've been in the same system at the same time since university. Strange that it should be under such circumstances.\n\nThe Ele'aan Ambassador still thinks the Zolon Empire is behind the Marakan invasion. Although, I still don't see how that is even possible. Zolons can barely communicate with humans. I know the Ele'aans have access to information way beyond our capabilities, but Zolon involvement just seems so... unlikely.\n\nAnyway, I don't know if I'll get any free time while we are in-system. If I do, I'll try to make it over to Vestapol and see your parents. I'd love to see the museums on the Grand Concourse. Come to think of it, I haven't been shopping in Vestapol in ages. But that would be too much to hope for, I suppose.\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_02_Back_to_Borova.ogg"
+}
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/M3-Down-for-Repairs.def b/data/content/Campaigns/03/Scenes/M3-Down-for-Repairs.def
new file mode 100644
index 0000000..ff90e69
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/M3-Down-for-Repairs.def
@@ -0,0 +1,48 @@
+MISSION
+
+name: "Cmpn 03 Mail 03"
+type: "Patrol"
+system: Thralis
+region: Thrale
+
+element: {
+ name: "Magellan IV"
+ design: IM2800
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Hold, param: 90, event_ship: "Magellan IV" }
+event: { event: Camera, time: 0, param: (6, 90), target: "Magellan IV" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,90,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,90,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: DOWN FOR REPAIRS\n-----\nPATH: Magellan IV Shipboard | Organon Motives | Thralis Relay | Force Command Transceiver | 4TH FLEET HQ | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,90,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nWell, Maggie is in the shop. We made it into Thralis just in time to lose the quantum drive. We're sitting in the Organon Motives repair yard waiting on parts for a drive overhaul while I try to call in every favor I have left in the system. I'm just about ready to steal the whole drive system from the next Force Cruiser that passes by just so that we can get back underway.\n\nAt least I've had a chance to get caught up on the local nets. This war of yours is big news out here mate, and Thralis isn't exactly on the front lines. The Thracian Titans even canceled their season ending match against Sparta in honor of the lost crew of the CV-72. Really though, I think Thrace just needed an excuse to avoid the match. Hollis is the worst manager they've had in a decade. Anyway, I was glad to see your name wasn't on the missing in action list.\n\nHey, did you see the news interview with Sara the first night of the fighting in Vestapol? Strange coincidence that she would happen to be on the ground just when a squad of Hegemony goons shows up to knock over the museum. Glad she's all right. Good thing that guardian angel of hers was working over time.\n\nStay sharp out there. I don't think anyone is looking out for your welfare except you!\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_03_Down_for_Repairs.ogg"
+}
+
+
+event: { event: EndScene, time: 83, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Scenes/Victory1.def b/data/content/Campaigns/03/Scenes/Victory1.def
new file mode 100644
index 0000000..69a28c6
--- /dev/null
+++ b/data/content/Campaigns/03/Scenes/Victory1.def
@@ -0,0 +1,93 @@
+MISSION
+
+name: "Cmpn 03 Victory"
+type: "Patrol"
+system: "Silessia"
+region: "Silessia"
+stardate: 1177889900
+
+subtitles: "Campaigns/03/Actions/victory.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-125e3, 155e3, 0)
+ navpt: { cmd: Vector, loc: (-125e3,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-154e3, 174e3, 0)
+ navpt: { cmd: Vector, loc: (-154,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (1,0,2e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Archon }
+
+event: { event: Display, time: 38, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/03/Templates/FS_Defend_Titan.def b/data/content/Campaigns/03/Templates/FS_Defend_Titan.def
new file mode 100644
index 0000000..60f9f94
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/FS_Defend_Titan.def
@@ -0,0 +1,236 @@
+MISSION_TEMPLATE
+
+name: "Fleet Defense"
+type: DEFEND
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Cobra1, iff: 2 }
+callsign: { name: Cobra2, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 25e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 150e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+element: {
+ name: Cobra1,
+ design: Cobra,
+ rloc: { ref: "Player:1", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+element: {
+ name: Cobra2,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+
+optional: {
+ min: 4,
+ max: 8,
+
+ element: {
+ name: DB1,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: DB2,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV1,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T1,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV1 },
+ },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV2,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T2,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV2 },
+ },
+ },
+
+ element: {
+ name: DB3,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+
+ element: {
+ name: DB4,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+}
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_ship: Player,
+ event_source: A1,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "vox.misc.a02-01",
+
+ trigger: Time,
+ time: 38,
+}
+
+event: {
+ id: 2,
+ event: Damage,
+ event_ship: Defender,
+ event_param: 40e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 35,
+}
+
+event: {
+ id: 3,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 67,
+}
+
+event: {
+ id: 4,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 112,
+}
+
+event: {
+ id: 5,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 138,
+} \ No newline at end of file
diff --git a/data/content/Campaigns/03/Templates/FS_Patrol_01.def b/data/content/Campaigns/03/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..82fdc6b
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 5,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/03/Templates/FS_Patrol_02.def b/data/content/Campaigns/03/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..8850c14
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/FS_Patrol_02.def
@@ -0,0 +1,118 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+ element: {
+ name: Alpha,
+ design: Razor,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ }
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ }
+
+ optional: { min: 1, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+ }
diff --git a/data/content/Campaigns/03/Templates/FS_Patrol_03.def b/data/content/Campaigns/03/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..1e50ac7
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/FS_Patrol_03.def
@@ -0,0 +1,125 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 75e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:3", dex: 50e3, dex_var: 15e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/03/Templates/IS_Defend_Titan.def b/data/content/Campaigns/03/Templates/IS_Defend_Titan.def
new file mode 100644
index 0000000..40d4ee6
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/IS_Defend_Titan.def
@@ -0,0 +1,225 @@
+MISSION_TEMPLATE
+
+name: "Fleet Defense"
+type: DEFEND
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Cobra1, iff: 2 }
+callsign: { name: Cobra2, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 25e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 150e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+element: {
+ name: Cobra1,
+ design: Cobra,
+ rloc: { ref: "Player:1", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+element: {
+ name: Cobra2,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+
+optional: {
+ min: 4,
+ max: 8,
+
+ element: {
+ name: DB1,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: DB2,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV1,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T1,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV1 },
+ },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV2,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T2,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV2 },
+ },
+ },
+
+ element: {
+ name: DB3,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+
+ element: {
+ name: DB4,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+}
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_ship: Player,
+ event_source: A1,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "vox.misc.a02-01",
+
+ trigger: Time,
+ time: 38,
+}
+
+event: {
+ id: 3,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 82,
+}
+
+event: {
+ id: 4,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 148,
+}
+
+event: {
+ id: 5,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 186,
+}
diff --git a/data/content/Campaigns/03/Templates/IS_Patrol_01.def b/data/content/Campaigns/03/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..0b78ab7
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 1,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cobra,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/03/Templates/IS_Patrol_02.def b/data/content/Campaigns/03/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..2a5e412
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/IS_Patrol_02.def
@@ -0,0 +1,130 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 22e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/content/Campaigns/03/Templates/IS_Patrol_03.def b/data/content/Campaigns/03/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..ef1bb9b
--- /dev/null
+++ b/data/content/Campaigns/03/Templates/IS_Patrol_03.def
@@ -0,0 +1,109 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 65e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:1", dex: 50e3, dex_var: 25e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/content/Campaigns/03/campaign.def b/data/content/Campaigns/03/campaign.def
new file mode 100644
index 0000000..0966a78
--- /dev/null
+++ b/data/content/Campaigns/03/campaign.def
@@ -0,0 +1,773 @@
+CAMPAIGN
+
+name: "c03.name"
+desc: "c03.desc"
+situation: "c03.sitrep"
+orders: "c03.orders"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 4 },
+ group: { type: fleet, id: 5 },
+ group: { type: battalion, id: 5 },
+ group: { type: civilian, id: 2100 },
+ group: { type: freight, id: 3000 },
+ group: { type: infrastructure, id: 5000 },
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 6 },
+ group: { type: fleet, id: 7 },
+ group: { type: battalion, id: 8 },
+ group: { type: war_production, id: 3000 },
+}
+
+combatant: {
+ name: "Brotherhood of Iron",
+ group: { type: fleet, id: 2 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Borova,
+ text: "c03.a000",
+ source: News,
+ file: "Actions/01-campaign-start.txt"
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-Campaign-Start.def"
+}
+
+action: {
+ id: 1,
+ type: system,
+ team: 2,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display"
+}
+
+action: {
+ id: 2,
+ type: system,
+ team: 2,
+ sys: Janus,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display"
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 1,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 4,
+ text: "do-not-display"
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 1,
+ sys: Janus,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display"
+}
+
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Navara,
+ after: "01/04:00:00",
+ text: "c03.a020",
+ source: Mail,
+ file: "Actions/m1-almost-home.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-Almost-Home.def"
+}
+
+action: {
+ id: 30,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "01/12:00:00",
+ text: "c03.a030",
+ source: News,
+ file: "Actions/02-president-speech.txt"
+ image: "Actions/Alliance.pcx"
+ scene: "Scenes/02-President-Speech.def"
+}
+
+action: {
+ id: 100,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "02/07:30:00",
+ text: "c03.a100",
+ source: Mail,
+ file: "Actions/m2-back-to-borova.txt",
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-Back-to-Borova.def"
+}
+
+action: {
+ id: 120,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 7,
+ region: Borova,
+ image: "Actions/02-borova.pcx",
+ after: "02/21:30:00",
+}
+
+
+// LOSE BOROVA
+
+action: {
+ id: 200,
+ type: mission,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ asset_type: intercept_squadron,
+ asset_id: 93,
+ count: 1,
+
+ text: "Templates/IS_Defend_Titan.def",
+
+ after: "03/08:00:00",
+ before: "03/19:59:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 3000 },
+}
+
+action: {
+ id: 210,
+ type: mission,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ asset_type: fighter_squadron,
+ asset_id: 33,
+ count: 1,
+
+ text: "Templates/FS_Defend_Titan.def",
+
+ after: "03/08:00:00",
+ before: "03/19:59:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 3000 },
+}
+
+action: {
+ id: 250,
+ type: event,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ after: "03/20:00:00",
+ text: "c03.a250",
+ source: TACNET,
+ file: "Actions/03-titan-destroyed.txt"
+ image: "Actions/03-titan-destroyed.pcx"
+ scene: "Scenes/03-Titan-Destroyed.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 2000 },
+
+ asset_type: carrier_group,
+ asset_id: 7,
+ asset_iff: 1,
+ asset_kill: "Titan",
+}
+
+action: {
+ id: 290,
+ type: intel,
+ subtype: reserve,
+ sys: Jarnell,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 7,
+ after: "03/20:00:00",
+}
+
+action: {
+ id: 291,
+ type: intel,
+ subtype: known,
+ sys: Jarnell,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 12,
+ after: "03/20:00:00",
+}
+
+action: {
+ id: 300,
+ type: system,
+ team: 1,
+ sys: Jarnell,
+ asset_type: fleet,
+ asset_id: 4,
+ after: "03/20:00:00",
+ image: "Actions/03-jarnell.pcx",
+}
+
+action: {
+ id: 310,
+ type: sitrep,
+ team: 1,
+ text: "c03.a310",
+
+ req: { action: 300, status: COMPLETE }
+}
+
+
+// STORY ELEMENTS OF HEGEMONY INVASION
+
+action: {
+ id: 320,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/02:30:00",
+ text: "c03.a320",
+ source: SECURE,
+ file: "Actions/04-fort-talden.txt",
+ image: "Actions/04-fort-talden.pcx",
+}
+
+action: {
+ id: 330,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/09:30:00",
+ text: "c03.a330",
+ source: News,
+ file: "Actions/05-grand-concourse.txt"
+ image: "Actions/05-grand-concourse.pcx"
+ scene: "Scenes/05-Grand-Concourse.def"
+}
+
+action: {
+ id: 340,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/15:00:00",
+ text: "c03.a340",
+ source: News,
+ file: "Actions/06-eleaan-diplomats.txt"
+ image: "Actions/06-eleaan-diplomats.pcx"
+ scene: "Scenes/06-Eleaan-Diplomats.def"
+}
+
+
+action: {
+ id: 350,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Athenar,
+ after: "04/18:35:00",
+ text: "c03.a350",
+ source: FORCOM,
+ file: "Actions/07-athenar.txt"
+ image: "Actions/07-athenar.pcx"
+ scene: "Scenes/07-Athenar.def"
+}
+
+action: {
+ id: 351,
+ type: system,
+ team: 2,
+ sys: Athenar,
+ asset_type: battle_group,
+ asset_id: 17,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 352,
+ type: system,
+ team: 1,
+ sys: Athenar,
+ asset_type: battle_group,
+ asset_id: 17,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 353,
+ type: system,
+ team: 1,
+ sys: Athenar,
+ asset_type: destroyer_squadron,
+ asset_id: 48,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 360,
+ type: sitrep,
+ team: 1,
+ text: "c03.a360",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+// RETURN TO BOROVA
+
+action: {
+ id: 400,
+ type: system,
+ team: 1,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 4,
+ after: "05/01:00:00",
+}
+
+action: {
+ id: 410,
+ type: sitrep,
+ team: 1,
+ text: "c03.a410",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+
+action: {
+ id: 450,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "05/22:17:00",
+ text: "c03.a450",
+ source: Mail,
+ file: "Actions/m3-down-for-repairs.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M3-Down-for-Repairs.def"
+}
+
+// ON TO HAICHE AND SILESSIA
+
+action: {
+ id: 590,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Athenar,
+ after: "08/08:30:00",
+ text: "c03.a590",
+ source: News,
+ file: "Actions/08-liberation.txt"
+ image: "Actions/banner-alliance.pcx"
+ scene: "Scenes/08-Liberation.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RGT, score: 1000 }
+}
+
+action: {
+ id: 600,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "08/08:35:00",
+ text: "c03.a600",
+ source: FORCOM,
+ file: "Actions/09-silessia.txt",
+ image: "Actions/09-silessia.pcx",
+
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 601,
+ type: system,
+ team: 2,
+ sys: Silessia,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 602,
+ type: system,
+ team: 1,
+ sys: Silessia,
+ asset_type: fleet,
+ asset_id: 4,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 610,
+ type: sitrep,
+ team: 1,
+ text: "c03.a610",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 700,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Haiche,
+ after: "08/12:15:00",
+ text: "c03.a700",
+ source: FORCOM,
+ file: "Actions/10-haiche.txt",
+ image: "Actions/10-haiche.pcx",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 701,
+ type: system,
+ team: 2,
+ sys: Haiche,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 702,
+ type: zone,
+ team: 1,
+ region: Kala,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 710,
+ type: sitrep,
+ team: 1,
+ text: "c03.a710",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 750,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Haiche,
+ after: "09/08:30:00",
+ text: "c03.a750",
+ source: FORCOM,
+ file: "Actions/11-tantalus.txt"
+ image: "Actions/11-Tantalus.pcx"
+ scene: "Scenes/11-Tantalus.def"
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 751,
+ type: system,
+ team: 1,
+ sys: Haiche,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 750, status: COMPLETE }
+}
+
+action: {
+ id: 770,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "09/22:00:00",
+ text: "c03.a770",
+ source: News,
+ file: "Actions/12-colony-ship.txt"
+ image: "Actions/12-Colony-Ship.pcx"
+ scene: "Scenes/12-Colony-Ship.def"
+
+ req: { action: 750, status: COMPLETE }
+}
+
+action: {
+ id: 830,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "10/05:30:00",
+ text: "c03.a830",
+ source: FORCOM,
+ file: "Actions/13-marauder.txt"
+ image: "Actions/13-Marauder.pcx"
+ scene: "Scenes/13-Marauder.def"
+
+ req: { action: 770, status: COMPLETE }
+}
+
+action: {
+ id: 831,
+ type: intel,
+ subtype: known,
+ sys: Silessia,
+ team: 3,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 830, status: COMPLETE }
+}
+
+action: {
+ id: 832,
+ type: system,
+ sys: Silessia,
+ team: 3,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+action: {
+ id: 860,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Vesta,
+ asset_type: intercept_squadron,
+ asset_id: 133,
+ count: 3,
+
+ text: "Scripts/IS_Patrol_Iron.def",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+action: {
+ id: 861,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Vesta,
+ asset_type: fighter_squadron,
+ asset_id: 53,
+ count: 3,
+
+ text: "Scripts/FS_Patrol_Iron.def",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+
+// THE THRILL OF VICTORY
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.victory",
+ file: "Actions/victory.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory1.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 6, comp: LT, score: 7000 },
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 7, comp: LT, score: 7000 },
+}
+
+
+// THE AGONY OF DEFEAT
+
+action: {
+ id: 993,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat1.def"
+ after: "11/12:00:00",
+
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2500 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+ before: "03/08:00:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 12, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 4, comp: LT, score: 9000 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 8, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+// defeat after saving the alliance systems
+
+action: {
+ id: 984,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2500 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 986,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 12, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 987,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 4, comp: LT, score: 9000 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 988,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c03.defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 8, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE }
+}
diff --git a/data/content/Campaigns/04/Actions/01-campaign-start.txt b/data/content/Campaigns/04/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..86809ff
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/01-campaign-start.txt
@@ -0,0 +1,7 @@
+JARNELL - The ink is barely dry on the cease-fire order that brought a halt to Operation Shining Fortress but Alliance Force starships are once again being sent into harm's way. The Sixth Fleet left Force Yards in Jarnell several days ago, and after proceeding along the southern route through recently-liberated Haiche, has begun operations in the Hegemony border system of Ostara. (See diagram at right)
+
+Force officials have so far downplayed the importance of this fleet engagement. "Shortly before the war began, long range scouts detected a secret Hegemony base in the Ostara system, near the planet Aram. In the interest of establishing a safe buffer zone for the Haiche Protectorate, we are taking this opportunity to encourage those forces to return to the core Hegemony worlds," Force:Space Fleet Commander A. Evars was quoted as saying.
+
+Independent military analysts at the prestigious Wiggen Institute think-tank have observed that another Alliance fleet is also being prepared in the Paragon system. "Having two additional expeditionary fleets in operation right now strongly suggests that Force is preparing for a wider conflict in the near future," said Chu Vo of the institute.
+
+Force:Command joint chiefs declined to comment on speculations that a major offensive was being planned against the middle Hegemony systems. "I have no information on that subject that I can share with you at the present time," said Evars. \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/02-borovan-archaelith.txt b/data/content/Campaigns/04/Actions/02-borovan-archaelith.txt
new file mode 100644
index 0000000..3a7f787
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/02-borovan-archaelith.txt
@@ -0,0 +1,11 @@
+VESTAPOL, BOROVA - Museum of Precolonial Antiquities
+
+Sifting through the debris and damage left behind by the Hegemony attack has been an arduous process for museum curator Josef Severn. Large portions of the museum complex were leveled by plasma weapons used during the fighting, and advanced scientific intrustments have been needed to sort out fragments of ancient artifacts from the scattered pieces of the walls and display cases that once housed them. After weeks of painstaking work, most of the museum's collection of antiquities have been identified. However, the Borovan Archaelith remains among the missing.
+
+The Museum of Precolonial Antiquities was established sixty years ago by the Borovan Government to preserve and research xeno-archaelogical discoveries on the Baradan Peninsula. The Museum specializes in the ancient artifacts of the unknown "Precursor" civilization that inhabited the Blue Drift Region some eight million years ago. Little is known about the Precursor species, and only a few of their technological works have survived the eight thousand millenia since their demise.
+
+The Borovan Archaelith is the oldest and most complete artifact in the museum collection. The object is a perfect black crystal, almost half a meter in length. To the naked eye, the Archaelith appears to be a smooth hexagonal prism. However, deep sonic imaging has revealed a surprisingly complex inner structure of facets and fissures of unknown purpose.
+
+When the museum clean-up process began to recover fragments of the other Precursor artifacts, there was initial hope that the Archaelith might be recovered intact. The ancient crystal had been removed from public display and taken to a scanning laboratory in a separate part of the museum only hours before the attack began. The scanning facility was heavily sheltered to prevent ambient radiation from interfering with the sensitive tests, and this served to protect the laboratory from the worst damage of the heavy plasma weapons.
+
+However, it now appears that some Hegemony ground forces may have entered the laboratory wing of the museum during the battle. Much of the equipment in the area was destroyed by small arms fire, and several rooms were forcibly entered. The Hegemony has officially denied removing any of the ancient artifacts from the museum or laboratories. But today, weeks after the fighting has ended, the location of the Borovan Archaelith remains a mystery. \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/03-technite-found.txt b/data/content/Campaigns/04/Actions/03-technite-found.txt
new file mode 100644
index 0000000..f397d75
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/03-technite-found.txt
@@ -0,0 +1,19 @@
+*************************************
+*** FLASH CODED +$TIME
+*** TECHNITE FOUND ON HAICHE
+*** TANTALUS SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Traces of Technite Discovered on Tantalus Mining Station
+
+Force:Intel field agents involved in clean-up and security operations at Tantalus Mining Station on Haiche have reported detecting traces of Technite in unprocessed ores stockpiled at the refinery. Technite does not occur naturally on Haiche, or any other known planet in the periphery. Neither the Alliance nor the Hegemony have found a way to synthesize it. The only known sources of the material are archaic; trace deposits were found on Borova on the Baradan Peninsula near the Precursor discoveries.
+
+Further analysis of the ore and the recovered mining equipment from Tantalus Station suggests that the site contained only small amounts of rare earth metals of any value. It seems unlikely that the Hegemony would risk an illegal mining operation to recover such small amounts of tantalum and iridium. It appears that Tantalus Mining Station was specifically tasked with recovering technite from Haiche. It is presently impossible to determine how much technite was extracted, refined, and shipped off planet prior to Force capture of the planet.
+
+Force:Intel does not have an analysis of possible Hegemony motives at this time. Technite is considered a laboratory curiousity and has no known practical applications. Borovan technite deposits were of such small quantities that our best materials science expert have not yet fully classified all of its physical properties.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/04/Actions/04-zolon-ambassador.txt b/data/content/Campaigns/04/Actions/04-zolon-ambassador.txt
new file mode 100644
index 0000000..fa8b970
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/04-zolon-ambassador.txt
@@ -0,0 +1,17 @@
+STRATPLAN BRIEFING
+Timestamp: 02/06:00:00
+Subject: Zolon Ambassador
+Classified: SECRET R2 NTK
+
+The Zolon Ambassador to Tarsus has offered to broker peace negotiations between the Terellian Alliance and the Marakan Hegemony. The Zolons have invited representatives from both sides to meet aboard their Consular Starship in Tarsus orbit to discuss plans to de-escalate the current conflict.
+
+Militarily, this seems an unlikely plan. It is doubtful that the Hegemony is ready to make serious concessions at this time as they probably see the outcome of the war to be too hard to predict. They are still very much in this fight, and they have not yet lost any real territory to our advance.
+
+Politically however, this is not an opportunity that we can simply ignore. A diplomatic team has been dispatched from Haiche to rendezvous with Sixth Fleet. The fleet will then translate to the Tarsus system to rendezvous with the Zolon Consular Starship.
+
+Realistically, we knew we would have to invade Tarsus in force sooner or later. This development simply advances the time table and gives us an opportunity to enter the system relatively unopposed.
+
+Note that we are now operating under a flag of truce until the negotiations have concluded. Rules of Engagement: Do not fire unless you are fired upon. Stay alert. There will be plenty of Hegemony warships in the area. Anything could happen if we are not careful.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/04/Actions/05-operation-firestorm.txt b/data/content/Campaigns/04/Actions/05-operation-firestorm.txt
new file mode 100644
index 0000000..5c4bd8e
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/05-operation-firestorm.txt
@@ -0,0 +1,11 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, once again the dark shadow of a violent foe has darkened our hope for lasting interstellar peace. Even as an Alliance diplomatic team was at work in the Tarsus system negotiating a peace treaty to end the ongoing conflict with the Hegemony, a surprise enemy attack has devestated the peace process and thrown us all even further into chaos and war. Zolon warships acting in concert with Hegemony agents have attacked the peace conference, killing our negotiating team even at the expense of destroying every member of the Zolon Consulate in Tarsus.
+
+Even more disturbing, we have confirmed reports from Force:Intelligence, combined with information provided by the Ele'aan Ambassador that lead us to only one conclusion. The recent Hegemony attacks on Alliance territory were carried out with the specific intention of recovering ancient artifacts and rare materials for use in developing a devestating new type of weapon. The Ele'aan Ambassador has informed us that the Hegemony military are working with scientists of the Zolon Empire to use the Borovan Archaelith to process Technite to create a "Quantum Disruptor" that will destroy computer systems and render even our strongest warships incapable of faster-than-light travel.
+
+Within the past hour, this office has received the official declaration of war by the combined systems of the Marakan Hegemony. Our response is simple. Though now as ever we have no interest in conquest, we shall meet every enemy with strength, every treason with vengeance, every attack with justice.
+
+And so, however reluctantly, I hereby order Force to commence OPERATION FIRESTORM: all out war with the Marakan Hegemony. Once more we shall take up arms against agression. Once more, our brave men and women shall pass through the gauntlet of hardship and danger to emerge victorious and proud. Once more unto the breach, for honor, for courage, and enduring freedom.
+
+Thank you, and good evening. \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/06-strategy.txt b/data/content/Campaigns/04/Actions/06-strategy.txt
new file mode 100644
index 0000000..9acb718
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/06-strategy.txt
@@ -0,0 +1,15 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Operation Firestorm
+Classified: SECRET R3 NTK
+
+Our strategic plan for Operation Firestorm is to employ the Sixth and Seventh Fleets as two arms in a giant pincer maneuver. The Sixth Fleet is currently deployed in the southern systems. By proceding from Haiche to Ostara to Tarsus, we have effectively flanked the heavier concentration of Hegemony firepower in the Kolchev system. The Seventh Fleet is already in Silessia on its way to the Loris system in the north. Once Loris is secure, the Seventh Fleet will proceed south to Korius and Adantar. Additional Fleets will then become available to backfill and secure the territory we have won.
+
+For those of you in the Sixth Fleet, we expect Tarsus to be an easy victory. The system is isolated and not well defended. However, the Kolchev system will be no pushover. There is a major Hegemony starbase in the northern mountains of Lovo Sector on Kolchev, and we expect their star fleet to fall back and regroup in that system as soon as we begin to gain the upper hand in Tarsus.
+
+Finally, it looks like we will have to watch out for Zolon involvement after all. Zolon fighters and cruisers played a key role in eliminating the peace conference and escalating the war. Unfortunately, we have very little information on their capabilities. Reports from officers who engaged them in the Tarsus system suggest that their ships are very tough and have weapons at least the equal of our own. They also seem to have developed some new type of faster than light drive. We assume that is operates on a principle entirely different than our own quantum drives. Even their smallest fighters have independent FTL capability, so they can both run and fight.
+
+Well, we have a job to do. Stay sharp out there.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/04/Actions/07-Loris-Collapse.txt b/data/content/Campaigns/04/Actions/07-Loris-Collapse.txt
new file mode 100644
index 0000000..0e05f49
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/07-Loris-Collapse.txt
@@ -0,0 +1,19 @@
+*************************************
+*** FLASH CODED +$TIME
+*** LORIS GOVERNMENT COLLAPSE
+*** LORIS SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The Government of the Loris System has Collapsed.
+
+Force:Intel field agents report that the system is in a state of near-anarchy. Hegemony military losses sustained during Operation Shining Fortress have eroded popular support for the government. New demands to defend the system for Operation Firestorm have strained resources to the breaking point.
+
+The Brotherhood of Iron criminal organization saw this an opportunity to attack. The Loris Trade Secretary was assassinated and replaced, and trade enforcement was weakened as a result. Brotherhood Marauders and Raiders began preying on traffic in the outer sectors. Now, fighting has erupted throughout the entire Loris System. The government has collapsed, and Hegemony military units are attempting to control the political situation and deal with the pirates at the same time.
+
+It is unfortunate that we cannot wait for this local conflict to burn itself out before we invade the Loris system. Unfortunately, Force Seventh Fleet needs to get to the Korius system to complete the pincer strategy or the Sixth Fleet will be trapped in hostile territory. Taking control of the Loris system is quickest way to achieve that goal. And that means that both the pirates and the Hegemony warships are legal targets.
+
+---
+Jonas Devlin, Force:Intel Third Directorate
+
+*************************************
diff --git a/data/content/Campaigns/04/Actions/08-masil-gannet.txt b/data/content/Campaigns/04/Actions/08-masil-gannet.txt
new file mode 100644
index 0000000..66c7016
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/08-masil-gannet.txt
@@ -0,0 +1,7 @@
+TANIS FIELD COMMAND CENTER, ADANTAR -
+
+The Tanis Field Command Center is very well secured. Only true Dantari are ever allowed within the secret location, and only those of the inmost circle are permitted any knowledge of its location on Adantar. Rare visitors from the outside are brought to and from the command center in a state of suspended animation, and are rigorously checked for hidden recording devices and location transponders. Automatic weapons are kept trained on visitors at all times.
+
+Such is the atmosphere that surrounds the Warlord Masil Gannet. The former Solusan Senator returned to the world of his ancestors following a failed political movement to ally Solus with nearby Renser Prefecture. When he arrived here, he found the Ulset Nar political organization, originally founded by his grandfather, in a state of disarray. Gannet quickly used his wealth and political connections among ultra conservative Dantari to reform the group and setup a new base of operations in the Tanis Sector.
+
+Under Gannet's leadership, the Ulset Nar group became focused - one might even say obsessed - with establishing the supremacy of true ethnic Dantari throughout the Korius system. Although the group claims to be interested only in peaceful leadership of those willing to follow, the massive store of weapons in their desert fortress may give a deeper sense of their true aims.
diff --git a/data/content/Campaigns/04/Actions/09-kolchev.txt b/data/content/Campaigns/04/Actions/09-kolchev.txt
new file mode 100644
index 0000000..eaa9b98
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/09-kolchev.txt
@@ -0,0 +1,15 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Kolchev System
+Classified: SECRET R3 NTK
+
+As expected, the Hegemony Third Fleet has fallen back to the Kolchev system. Once it became clear that they could not contest our control of Tarsus, they elected to abandon that system in hopes that we could be drawn into a trap by attacking them where they are well defended. Of course, being aware of the trap is our first step in evading it.
+
+The Kolchev system will present some unique challenges for Force Sixth Fleet. Hegemony forces are scattered across four planetary orbits. The capital Kolchev is the only planet capable of sustaining a human population. The northern mountains of the Lovo sector on Kolchev are home to a significant military presence.
+
+Taking control of the Kolchev system will require us to choose our battles. Always engage the enemy where we can muster a local tactical advantage, and be prepared to withdraw to protect your ships if necessary. Remember that the Hegemony forces have the advantage of local supplies, while we are stretched across half the Blue Drift region.
+
+Good luck.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/04/Actions/10-korius.txt b/data/content/Campaigns/04/Actions/10-korius.txt
new file mode 100644
index 0000000..632758b
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/10-korius.txt
@@ -0,0 +1,11 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Korius System
+Classified: SECRET R3 NTK
+
+As you know, the Korian System consists of two major planets surrounded by a sparse outer asteroid belt. The outer planet, Rhomin, is a medium gas giant with several large moons. Two of these moons sustain human populations. The larger inhabited moon is Korius, the system capital. The smaller moon is Adantar, a cold desert with a thin atmosphere.
+
+Adantar is the homeworld of the ethnic Dantari who started the Solusan conflict. In fact, there are reliable reports that the Separatist leader Masil Gannet has returned to Adantar and established himself as a local warlord. Although Adantar itself is heavily armed, we do not have any good data on the strength of space forces in the Korian system. It does not seem likely that Masil Gannet would be able to construct a new navy in the short period of time he has been in this system. At the same time, we should not underestimate his financial reserves. With that kind of personal wealth comes power and the political connections to achieve many ends.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/04/Actions/def1.txt b/data/content/Campaigns/04/Actions/def1.txt
new file mode 100644
index 0000000..9fe115c
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Firestorm has collapsed. The Hegemony Third Fleet has gained a tactical advantage over the Force:Space Expeditionary Force in the southern systems.
+
+The Alliance has sustained devastating losses in these attacks and has been forced to withdraw. The Sixth Fleet is attempting to fall back to safe positions within Alliance controlled space. Reinforcements are being called up from the home systems. With luck, they will arrive in time to hold off the Hegemony counter invasion and force a settlement. \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/def2.txt b/data/content/Campaigns/04/Actions/def2.txt
new file mode 100644
index 0000000..efaabeb
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/def2.txt
@@ -0,0 +1,9 @@
+Operation Highland has failed in its mission to secure the peace. Alliance losses
+in the Renser system have been severe, including the loss of the Fleet Carrier
+Battle Group Archon. The CEO, with the approval of the Combined Senate, has
+ordered the immediate withdrawal of all remaining Force:Space units from the
+Prefecture of Renser.
+
+At least one additional Hegemony fleet is being mobilized from the Korius System.
+We can only hope that this failure does not result in the unilateral escalation on
+the part of Hegemony forces... \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/m1-new-job.txt b/data/content/Campaigns/04/Actions/m1-new-job.txt
new file mode 100644
index 0000000..8426c66
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/m1-new-job.txt
@@ -0,0 +1,17 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Jonas Devlin, Force:Intel Third Directorate
+RE: NEW JOB
+-----
+PATH: FI3D HQ | Thralis Relay | Force Command Transceiver | 6TH FLEET HQ | $GROUP
+-----
+
+Hey Mate,
+
+Well, it looks like my trade scouting days are officially over. This may come as some surprise, but I've been working as a Force:Intel field agent for the past two years. I got recruited at a traders conference here in Thralis. Anyway, after that series of scrapes I went through trying to get out of the Nephrys system, my boss decided he wanted to keep me where he could see that I was in one piece. So he kicked me upstairs and made me an Analyst in Third Directorate. Now I just get to read the kinds of reports I used to submit.
+
+I guess I'm not that surprised to hear the Zolons have gotten actively involved in the fight. The Nephrys system was crawling with them when I was out there. It seems to be their main hangout in Hegemony space. Still, something seems really off about the "phony peace treaty" ruse. I can't put my finger on it, but something doesn't add up.
+
+Good luck, mate. Watch your back out there.
+
+--Jonas
diff --git a/data/content/Campaigns/04/Actions/m2-need-to-know.txt b/data/content/Campaigns/04/Actions/m2-need-to-know.txt
new file mode 100644
index 0000000..8f39cd0
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/m2-need-to-know.txt
@@ -0,0 +1,18 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: SOMETHING YOU NEED TO KNOW
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 6TH FLEET HQ | $GROUP
+-----
+
+Hello $NAME,
+
+Councilor Auris just left here to return home to Ele'aan space. The Consulate Center feels really strange with no ambassador here. He said it was just a routine trip, but I have a feeling he isn't planning on coming back. Now that he has convinced the President that the Zolons are behind this whole war, I think he feels like his job is done here.
+
+But there's more - something else you need to know. I'm afraid to discuss it on an open channel like this; I don't know who else might have access to the fleet mail feed. I think it might be really important, I don't know. I wish I could see you face to face. I'm afraid to just sit on this information, and I don't know who else I can trust.
+
+I just need someone to tell me that we are all doing the right thing...
+
+Love from
+Sara \ No newline at end of file
diff --git a/data/content/Campaigns/04/Actions/victory.txt b/data/content/Campaigns/04/Actions/victory.txt
new file mode 100644
index 0000000..08e1421
--- /dev/null
+++ b/data/content/Campaigns/04/Actions/victory.txt
@@ -0,0 +1,5 @@
+The Hegemony systems Kolchev and Korius have agreed to an unconditional cease fire.
+
+Force:Ground Special Ops have captured Masil Gannet's headquarters in the Tanis sector on Adantar, and recovered Gannet's body. It is believed that he was assassinated by his own forces just prior to the final raid.
+
+Force:Intel field agents have begun searching both planets for evidence of either technite processing or the stolen Borovan artifact. Now that we have military control of these systems, it is only a matter of time before this evidence is found. \ No newline at end of file
diff --git a/data/content/Campaigns/04/Scenes/01-Campaign-Start.def b/data/content/Campaigns/04/Scenes/01-Campaign-Start.def
new file mode 100644
index 0000000..614f30d
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/01-Campaign-Start.def
@@ -0,0 +1,200 @@
+MISSION
+
+name: "Cmpn04 News01 - Campaign Start"
+type: "Patrol"
+system: "Ostara"
+system: "Paragon"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1188000000.0
+
+subtitles: "Campaigns/04/Actions/01-campaign-start.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Aram Station"
+ design: Station4
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Aram
+ loc: (0,0,0)
+}
+
+
+element: {
+ name: Atlas
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Aram"
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Aram", speed: 300 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (98e3, 311e3, 0)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (112e3, 314e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (94e3, 292e3, 0)
+ navpt: { cmd: Vector, loc: (84e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+
+
+
+
+element: {
+ name: "Heracles"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (100e3, 100e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Paragon", speed: 300 }
+}
+
+element: {
+ name: "Forthright"
+ design: "Courageous"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (106e3, 101e3, 0)
+ navpt: { cmd: Vector, loc: (110e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+element: {
+ name: "Arthur",
+ design: "Asher"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (116e3, 94e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+element: {
+ name: "Smith"
+ design: "Asher"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (97e3, 97e3, 0)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,1.8e7) }
+event: { event: Camera, param: 5, vec: (0.11, 0.015, 0.05) }
+
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/04/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Display, time: 15, image: "Campaigns/04/Scenes/Map.pcx", color: 0xffffffff, fade: (1,12,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Aram Station", vec: (0.7,0.1,38e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.01) }
+
+
+event: { event: Camera, time: 45, param: (6, 30), target: "Atlas" }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 65, param: (6, 35), target: "Forthright" }
+event: { event: Display, message: "Force:Space Seventh Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "11th Carrier Group 'Heracles'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 92, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/02-Borovan-Archaelith.def b/data/content/Campaigns/04/Scenes/02-Borovan-Archaelith.def
new file mode 100644
index 0000000..8a1d8d5
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/02-Borovan-Archaelith.def
@@ -0,0 +1,176 @@
+MISSION
+
+name: "Cmpn04 News02 - Borovan Archaelith"
+type: "Patrol"
+system: "Museum"
+system: "Borova"
+region: "Borova"
+stardate: 1188022555.0
+
+subtitles: "Campaigns/04/Actions/02-borovan-archaelith.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "Museum"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-8500, -1e3, 0)
+}
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (1,0,1.5e7) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, 0.03) }
+
+event: { event: Display, time: 5, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Message, sound: "Vox/Scenes/04/News_02_Borovan_Archaelith.ogg" }
+
+
+
+event: { event: Camera, time: 35, param: 3, target: "Archaelith", vec: (1.00, 0.100, 220) }
+event: { event: Camera, param: 5, vec: (0.12, 0.015, -0.02) }
+event: { event: Display, message: "Borovan Archaelith", font: Limerick18, color: 0xff202020, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "File Footage", font: Limerick12, color: 0xff202020, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 60, param: 3, target: "Museum", vec: (-0.77, 0.17, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Vestapol", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Museum District", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 90, param: 3, target: "Archaelith", vec: (3.00, 0.2, 170) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.02) }
+
+
+event: { event: EndScene, time: 105, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/03-Technite-Found.def b/data/content/Campaigns/04/Scenes/03-Technite-Found.def
new file mode 100644
index 0000000..d627d1e
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/03-Technite-Found.def
@@ -0,0 +1,213 @@
+MISSION
+
+name: "Cmpn04 Brief 03 - Technite"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1188008811.0
+
+subtitles: "Campaigns/04/Actions/03-technite-found.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,250), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** TECHNITE FOUND ON HAICHE\n*** TANTALUS SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/Briefing_03_sam.ogg" }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tantalus Mining Station", vec: (0,0.005,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Downtown", vec: (1,0.005,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+
+event: { event: EndScene, time: 82, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/04-Zolon-Ambassador.def b/data/content/Campaigns/04/Scenes/04-Zolon-Ambassador.def
new file mode 100644
index 0000000..4e8415e
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/04-Zolon-Ambassador.def
@@ -0,0 +1,156 @@
+MISSION
+
+name: "Cmpn04 Brief 04 - Zolon Ambassador"
+type: "Patrol"
+system: Haiche
+system: Ostara
+system: Tarsus
+region: Tarsus
+stardate: 1188009977.0
+
+subtitles: "Campaigns/04/Actions/04-zolon-ambassador.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Zolon Ambassador"
+ design: ZZCS
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (0, 0, 0)
+ rgn: Tarsus
+ navpt: { cmd: Vector, loc: (100e3, -200e3, 20e3), rgn: Tarsus }
+}
+
+
+
+element: {
+ name: Consul
+ design: Transport
+ mission: Misc
+ invulnerable: true
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Haiche
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Haiche, speed: 500 }
+}
+
+
+
+element: {
+ name: Atlas
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Aram"
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Aram", speed: 300 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (98e3, 311e3, 0)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (112e3, 314e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (94e3, 292e3, 0)
+ navpt: { cmd: Vector, loc: (84e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Tarsus I", vec: (2, -0.15, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Zolon Ambassador\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B04-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,30), target: "Zolon Ambassador" }
+event: { event: Display, message: "Zolon Consular Starship", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tarsus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 30, param: (6,30), target: "Consul" }
+event: { event: Display, message: "Alliance Diplomatic Corps", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "En Route to Sixth Fleet", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Atlas", vec: (-2, 0.1, 25e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Ostara System", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/05-Operation-Firestorm.def b/data/content/Campaigns/04/Scenes/05-Operation-Firestorm.def
new file mode 100644
index 0000000..d958490
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/05-Operation-Firestorm.def
@@ -0,0 +1,241 @@
+MISSION
+
+name: "Cmpn04 News05 - Operation Firestorm"
+type: "Patrol"
+system: "Janus"
+system: "Museum"
+system: "Tarsus"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+subtitles: "Campaigns/04/Actions/05-operation-firestorm.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+
+element: {
+ name: "Atlas"
+ design: "Orion"
+ mission: "Flight Ops"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Tarsus"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Tarsus", speed: 300 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (0, 0, 1e3)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (-5e3, 0, -2e3)
+ navpt: { cmd: Vector, loc: (-5e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (14e3, 0, 3e3)
+ navpt: { cmd: Vector, loc: (14e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Sentry"
+ design: "Falcon"
+ commander: "Atlas"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Tarsus
+ loc: (18e3, -18e3, -2e3)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+ navpt: { cmd: Vector, loc: (20e3,-50e3, 0), rgn: Tarsus }
+}
+
+element: {
+ name: "Victor"
+ design: "Stormhawk"
+ commander: "Atlas"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Tarsus
+ loc: (-6e3, -23e3, 3e3)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+ navpt: { cmd: Vector, loc: (-10e3,-50e3, 0), rgn: Tarsus }
+}
+
+
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (52e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (70e3, -58e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (68e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2,0,1.5e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, time: 3, sound: "Vox/Scenes/04/News_05_Operation_Firestorm.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony Forces", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tarsus System", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 25, param: (6, 15), target: "Victor 1" }
+
+event: { event: Camera, time: 35, param: (6, 15), target: "Sentry 1" }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Atlas", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 70, param: 3, target: "Archaelith", vec: (3.00, 0.05, 170) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, -0.02) }
+event: { event: Display, message: "Borovan Archaelith", font: Limerick18, color: 0xff202020, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "File Footage", font: Limerick12, color: 0xff202020, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 90, param: 3, target: "Atlas", vec: (-3, 0, 18e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Camera, time: 110, param: (6, 25), target: "Vernor" }
+
+event: { event: Camera, time: 125, param: (6, 25), target: "Nichols" }
+
+
+event: { event: Camera, time: 140, param: 3, target: "Atlas", vec: (3, -0.2, 10e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.02, -0.01) }
+
+
+event: { event: EndScene, time: 155, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/06-Strategy.def b/data/content/Campaigns/04/Scenes/06-Strategy.def
new file mode 100644
index 0000000..cd5117b
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/06-Strategy.def
@@ -0,0 +1,183 @@
+MISSION
+
+name: "Cmpn04 Brief06 - Strategy"
+type: "Patrol"
+system: "Loris"
+system: "Tarsus"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155773311.0
+
+subtitles: "Campaigns/04/Actions/06-strategy.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+
+element: {
+ name: "Force:Space HQ"
+ design: Station1
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+ head: 90
+}
+
+
+
+element: {
+ name: "Atlas"
+ design: "Orion"
+ mission: "Flight Ops"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Tarsus"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Tarsus", speed: 400 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (0, 0, 1e3)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (-5e3, 0, -2e3)
+ navpt: { cmd: Vector, loc: (-5e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (14e3, 0, 3e3)
+ navpt: { cmd: Vector, loc: (14e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+
+
+
+element: {
+ name: "Z1"
+ design: "ZZDD"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ region: "Theramin"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Theramin", speed: 500 }
+}
+
+
+
+
+element: {
+ name: "Z2"
+ design: "ZZA"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 3
+ command_ai:1
+ iff: 0
+ region: "Theramin"
+ loc: (30e3, 0, 0)
+ navpt: { cmd: Vector, loc: (30e3, -70e3, 0), rgn: "Theramin", speed: 900 }
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "Force:Space HQ", vec: (-2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Operation Firestorm\nClassified: SECRET R3 NTK" }
+
+event: { event: Messasge, time: 3, sound: "Vox/Scenes/04/C4-B06-OK.ogg" }
+
+event: { event: Display, time: 5, image: "Campaigns/04/Scenes/Strat.pcx", color: 0xffffffff, fade: (1,9,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 22, param: 3, target: "body:Loris", vec: (2, -0.2, 2e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.005) }
+event: { event: Display, message: "Loris System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Marakan Hegemony", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: (6, 30), target: "Atlas" }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: (6, 30), target: "Z1" }
+
+event: { event: Camera, time: 65, param: (6, 20), target: "Z2" }
+
+event: { event: Camera, time: 80, param: 3, target: "Force:Space HQ", vec: ( 2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, 0.01) }
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/07-Loris-Collapse.def b/data/content/Campaigns/04/Scenes/07-Loris-Collapse.def
new file mode 100644
index 0000000..c30e33f
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/07-Loris-Collapse.def
@@ -0,0 +1,148 @@
+MISSION
+
+name: "Cmpn04 Brief07 - Loris"
+type: "Patrol"
+system: Loris
+region: Loris
+stardate: 1177553311.0
+
+subtitles: "Campaigns/04/Actions/07-loris-collapse.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Loris
+ loc: (12e3, 15e3, 2e3)
+ head: 90
+ navpt: { cmd: Vector, loc: (78e3, -70e3, 2e3), rgn: Loris, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Loris
+ loc: (25e3, 13e3, -1e3)
+ head: 90
+ navpt: { cmd: Vector, loc: (87e3, -90e3, -1e3), rgn: Loris, speed: 600 }
+}
+
+
+// CIVILIAN FREIGHT TRAFFIC
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (23e3, 50e3, 0)
+ rgn: Casalle
+ navpt: { cmd: Vector, loc: (23e3,-50e3,0), rgn: Casalle, speed: 500 }
+}
+
+
+element: {
+ name: Tanker
+ design: IM1912
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (21e3, 51e3, 60)
+ rgn: Casalle
+ navpt: { cmd: Vector, loc: (20e3,-50e3,60), rgn: Casalle, speed: 500 }
+}
+
+element: {
+ name: Cutlass
+ design: Cutlass
+ iff: 3
+ count: 4
+ intel: Secret
+ loc: (10e3,20e3,0)
+ rgn: Casalle
+ navpt: { cmd: Assault, tgt: Tanker, loc: (20e3, 45e3, 0), rgn: Casalle, speed: 1000 }
+}
+
+element: {
+ name: Marauder
+ design: Marauder
+ iff: 3
+ count: 1
+ intel: Secret
+ loc: (-30e3, -40e3, 2e3)
+ navpt: { cmd: Vector, loc: (20e3, 40e3,0), rgn: Casalle, speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Loris", vec: (5, -0.15, 2.2e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME\n*** LORIS GOVERNMENT COLLAPSE\n*** LORIS SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/Briefing_07_Loris_Collapse.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Casalle", vec: (0, -0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, fade: (1,3,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Casalle Sector" }
+
+event: { event: Camera, time: 15, param: (6,90), target: "Tanker" }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Civilian Freight Traffic" }
+
+
+event: { event: Camera, time: 25, param: (6,25), target: "Cutlass 1" }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Brotherhood of Iron Fighters" }
+
+
+event: { event: Camera, time: 37, param: (6,17), target: "Marauder" }
+
+
+event: { event: Camera, time: 50, param: (6,30), target: "Royale" }
+
+event: { event: EndScene, time: 77, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/08-Masil-Gannet.def b/data/content/Campaigns/04/Scenes/08-Masil-Gannet.def
new file mode 100644
index 0000000..aa66620
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/08-Masil-Gannet.def
@@ -0,0 +1,173 @@
+MISSION
+
+name: "Cmpn04 News08 - Masil Gannet"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1177889900.0
+
+subtitles: "Campaigns/04/Actions/08-masil-gannet.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tanis Base"
+ design: "Airbase3"
+ count: 1
+ iff: 2
+ region: Tanis
+ loc: (-54e3, 5e3, 0)
+}
+
+element: {
+ name: "Tanis Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (0, -67e3, 0)
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (3e3, -70e3, 0)
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (-4e3, -67e3, 0)
+}
+
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (5e3, -67e3, 0)
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (9e3, -9e3, 0)
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (10e3, -12e3, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -3e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -1e3, 0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (2, -0.15, 2.1e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 4, message: "Adantar Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Korius System", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+
+event: { event: Message, time: 5, sound: "Vox/Scenes/04/News_08_Masil_Gannet.ogg" }
+
+
+
+event: { event: Camera, time: 10, param: 3, target: "Tanis Mining Station", vec: (0,0.05,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 30, param: 3, target: "Downtown", vec: (1,0.1,7e3) }
+event: { event: Camera, param: 5, vec: (0.06, 0.007, 0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Tanis Base", vec: (3,0.125,7e3) }
+event: { event: Camera, param: 5, vec: (0.05, 0.007, 0.01) }
+
+
+
+
+event: { event: Camera, time: 70, param: 3, target: "SAM 1", vec: (1,0.320,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "AAA 1", vec: (2,0.365,7e3) }
+event: { event: Camera, param: 5, vec: (-0.10, 0.007, 0.01) }
+
+
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/09-Kolchev.def b/data/content/Campaigns/04/Scenes/09-Kolchev.def
new file mode 100644
index 0000000..2722f2e
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/09-Kolchev.def
@@ -0,0 +1,117 @@
+MISSION
+
+name: "Cmpn04 Brief09 - Kolchev"
+type: "Patrol"
+system: "Kolchev"
+region: "Kolchev"
+stardate: 1177883311.0
+
+subtitles: "Campaigns/04/Actions/09-kolchev.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Kolchev
+}
+
+
+element: {
+ name: Gryphon
+ design: Dragon
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Kolchev, speed: 500 }
+}
+
+element: {
+ name: "Gol Duvain"
+ design: Volnaris
+ iff: 0
+ loc: (23e3, 0, 0)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (24e3, -100e3, 0), rgn: Kolchev, speed: 700 }
+}
+
+element: {
+ name: "Tol Branta"
+ design: Volnaris
+ iff: 0
+ loc: (18e3, 0, -2e3)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (15e3, -100e3, -2e3), rgn: Kolchev, speed: 600 }
+}
+
+
+element: {
+ name: Wrath
+ design: Vendetta
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Anatoly
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Anatoly, speed: 600 }
+}
+
+
+element: {
+ name: Narom
+ design: Raptor
+ iff: 0
+ count: 4
+ loc: (20e3, 0, 0)
+ rgn: Volova
+ navpt: { cmd: Vector, loc: (220e3, -100e3, 0), rgn: Volova, speed: 700 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Kolchev", vec: (-2, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Kolchev System\nClassified: SECRET R3 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B09-OK.ogg" }
+
+event: { event: Camera, time: 12, param: (6,13), target: "Gryphon" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Kolchev Sector" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "body:Ilya", vec: (5, 0.1, 1.8e7) }
+event: { event: Camera, param: 5, vec: (0.1, 0.007, -0.01) }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Ilya Sector" }
+event: { event: Display, fade: (1,5,1), rect: (20,40, 300,100), font: Limerick12, color: 0xffffff80,
+ message: "Kolchev System" }
+
+
+event: { event: Camera, time: 35, param: (6,20), target: "Narom 1" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 48, param: (6,20), target: "Wrath" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Anatoly Sector" }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/10-Korius.def b/data/content/Campaigns/04/Scenes/10-Korius.def
new file mode 100644
index 0000000..2ea61f1
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/10-Korius.def
@@ -0,0 +1,192 @@
+MISSION
+
+name: "Cmpn04 Brief10 - Korius"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1178019500
+
+subtitles: "Campaigns/04/Actions/10-korius.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tanis Base"
+ design: "Airbase3"
+ count: 1
+ iff: 2
+ region: Tanis
+ loc: (-54e3, 5e3, 0)
+}
+
+element: {
+ name: "Tanis Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (0, -67e3, 0)
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (3e3, -70e3, 0)
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (-4e3, -67e3, 0)
+}
+
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (5e3, -67e3, 0)
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (9e3, -9e3, 0)
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (10e3, -12e3, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -3e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -1e3, 0)
+}
+
+
+element: {
+ name: "Gannet"
+ design: "Viper"
+ count: 4
+ iff: 2
+ region: "Tanis"
+ loc: (-54e3, 5e3, 7e3)
+ navpt: { cmd: Vector, loc: (0, 0, 8e3), rgn: Tanis, speed: 500 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+element: {
+ name: Kinch
+ design: Wolf
+ iff: 2
+ region: Solnas
+ loc: (-54e3, 5e3, 7e3)
+ navpt: { cmd: Vector, loc: (0, 0, 8e3), rgn: Solnas, speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Rhomin", vec: (-2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Kolchev System\nClassified: SECRET R3 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B10-OK.ogg" }
+
+event: { event: Camera, time: 10, param: 3, target: "body:Korius", vec: (-2, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Korius Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+
+event: { event: Camera, time: 18, param: 3, target: "body:Adantar", vec: ( 3, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Adantar Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Korius System", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tanis Mining Station", vec: (3,0.155,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+event: { event: Camera, time: 38, param: 3, target: "Tanis Base", vec: (3,0.255,7e3) }
+event: { event: Camera, param: 5, vec: (0.08, 0.007, 0.01) }
+
+
+event: { event: Camera, time: 45, param: (6,20), target: "Gannet 1" }
+
+
+event: { event: Camera, time: 55, param: 3, target: "Kinch", vec: (3,-0.05,25e3) }
+event: { event: Camera, param: 5, vec: (0.08, 0.007, 0.01) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/Defeat1.def b/data/content/Campaigns/04/Scenes/Defeat1.def
new file mode 100644
index 0000000..92a5294
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/Defeat1.def
@@ -0,0 +1,78 @@
+MISSION
+
+name: "Cmpn 04 Defeat 01"
+type: "Patrol"
+system: "Ostara"
+region: "Aram"
+stardate: 1177998877
+
+subtitles: "Campaigns/04/Actions/def1.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ count: 1
+ iff: 0
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ iff: 2
+ loc: (8e3,2e3,0)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (9e3,-100e3, 0), rgn: Aram, speed: 500 }
+}
+
+element: {
+ name: Avenger
+ design: Avenger
+ count: 4
+ iff: 2
+ loc: (34e3,6e3,200)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (35e3,-100e3,300), rgn: Aram, speed: 1000 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ count: 1
+ command_ai:1
+ iff: 2
+ loc: (-20e3,-100e3,0)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (-20e3, 100e3,0), rgn: Aram, speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Aram", vec: (1,0.3,1.2e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,22), target: Volnaris }
+
+event: { event: Camera, time: 20, param: (6,15), target: "Avenger 1" }
+
+event: { event: Camera, time: 30, param: (6,32), target: Vendetta }
+
+event: { event: Display, time: 38, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/Defeat2.def b/data/content/Campaigns/04/Scenes/Defeat2.def
new file mode 100644
index 0000000..b58e468
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/Defeat2.def
@@ -0,0 +1,88 @@
+MISSION
+
+name: "Cmpn 04 Defeat 02"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1177998877
+
+subtitles: "Campaigns/04/Actions/def2.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Heracles
+ design: Orion
+ iff: 1
+ loc: (0, -30e3, 0)
+ rgn: Adantar
+ navpt: { cmd: Vector, loc: (-25e3, -100e3, 0), rgn: Adantar, speed: 780 }
+}
+
+element: {
+ name: Devastator
+ design: Devastator
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Adantar
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,20), target: Vendetta }
+
+event: { event: Camera, time: 20, param: (6,11), target: Heracles }
+event: { event: Damage, time: 22, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 24, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 25, param: 1e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 27, param: 1e4, ship: Heracles, target: Heracles }
+
+event: { event: Camera, time: 30, param: 3, target: Devastator, vec: (2,0,5e3) }
+event: { event: Camera, param: 5, vec: (0.1,0,0) }
+
+event: { event: Damage, time: 32, param: 1e9, ship: Heracles, target: Heracles }
+
+event: { event: Display, time: 43, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/M1-New-Job.def b/data/content/Campaigns/04/Scenes/M1-New-Job.def
new file mode 100644
index 0000000..8bce735
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/M1-New-Job.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 04 Mail 01"
+type: "Patrol"
+system: "Thralis"
+region: "Thrale"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,60,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Jonas Devlin, Force:Intel Third Directorate\nRE: NEW JOB\n-----\nPATH: FI3D HQ | Thralis Relay | Force Command Transceiver | 6TH FLEET HQ | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,60,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nWell, it looks like my trade scouting days are officially over. This may come as some surprise, but I've been working as a Force:Intel field agent for the past two years. I got recruited at a traders conference here in Thralis. Anyway, after that series of scrapes I went through trying to get out of the Nephrys system, my boss decided he wanted to keep me where he could see that I was in one piece. So he kicked me upstairs and made me an Analyst in Third Directorate. Now I just get to read the kinds of reports I used to submit.\n\nI guess I'm not that surprised to hear the Zolons have gotten actively involved in the fight. The Nephrys system was crawling with them when I was out there. It seems to be their main hangout in Hegemony space. Still, something seems really off about the "phony peace treaty" ruse. I can't put my finger on it, but something doesn't add up.\n\nGood luck, mate. Watch your back out there.\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/04/Mail_01_New_Job.ogg"
+}
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/M2-Need-to-Know.def b/data/content/Campaigns/04/Scenes/M2-Need-to-Know.def
new file mode 100644
index 0000000..11d90df
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/M2-Need-to-Know.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: SOMETHING YOU NEED TO KNOW\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 6TH FLEET HQ |$GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nCouncilor Auris just left here to return home to Ele'aan space. The Consulate Center feels really strange with no ambassador here. He said it was just a routine trip, but I have a feeling he isn't planning on coming back. Now that he has convinced the President that the Zolons are behind this whole war, I think he feels like his job is done here.\n\nBut there's more - something else you need to know. I'm afraid to discuss it on an open channel like this; I don't know who else might have access to the fleet mail feed. I think it might be really important, I don't know. I wish I could see you face to face. I'm afraid to just sit on this information, and I don't know who else I can trust.\n\nI just need someone to tell me that we are all doing the right thing...\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/04/Mail_02_Something_you_need_to_know.ogg"
+}
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scenes/Victory1.def b/data/content/Campaigns/04/Scenes/Victory1.def
new file mode 100644
index 0000000..2212006
--- /dev/null
+++ b/data/content/Campaigns/04/Scenes/Victory1.def
@@ -0,0 +1,91 @@
+MISSION
+
+name: "Cmpn 04 Victory"
+type: "Patrol"
+system: "Korius"
+region: "Adantar"
+stardate: 1177998877
+
+subtitles: "Campaigns/04/Actions/victory.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Heracles"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Adantar }
+}
+
+element: {
+ name: "Forthright"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-135e3, 158e3, -550)
+ navpt: { cmd: Vector, loc: (-132e3,-50e3,-550), speed: 450, rgn: Adantar }
+}
+
+element: {
+ name: "Arthur"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-145e3, 162e3, -1e3)
+ navpt: { cmd: Vector, loc: (-147,-50e3,-1e3), speed: 350, rgn: Adantar }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (1,0,1.3e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Heracles }
+
+event: { event: Display, time: 38, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_AS_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_AS_Patrol.def
new file mode 100644
index 0000000..b43b40f
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_AS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Thunderbolt,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "vox.misc.a02-05",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "vox.misc.a02-06",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_Asher_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_Asher_Patrol.def
new file mode 100644
index 0000000..ce7292e
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_Asher_Patrol.def
@@ -0,0 +1,473 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "vox.misc.a02-07",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "vox.misc.a02-08",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_BG_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_BG_Patrol.def
new file mode 100644
index 0000000..8f6afdd
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_BG_Patrol.def
@@ -0,0 +1,472 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 110,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "vox.misc.a02-07",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 112,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "vox.misc.a02-08",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def
new file mode 100644
index 0000000..e2bbca4
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def
@@ -0,0 +1,445 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 60e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 500 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-09.ogg",
+ event_message: "vox.misc.a02-09",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-10.ogg",
+ event_message: "vox.misc.a02-10",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_DS_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_DS_Patrol.def
new file mode 100644
index 0000000..ac6d461
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_DS_Patrol.def
@@ -0,0 +1,473 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "vox.misc.a02-07",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "vox.misc.a02-08",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_FS_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_FS_Patrol.def
new file mode 100644
index 0000000..eaa3c45
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_FS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "vox.misc.a02-05",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "vox.misc.a02-06",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/Scripts/Zolon_IS_Patrol.def b/data/content/Campaigns/04/Scripts/Zolon_IS_Patrol.def
new file mode 100644
index 0000000..c518cd7
--- /dev/null
+++ b/data/content/Campaigns/04/Scripts/Zolon_IS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: Patrol
+system: Tarsus
+region: Tarsus
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "vox.misc.a02-02",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "vox.misc.a02-03",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "vox.misc.a02-04",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "vox.misc.a02-05",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "vox.misc.a02-06",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/content/Campaigns/04/campaign.def b/data/content/Campaigns/04/campaign.def
new file mode 100644
index 0000000..7262b90
--- /dev/null
+++ b/data/content/Campaigns/04/campaign.def
@@ -0,0 +1,862 @@
+CAMPAIGN
+
+name: "c04.name"
+desc: "c04.desc"
+situation: "c04.sitrep"
+orders: "c04.orders"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 6 }, // Ostara, Tarsus, Kolchev
+ group: { type: fleet, id: 7 }, // Loris, Korius
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 3 }, // Kolchev and Tarsus
+ group: { type: fleet, id: 5 }, // Loris and Korius
+ group: { type: battalion, id: 9 }, // Ostara Outpost
+ group: { type: battalion, id: 10 }, // Lovo Base (Kolchev)
+ group: { type: war_production, id: 4000 },
+ group: { type: infrastructure, id: 3000 }, // kolchev farcasters
+ group: { type: infrastructure, id: 4000 }, // korius farcasters
+ group: { type: infrastructure, id: 5000 }, // loris farcasters
+}
+
+combatant: {
+ name: "Dantari Separatists",
+ group: { type: fleet, id: 2 }, // Adantar
+ group: { type: battalion, id: 3 }, // Tanis Starbase
+ group: { type: war_production, id: 3000 }, // Tanis
+}
+
+combatant: {
+ name: "Brotherhood of Iron",
+ group: { type: fleet, id: 2 }, // Loris
+ group: { type: fleet, id: 3 }, // Loris
+}
+
+combatant: {
+ name: "Zolon Empire",
+ group: { type: fleet, id: 1 },
+ group: { type: non_com, id: 1 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.a000",
+ source: News,
+ file: "Actions/01-campaign-start.txt",
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-Campaign-Start.def"
+}
+
+action: {
+ id: 1,
+ type: system,
+ team: 1,
+ sys: Ostara,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+}
+
+action: {
+ id: 2,
+ type: intel,
+ subtype: reserve,
+ team: 1,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 2,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 2,
+ sys: Ostara,
+ asset_type: battalion,
+ asset_id: 9,
+ text: "do-not-display",
+}
+
+action: {
+ id: 5,
+ type: zone,
+ team: 2,
+ rgn: Theramin,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+}
+
+action: {
+ id: 6,
+ type: zone,
+ team: 4,
+ rgn: Sintar,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 7,
+ type: system,
+ team: 3,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 8,
+ type: system,
+ team: 3,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+}
+
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "01/04:00:00",
+ text: "c04.a020",
+ source: News,
+ file: "Actions/02-borovan-archaelith.txt"
+ image: "Actions/02-borovan-archaelith.pcx"
+ scene: "Scenes/02-Borovan-Archaelith.def"
+}
+
+action: {
+ id: 30,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Haiche,
+ after: "01/21:30:00",
+ text: "c04.a030",
+ source: News,
+ file: "Actions/03-technite-found.txt"
+ image: "Actions/03-technite-found.pcx"
+ scene: "Scenes/03-Technite-Found.def"
+}
+
+action: {
+ id: 40,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tarsus,
+ after: "02/06:00:00",
+ text: "c04.a040",
+ source: FORCOM,
+ file: "Actions/04-zolon-ambassador.txt",
+ image: "Actions/04-zolon-ambassador.pcx"
+ scene: "Scenes/04-Zolon-Ambassador.def"
+}
+
+
+action: {
+ id: 50,
+ type: sitrep,
+ team: 1,
+ text: "c04.a050",
+
+ after: "02/04:00:00",
+}
+
+action: {
+ id: 51,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 52,
+ type: orders,
+ team: 1,
+ text: "c04.a052"
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 53,
+ type: zone,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 60,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: intercept_squadron,
+ asset_id: 94,
+ count: 4,
+
+ text: "Scripts/Zolon_IS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+
+action: {
+ id: 61,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: fighter_squadron,
+ asset_id: 35,
+ count: 1,
+
+ text: "Scripts/Zolon_FS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+action: {
+ id: 62,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: attack_squadron,
+ asset_id: 101,
+ count: 1,
+
+ text: "Scripts/Zolon_AS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+action: {
+ id: 65,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: destroyer_squadron,
+ asset_id: 61,
+ count: 4,
+
+ text: "Scripts/Zolon_Asher_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+action: {
+ id: 66,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: battle_group,
+ asset_id: 14,
+ count: 4,
+
+ text: "Scripts/Zolon_BG_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+action: {
+ id: 68,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: carrier_group,
+ asset_id: 9,
+ count: 4,
+
+ text: "Scripts/Zolon_CVBG_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+// ZOLON RETURN TO NERGAL
+
+action: {
+ id: 69,
+ type: zone,
+ team: 4,
+ rgn: Nergal,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ after: "02/23:30:00",
+}
+
+
+// DECLARATIONS OF WAR
+
+action: {
+ id: 70,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tarsus,
+ after: "02/23:30:00",
+ text: "c04.a070",
+ source: News,
+ file: "Actions/05-operation-firestorm.txt",
+ image: "Actions/banner-alliance.pcx"
+ scene: "Scenes/05-Operation-Firestorm.def"
+}
+
+action: {
+ id: 75,
+ type: sitrep,
+ team: 1,
+ text: "c04.a075",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 76,
+ type: orders,
+ team: 1,
+ text: "c04.a076"
+
+ req: { action: 70, status: COMPLETE }
+}
+
+
+action: {
+ id: 80,
+ type: system,
+ team: 1,
+ sys: Tarsus,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 81,
+ type: system,
+ team: 2,
+ sys: Tarsus,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 82,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 19,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+
+action: {
+ id: 90,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "03/09:00:00",
+ text: "c04.a090",
+ source: FORCOM,
+ file: "Actions/06-strategy.txt"
+ image: "Actions/06-strategy.pcx"
+ scene: "Scenes/06-Strategy.def"
+}
+
+action: {
+ id: 96,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "03/16:30:00",
+ text: "c04.a096",
+ source: Mail,
+ file: "Actions/m1-new-job.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-New-Job.def"
+}
+
+action: {
+ id: 97,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "04/05:00:00",
+ text: "c04.a097",
+ source: SECURE,
+ file: "Actions/07-Loris-Collapse.txt"
+ image: "Actions/07-Loris-Collapse.pcx"
+ scene: "Scenes/07-Loris-Collapse.def"
+}
+
+action: {
+ id: 100,
+ type: system,
+ team: 2,
+ sys: Kolchev,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 3, comp: LT, score: 10000 },
+}
+
+action: {
+ id: 101,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: battle_group,
+ asset_id: 10,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 105,
+ type: system,
+ team: 1,
+ sys: Kolchev,
+ asset_type: fleet,
+ asset_id: 6,
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 106,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 15,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 107,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 46,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 130,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Kolchev,
+ text: "c04.a130",
+ source: FORCOM,
+ file: "Actions/09-kolchev.txt"
+ image: "Actions/09-kolchev.pcx"
+ scene: "Scenes/09-Kolchev.def"
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "05/09:15:00",
+ text: "c04.a150",
+ source: Mail,
+ file: "Actions/m2-need-to-know.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-Need-to-Know.def"
+}
+
+// START OF NORTHERN CAMPAIGN
+
+action: {
+ id: 200,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+ after: "03/22:00:00",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 201,
+ type: system,
+ team: 1,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 7,
+ image: "Actions/banner-alliance.pcx"
+ after: "03/22:00:00",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 205,
+ type: sitrep,
+ team: 1,
+ text: "c04.a205",
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 206,
+ type: orders,
+ team: 1,
+ text: "c04.a206"
+
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 220,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tanis,
+ after: "04/20:15:00",
+ text: "c04.a220",
+ source: Mail,
+ file: "Actions/08-masil-gannet.txt"
+ image: "Actions/08-masil-gannet.pcx"
+ scene: "Scenes/08-Masil-Gannet.def"
+
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 250,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Adantar,
+ after: "06/09:00:00",
+ text: "c04.a250",
+ source: FORCOM,
+ file: "Actions/10-korius.txt"
+ image: "Actions/10-korius.pcx"
+ scene: "Scenes/10-Korius.def"
+
+ req: { action: 200, status: COMPLETE }
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 5, comp: LT, score: 9000 },
+}
+
+action: {
+ id: 255,
+ type: sitrep,
+ team: 1,
+ text: "c04.a255",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 256,
+ type: orders,
+ team: 1,
+ text: "c04.a256"
+
+ req: { action: 250, status: COMPLETE }
+}
+
+
+action: {
+ id: 260,
+ type: system,
+ team: 1,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 7,
+ image: "Actions/banner-alliance.pcx"
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 261,
+ type: system,
+ team: 2,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 262,
+ type: system,
+ team: 2,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 263,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+
+
+
+// THE THRILL OF VICTORY
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.victory"
+ file: "Actions/victory.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 3, comp: LT, score: 6000 },
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 5, comp: LT, score: 6000 },
+ req: { c1: "Dantari Separatists", group_type: fleet, group_id: 2, comp: LT, score: 4000 },
+}
+
+
+// THE AGONY OF DEFEAT
+
+action: {
+ id: 994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 9, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 11, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 6, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 7, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+
+// SECOND-HALF FAILURE
+
+action: {
+ id: 1994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 9, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 11, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 6, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c04.defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 7, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE }
+}
diff --git a/data/content/Campaigns/05/Actions/01-operation-nightfall.txt b/data/content/Campaigns/05/Actions/01-operation-nightfall.txt
new file mode 100644
index 0000000..714753d
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/01-operation-nightfall.txt
@@ -0,0 +1,19 @@
+STRATPLAN BRIEFING
+Timestamp: 01/00:00:00
+Subject: Operation Nightfall
+Classified: TOP SECRET R7 NTK/EO
+
+I know that Admiral Caldott usually does these briefings, but this situation is unusual. I wanted to make it clear to everyone that this information is coming from the highest possible authority. Also, please notice that the briefing classification has been increased to the maximum security level - TS/R7.
+
+To state the matter succinctly, Operation Firestorm was not the strategic success we once believed it to be. Force:Intel field agents have been searching the occupied Hegemony systems for months, looking for any sign of either the Haichan Technite or the Borovan Archaelith. Until recently they had come up completely dry. There had been no evidence that any of the missing contraband had ever been within the borders of either Korius or Kolchev.
+
+Last week, we got our first break. Traces of Technite were found at a customs depot in Volova sector, Kolchev. The trace deposits did not appear to have been further refined, and there was still no sign of the Borovan Archaelith. Force:Intel agents employed heightened interrogation methods on the customs personnel to determine that the Technite had already been shipped out of Kolchev to the Garrison system.
+
+Garrison is a major military stronghold for the Hegemony, only two jumps away from the Marak system itself. We believe that if the Technite was sent there, the Borovan Archaelith must also be on its way. We cannot estimate how long we have before the Hegemony will be able to produce a Quantum Disruptor weapon system.
+
+We are therefore commencing Operation Nightfall to recover the artifacts from the Garrison system. Our first task is to gain control of the Radix and Isham star systems. Force First Fleet will take the northern route and secure the Isham system, while Second Fleet flanks them to the south through the Radix system. Our combined forces must converge on the Garrison system as soon as they can manage it.
+
+This will not be an easy task. We need maximum effort from every member of Force involved in this campaign. Good luck.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/content/Campaigns/05/Actions/02-garden.txt b/data/content/Campaigns/05/Actions/02-garden.txt
new file mode 100644
index 0000000..53855c5
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/02-garden.txt
@@ -0,0 +1,3 @@
+TIGER BAY, GARDEN, ISHAM SYSTEM - Named for the manta-like Tiger Mara that inhabit its warm coastal waters, the Tiger Bay Colony is today a thriving metropolis. Tiger Bay was once the original landing site for the Garden colonists. In the intervening years, a carefully managed urban sprawl has decorated the bright sands and azure waters of the bay. Glittering office towers and trendy entertainment venues share the tree-lined avenues of the mainland beach cities, while more relaxed appointments decorate the myriad offshore islands.
+
+Just offshore, the littoral waters are dotted with thermal power rigs. In addition to the thermal energy that powers the cities of Tiger Bay, these isolated platforms have tapped into the deep underground pockets of gas that have become a key export for the Isham system.
diff --git a/data/content/Campaigns/05/Actions/03-radix.txt b/data/content/Campaigns/05/Actions/03-radix.txt
new file mode 100644
index 0000000..78a5d81
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/03-radix.txt
@@ -0,0 +1,3 @@
+RADIX SECTOR - The Radix system is a small province on the southern edge of Marakan territory. The system has always been poor in natural resources and as a result has never been able to develop the economic influence of its larger northern neighbors. But with the conclusion of last month's trade conference, it has become clear that the Radix government is seeking to change all of that.
+
+Over the past few decades, the main trade path in the area has been the Garrison/Isham/Kolchev/Tarsus loop. As those systems have prospered, trade taxes have risen along with the increased traffic. At the trade conference, the Radix Minister for Commerce introduced a bold new super-low tariff policy designed to entice crossroads traffic between Garrison and Kolchev as well as Isham and Tarsus to pass through Radix instead of traveling 'around the horn.' \ No newline at end of file
diff --git a/data/content/Campaigns/05/Actions/04-politics.txt b/data/content/Campaigns/05/Actions/04-politics.txt
new file mode 100644
index 0000000..935514a
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/04-politics.txt
@@ -0,0 +1,9 @@
+JARNELL, ALLIANCE CAPITOL -
+
+As the war moves farther away from the Terellian core systems and as losses on both sides continue to mount, political action groups are increasing calls for a negotiated settlement and the return of Force to the Terellian home systems. A rally held before the Senate Building on Jarnell this morning typifies the emotional rhetoric of the growing pacifist movement:
+
+"For how much longer will our young men and women be asked to fight and die hundreds of parsecs from their homes? When and how will this insane quest finally come to an end? We've been very patient with Valmar for the past ten months as he has led our entire system on a wild goose chase. But it is obvious now that he has key Senate sub-committees in his hip pocket," said one rally organizer.
+
+Chants of "We want our government back! We want our children back! We want peace back! And we want them back now!" echoed through the Senate Plaza until security officers were forced to disperse the crowd.
+
+Central to the pacifist movement are the growing questions regarding the mysterious disappearance of the Borovan Archaelith and the inability of Force:Intel to locate large stores of Haichan Technite that were believed to be at the heart of the war. Without concrete evidence, it is becoming more and more difficult for many civilians to support what they view as simple expansionism. \ No newline at end of file
diff --git a/data/content/Campaigns/05/Actions/06-geothermal-platforms.txt b/data/content/Campaigns/05/Actions/06-geothermal-platforms.txt
new file mode 100644
index 0000000..af6494e
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/06-geothermal-platforms.txt
@@ -0,0 +1,13 @@
+STRATPLAN BRIEFING
+Timestamp: 03/21:00:00
+Subject: Tiger Bay Geothermal Platforms
+Classified: SECRET R2 NTK
+
+Strategic Planning has been reviewing the situation on Garden for the past fifteen hours. The planet is wealthy and heavily populated. This means that the risk of unintended collateral damage is very high. It also means that Garden has the resources to hold off an attack for quite a while.
+
+Our best option at this point seems to be the geothermal energy platforms just offshore from the cities surrounding Tiger Bay. Disabling these platforms will cut most of the power to the bay cities, and will also interrupt the colony's main planetary export, with a minimum rate of civilian casualties.
+
+The goal here is to convert the Isham system to a defensive posture so that our forces can move on to more important targets in the Garrison system.
+
+Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/05/Actions/07-deadmans-alley.txt b/data/content/Campaigns/05/Actions/07-deadmans-alley.txt
new file mode 100644
index 0000000..3b083f0
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/07-deadmans-alley.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** DEADMAN'S ALLEY MILITARY BASE
+*** SHADOW CANYON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The latest information we have is that the Hegemony has abandoned their pre-war military outpost in the northern canyons and set up a newer base to the south and east. My team was in the Radix system several months ago - just prior to Operation Shining Fortress - and we were able to contact some local smugglers before making the jump to Tarsus on the way back home.
+
+The local smugglers call the new base "Deadman's Alley" and that sounds accurate enough. They have a starbase flightstrip and several barracks tucked away in a narrow passage of Shadow Canyon. The base is protected by several AAA and SAM emplacements. The problem for an aerial attack is that the canyons are so narrow they will make it hard for our pilots to evade ground fire on the way in to the strike zone. The only good news is that the canyon walls also make for decent protection if you can keep your package below the rim wall.
+
+Stay alert down there if you want to make it back in one piece.
+
+---
+Jonas Devlin, Force:Intel Third Directorate
+
+*************************************
diff --git a/data/content/Campaigns/05/Actions/08-ramek-station.txt b/data/content/Campaigns/05/Actions/08-ramek-station.txt
new file mode 100644
index 0000000..840b51b
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/08-ramek-station.txt
@@ -0,0 +1,13 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Ramek Station
+Classified: SECRET R2 NTK
+
+While the Orion CVBG has been occupied in Garden, our cruiser and destroyer squadrons in Senesca have been keeping the enemy very busy. Most of the remaining Hegemony fleet in Isham has pulled out of Senesca at this time. They are apparently headed to Ramek sector to regroup.
+
+Ramek is a medium gas giant planet with nothing terribly remarkable in the way of moons or other resources. The Isham system maintains a standard Type 4 station there, similar to the outpost we discovered in Ostara. We believe they have a complement of Avenger strike fighters in rotation there, so we will need the Orion CVBG to run interference for our cruiser groups.
+
+If we can reduce Ramek Station and its attached fighter wing, we believe that we can pin the Hegemony carrier group here in Isham. They will not be able to follow us to the Garrison system if their other key defenses have been shattered.
+
+Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/content/Campaigns/05/Actions/08a-ramek-destroyed.txt b/data/content/Campaigns/05/Actions/08a-ramek-destroyed.txt
new file mode 100644
index 0000000..6d6471c
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/08a-ramek-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Station Assault, Ramek Sector
+
+Terellian Alliance 6th Battle Group "Havoc" successfully eliminated the Marakan Hegemony Ramek Station in the Isham system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/content/Campaigns/05/Actions/09-garrison-station.txt b/data/content/Campaigns/05/Actions/09-garrison-station.txt
new file mode 100644
index 0000000..efa15e4
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/09-garrison-station.txt
@@ -0,0 +1,15 @@
+*************************************
+*** FLASH CODED +$TIME
+*** GARRISON MILITARY LABORATORY
+*** GARRISON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Force:Intel has traced the illegal Technite to an Hegemony military laboratory in orbit about the planet Garrison. The Garrison system has always been a major storehouse for the Hegemony military, and this station is going to be no pushover. The station is armored, shielded, and has as much firepower as several heavy cruisers. In particular, watch out for the gamma ray laser turrets mounted on either side of the central manufacturing sector.
+
+About the only good news is that there is no fighter capability in the system. None of the planets are habitable, and the Garrison Military Laboratory is only designed to accommodate large starships. You will of course need to stay alert for carrier-based fighter craft in the region.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/05/Actions/09a-garrison-destroyed.txt b/data/content/Campaigns/05/Actions/09a-garrison-destroyed.txt
new file mode 100644
index 0000000..fce3903
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/09a-garrison-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Station Assault, Garrison Sector
+
+Terellian Alliance 5th Battle Group "Devastator" successfully eliminated the Marakan Hegemony Garrison Military Laboratory in the Garrison system. No allied losses were reported.
+
diff --git a/data/content/Campaigns/05/Actions/10-trocanther-biodomes.txt b/data/content/Campaigns/05/Actions/10-trocanther-biodomes.txt
new file mode 100644
index 0000000..6fd05b5
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/10-trocanther-biodomes.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** TROCANTHER BIODOMES
+*** HELL'S KITCHEN SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The planet Volante in the Trocanther System is "the front door" to the Marakan Hegemony, and it is about the most inhospitable place you could care to find anywhere in space. The surface is hotter than a blast furnace, and the atmosphere is highly toxic and corrosive as well. The ceramic composite armor of our fighter craft should be able to withstand the punishing conditions as long as they aren't exposed for too long.
+
+In spite of all that, people actually live on this forsaken rock. Volante's crust is a storehouse of rare minerals, and a small band of die-hard miners have set up a small colony to exploit them. The ground sector is rather colorfully named "Hell's Kitchen", and it has a handful of pressurized biodomes for human habitation. There are also the usual power reactors and support structures needed to keep the domes cool and breathable on the inside.
+
+If the Hegemony were looking for a place to secretly process some highly valuable contraband ore, I can't think of a better one than the Hell's Kitchen mining colony.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/content/Campaigns/05/Actions/11a-blackwing-destroyed.txt b/data/content/Campaigns/05/Actions/11a-blackwing-destroyed.txt
new file mode 100644
index 0000000..c16fba8
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/11a-blackwing-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 9th Carrier Battle Group "Blackwing" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/content/Campaigns/05/Actions/11b-hood-destroyed.txt b/data/content/Campaigns/05/Actions/11b-hood-destroyed.txt
new file mode 100644
index 0000000..0500f94
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/11b-hood-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 14th Battle Group "Hood" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/content/Campaigns/05/Actions/11c-omega-destroyed.txt b/data/content/Campaigns/05/Actions/11c-omega-destroyed.txt
new file mode 100644
index 0000000..3cd267e
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/11c-omega-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 15th Battle Group "Omega" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/content/Campaigns/05/Actions/12-endgame.txt b/data/content/Campaigns/05/Actions/12-endgame.txt
new file mode 100644
index 0000000..248fc01
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/12-endgame.txt
@@ -0,0 +1,17 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Operation Nightfall - Endgame
+Classified: TOP SECRET R7 NTK/EO
+
+Operation Nightfall is coming rapidly to a conclusion. The Hegemony forces in Trocanther are falling apart; they are not going to last much longer against the combined attack of our First and Second star fleets. You have all done an excellent job, and you should be proud of yourselves. You have fought with honor and integrity, and you have earned the respect of the entire Force, to say nothing of our government, and the folks back home.
+
+Our latest intel is that we have accounted for almost all of the Technite. Most of it was destroyed along with the Garrison Military Lab, and the rest we believe was due to be processed in the biodome factories on Volante here in Trocanther.
+
+The only thing that is still missing is the Borovan Archaelith. Our contacts in the Ele'aan Fusion have informed us that the Hegemony may have taken the Archaelith back to the Marak Prime System. Even without the Technite, they could still use the Archaelith against us in the future.
+
+Therefore, the President has asked us to take this fight all the way to Marak, to pressure the Hegemony leadership into surrendering the Archaelith and signing a non-agression pact. We have come a long way from home and comfort to do a job. Just a little farther, and we will be done. I'm asking you all to hang tough for just a few more hours. Let's get in there, do the job, and go home.
+
+Thank you all.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/content/Campaigns/05/Actions/15-disappearance.txt b/data/content/Campaigns/05/Actions/15-disappearance.txt
new file mode 100644
index 0000000..31e7284
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/15-disappearance.txt
@@ -0,0 +1,21 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Status of Marak Prime
+Classified: TOP SECRET R7 NTK/EO
+
+Well, obviously this has not gone as we had planned.
+
+As far as we can tell, the Zolon Empire has completely annihilated the human population of the Marak System. Every Marakan warship and civilian vessel we have encountered has been found drifting dead in space. There is no sign of intelligent life anywhere on the planet's surface. Everywhere we turn there are only more Zolons.
+
+Until today, that is. A few hours ago, every Zolon ship within sensor range disappeared. We believe they simply used their peculiar FTL drives to go home, back to the core Zolon systems, where ever that is. Frankly, if that is the case, we are lucky this stopped when it did. Their weapon systems are far more powerful than we could have thought possible. They took a devastating toll on our forces in just a few days.
+
+At this point, we seem to be out of options. President Valmar has recalled all of our remaining fleets back to Alliance space. We are going to leave a small Force:Intel detachment here to try to search Marak Prime for some evidence of the Borovan Archaelith, or at least some clue as to why the Zolon Empire chose this moment to decimate the human population here. The Zolon Empire may not view the distinction between the Alliance and the Hegemony with the same gravity that we do. It is possible that they have decided to wipe out all humans in the Blue Drift region.
+
+For now, we are going to continue to run patrols to look for survivors, but I expect we will all be shipping out within the next forty hours.
+
+For the time being, please remember that everything that has happened in the past ten days is classified TOP SECRET R7/NTK. If any members of the press approach you, refer them to your superior officers, or to my office directly. I'm sure there will be a board of inquiry convened when we get back, and we want to keep the unfounded rumors to a minimum until they have completed their investigation.
+
+Thank you all.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/content/Campaigns/05/Actions/def1.txt b/data/content/Campaigns/05/Actions/def1.txt
new file mode 100644
index 0000000..fc6cc08
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in Isham and Radix have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from the Isham-Radix Theater of Operations.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/content/Campaigns/05/Actions/def2.txt b/data/content/Campaigns/05/Actions/def2.txt
new file mode 100644
index 0000000..16c8373
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/def2.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in the Garrison System have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from Hegemony controlled space.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/content/Campaigns/05/Actions/def3.txt b/data/content/Campaigns/05/Actions/def3.txt
new file mode 100644
index 0000000..cf225dd
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/def3.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in the Trocanther System have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from Hegemony controlled space.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/content/Campaigns/05/Actions/m1-incommunicado.txt b/data/content/Campaigns/05/Actions/m1-incommunicado.txt
new file mode 100644
index 0000000..c340b2f
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/m1-incommunicado.txt
@@ -0,0 +1,17 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: BROKEN COMMUNICATIONS
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 1ST FLEET HQ | Trellis Relay | Ostara Relay | $GROUP
+-----
+
+Hello,
+
+I'm sorry I haven't written you in so long. I hope you'll accept my lame apology, as I don't even have a lame excuse! The Ele'aan Consulate is an absolute mad-house. Councilor Auris hasn't returned from the Ele'aan homeworld, and no replacement has been sent. We've been requesting an update from the Ele'aan leadership for weeks, but we can't get a straight answer from them (not that there's anything unusual about that).
+
+Finally this morning, everything just went to hell. Our communications line to the Ele'aan homeworld has gone completely silent. Half the computer systems in the consulate have gone dead and all kinds of critical files and databases have been deleted somehow. At least my personal system seems to be unaffected so far.
+
+Wish you were here right now, I really need to talk to someone I can trust. Sometimes I think you are the only one left who I can rely on. I'm worried something has gone wrong... very wrong.
+
+Sara
diff --git a/data/content/Campaigns/05/Actions/m2-final-message.txt b/data/content/Campaigns/05/Actions/m2-final-message.txt
new file mode 100644
index 0000000..e43034f
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/m2-final-message.txt
@@ -0,0 +1,23 @@
+--------------------------------------------------------
+NO MAIL HEADER RECORDS AVAILABLE
+--------------------------------------------------------
+
+CONTENTS ENCRYPTED.
+Decrypting................Complete
+
+================
+MESSAGE FOLLOWS:
+================
+
+I don't have very much time. I had to leave Jarnell in a hurry, can't say where I am or where I'm going. People started disappearing from the Ele'aan Consulate a week ago. One at a time, they just... weren't there anymore. I figured I'd better disappear myself, while I still had the chance to decide how and when. I don't know what is going to happen, or when I'll see you again. Or even if I'll see you again.
+
+I don't think I can trust Jonas anymore, or I'd go find him. But I had to tell someone, and I figured you might at least understand. Might at least try to do something without letting them trace the information back to me...
+
+This whole war has been a sham from the beginning. The Zolons and Hegemony don't have the Borovan Archaelith - they never did. I took it from the museum myself the night the museum was destroyed. That was the real reason the Ele'aan Fusion wnt to the Borovan System - to get to the Archaelith first, before it could fall into Zolon hands.
+
+The next day, I gave it to Councilor Auris and he took it with him back to Ele'aas. I can't understand why President Valmar would claim that the Fusion backed up his reasons for pursuing this conflict. We can't need the Marakan border worlds that badly, and I can't see a reason why he would want to stir up trouble with the Zolon Empire.
+
+I don't have very much time. I could be discovered at any moment. I need to keep moving. Promise me you'll stay safe, OK?
+
+Love from
+Sara
diff --git a/data/content/Campaigns/05/Actions/victory.txt b/data/content/Campaigns/05/Actions/victory.txt
new file mode 100644
index 0000000..2884bfd
--- /dev/null
+++ b/data/content/Campaigns/05/Actions/victory.txt
@@ -0,0 +1,5 @@
+Operation Nightfall has ended. The Marakan Hegemony is no more. Trapped between the advance of the Terellian Alliance and the onslaught of the Zolon Empire, the culture spawned by the last descendents of Emperor Marak I has been extinquished like a candle in the darkness between the stars.
+
+The Terellian Alliance has suffered historic losses while achieving their most profound victory. The Alliance has become the only remaining human super power in the Blue Drift region. They now face the long work of rebuilding the independent worlds, even as they prepare to meet the inevitable return of the Zolon Empire...
+
+
diff --git a/data/content/Campaigns/05/Scenes/01-Operation-Nightfall.def b/data/content/Campaigns/05/Scenes/01-Operation-Nightfall.def
new file mode 100644
index 0000000..d528e73
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/01-Operation-Nightfall.def
@@ -0,0 +1,139 @@
+MISSION
+
+name: "Cmpn05 Brief01 - Operation Nightfall"
+type: Patrol
+system: Garrison
+system: Radix
+system: Isham
+system: Kolchev
+region: Volova
+stardate: 1188000000
+
+subtitles: "Campaigns/05/Actions/01-operation-nightfall.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Volova
+ loc: (100e3, 300e3, 0)
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (98e3, 311e3, 500)
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (112e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (112e3, -70e3, -1000), rgn: Volova, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (94e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 800), rgn: Volova, speed: 100 }
+}
+
+
+element: {
+ name: Customs
+ design: Station4
+ iff: 0
+ region: Volova
+ loc: (0,0,0)
+ head: 20
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Kolchev", vec: (2, 0.1, 4e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: 01/00:00:00\nSubject: Operation Nightfall\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_01_Nightfall.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Orion", vec: (-2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (0.09, 0.017, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Force:Space First Fleet" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 40, param: 3, target: "Customs", vec: (3, 0.1, 15e3) }
+event: { event: Camera, param: 5, vec: (0.05, -0.01, -0.02) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Hegemony Customs Depot" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 60, param: 3, target: "body:Garrison", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.09, -0.007, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Garrison System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Hegemony Starbase" }
+
+
+event: { event: Display, time: 75, image: "Campaigns/05/Scenes/Nightfall.pcx", color: 0xffffffff, fade: (1,20,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "body:Garden", vec: (-1, 0.1, 1.4e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Isham System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Garden" }
+
+
+event: { event: Camera, time: 95, param: 3, target: "body:Radix", vec: (-2, -0.15, 2e7) }
+event: { event: Camera, param: 5, vec: (0.07, 0.01, -0.015) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Radix System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Capitol Planet" }
+
+
+event: { event: EndScene, time: 110, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/02-Garden.def b/data/content/Campaigns/05/Scenes/02-Garden.def
new file mode 100644
index 0000000..a9de230
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/02-Garden.def
@@ -0,0 +1,154 @@
+MISSION
+
+name: "Cmpn05 News02 - Garden"
+type: Patrol
+system: Isham
+region: "Tiger Bay"
+stardate: 1187981234
+
+subtitles: "Campaigns/05/Actions/02-garden.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: "Tiger Bay",
+ loc: (0,0,5e3)
+}
+
+element: {
+ name: "Tiger Base",
+ design: "Airbase2",
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Tiger Barracks",
+ design: "Barracks",
+ region: "Tiger Bay",
+ loc: (57000, -6000, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (5e3, -11e3, 0),
+}
+
+element: {
+ name: "Building C1",
+ design: "Bldg00",
+ region: "Tiger Bay",
+ loc: (7e3, -12e3, 0),
+}
+
+element: {
+ name: "City Block 1",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (-46e3, -15e3, 0),
+}
+
+element: {
+ name: "City Block 2",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (-47e3, -10e3, 0),
+}
+
+element: {
+ name: "Building W1",
+ design: "Bldg01",
+ region: "Tiger Bay",
+ loc: (-48e3, -11e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (54e3, -3e3, 0),
+}
+
+element: {
+ name: "Building E1",
+ design: "Bldg03",
+ region: "Tiger Bay",
+ loc: (52e3, -6e3, 0),
+}
+
+element: {
+ name: "Building E2",
+ design: "Bldg04",
+ region: "Tiger Bay",
+ loc: (52e3, 0, 0),
+}
+
+element: {
+ name: "Platform 1",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+}
+
+element: {
+ name: "Platform 2",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+}
+
+element: {
+ name: "Platform 3",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+}
+
+element: {
+ name: "Platform 4",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (-1, 0.1, 1.5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_02_Garden.ogg" }
+event: { event: Display, time: 5, message: "Isham System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Garden Colony", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 10, param: 3, target: "City Block 1", vec: (-3.77, 0.10, 9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Tiger Bay", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Shoreline City", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Platform 1", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Offshore Power Rig", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/03-Radix.def b/data/content/Campaigns/05/Scenes/03-Radix.def
new file mode 100644
index 0000000..1ff9eae
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/03-Radix.def
@@ -0,0 +1,59 @@
+MISSION
+
+name: "Cmpn05 News03 - Radix"
+type: Patrol
+system: Radix
+region: Radix
+stardate: 1187981234
+
+subtitles: "Campaigns/05/Actions/03-radix.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: Radix
+ loc: (0,0,0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Radix", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_03_Radix.ogg" }
+event: { event: Display, time: 5, message: "Radix System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol Planet", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Map.pcx", color: 0xffffffff, fade: (1,25,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "body:Senna", vec: ( 0.77, 0.15, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, 0.01) }
+
+event: { event: Display, message: "Senna Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: Camera, time: 45, param: 3, target: "body:Cavenda", vec: ( 0.77, 0.25, 5e7) }
+event: { event: Camera, param: 5, vec: ( 0.11, -0.01, -0.01) }
+
+event: { event: Display, message: "Cavenda Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/04-Politics.def b/data/content/Campaigns/05/Scenes/04-Politics.def
new file mode 100644
index 0000000..263ba24
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/04-Politics.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn05 News04 - Politics"
+type: Patrol
+system: Jarnell
+region: Jarnell
+stardate: 1187987654
+
+subtitles: "Campaigns/05/Actions/04-politics.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: Jarnell
+ loc: (0,0,0)
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1, -0.3, 1.5e7) }
+event: { event: Camera, param: 5, vec: (0.13, 0.005, 0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_04_Politics.ogg" }
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Senate.pcx", color: 0xffffffff, fade: (1,15,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Display, time: 65, image: "Campaigns/05/Scenes/Arch.pcx", color: 0xffffffff, fade: (1,15,1), rect: (-280,20,256,256) }
+
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/06-Geothermal-Platforms.def b/data/content/Campaigns/05/Scenes/06-Geothermal-Platforms.def
new file mode 100644
index 0000000..43ffe28
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/06-Geothermal-Platforms.def
@@ -0,0 +1,152 @@
+MISSION
+
+name: "Cmpn05 Brief06 - Geothermal Platforms"
+type: Patrol
+system: Isham
+region: Garden
+stardate: 1187981234
+
+subtitles: "Campaigns/05/Actions/06-geothermal-platforms.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+
+element: {
+ name: "Tiger Base",
+ design: "Airbase2",
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Tiger Barracks",
+ design: "Barracks",
+ region: "Tiger Bay",
+ loc: (57000, -6000, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (5e3, -11e3, 0),
+}
+
+element: {
+ name: "Building C1",
+ design: "Bldg00",
+ region: "Tiger Bay",
+ loc: (7e3, -12e3, 0),
+}
+
+element: {
+ name: "City Block 1",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (-46e3, -15e3, 0),
+}
+
+element: {
+ name: "City Block 2",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (-47e3, -10e3, 0),
+}
+
+element: {
+ name: "Building W1",
+ design: "Bldg01",
+ region: "Tiger Bay",
+ loc: (-48e3, -11e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (54e3, -3e3, 0),
+}
+
+element: {
+ name: "Building E1",
+ design: "Bldg03",
+ region: "Tiger Bay",
+ loc: (52e3, -6e3, 0),
+}
+
+element: {
+ name: "Building E2",
+ design: "Bldg04",
+ region: "Tiger Bay",
+ loc: (52e3, 0, 0),
+}
+
+element: {
+ name: "Platform 1",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+}
+
+element: {
+ name: "Platform 2",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+}
+
+element: {
+ name: "Platform 3",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+}
+
+element: {
+ name: "Platform 4",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (2, 0.1, 4e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: 03/21:00:00\nSubject: Tiger Bay Geothermal Platforms\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_06_Tiger_Bay.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: "Platform 1", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Offshore Power Rig", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "Platform 2", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: ( 0.09, 0.01, -0.01) }
+
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/07-Deadmans-Alley.def b/data/content/Campaigns/05/Scenes/07-Deadmans-Alley.def
new file mode 100644
index 0000000..f62705c
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/07-Deadmans-Alley.def
@@ -0,0 +1,121 @@
+MISSION
+
+name: "Cmpn05 Brief07 - Deadman's Alley"
+type: Patrol
+system: Radix
+region: Radix
+stardate: 1188334411
+
+subtitles: "Campaigns/05/Actions/07-deadmans-alley.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Radix Base",
+ design: "Airbase2",
+ rgn: "Shadow Canyon"
+ loc: (-40e3, -90e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 1",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-37e3, -92e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 2",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-38e3, -94e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 3",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-39e3, -96e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "SAM 1",
+ design: "SAM 1",
+ region: "Shadow Canyon",
+ loc: (-62e3, -82e3, 0),
+}
+
+element: {
+ name: "AAA 1",
+ design: "AAA 1",
+ region: "Shadow Canyon",
+ loc: (-58e3, -82e3, 0),
+}
+
+element: {
+ name: "SAM 2",
+ design: "SAM 1",
+ region: "Shadow Canyon",
+ loc: (-75e3, -68e3, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ region: "Shadow Canyon",
+ loc: (-77e3, -56e3, 0),
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ region: "Shadow Canyon",
+ loc: (-77e3, -58e3, 0),
+}
+
+element: {
+ name: "Cryo Tank",
+ design: "Tank00",
+ region: "Shadow Canyon",
+ loc: (-75e3, -58e3, 0),
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Radix", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** DEADMAN'S ALLEY MILITARY BASE\n*** SHADOW CANYON SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_07_Deadmans_Alley_2.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: "Radix Base", vec: (2, 0.15, 7e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.01, -0.01) }
+
+event: { event: Camera, time: 30, param: 3, target: "SAM 1", vec: (2, 0.15, 7e3) }
+event: { event: Camera, param: 5, vec: ( 0.11, 0.01, -0.01) }
+
+event: { event: Camera, time: 45, param: 3, target: "Reactor", vec: (2, 0.20, 7e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, -0.01) }
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/08-Ramek-Station.def b/data/content/Campaigns/05/Scenes/08-Ramek-Station.def
new file mode 100644
index 0000000..971eb98
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/08-Ramek-Station.def
@@ -0,0 +1,59 @@
+MISSION
+
+name: "Cmpn05 Brief08 - Ramek Station"
+type: Patrol
+system: Isham
+region: Ramek
+stardate: 1188338811
+
+subtitles: "Campaigns/05/Actions/08-ramek-station.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Ramek Station",
+ design: "Station4",
+ loc: (0, 0, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Senesca", vec: (2, 0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Ramek Station\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_08_Ramek_Station.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Ramek", vec: (2, 0.1, 7e7) }
+event: { event: Camera, param: 5, vec: ( 0.08, -0.007, -0.02) }
+
+event: { event: Display, message: "Isham System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Ramek Sector", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "Ramek Station", vec: (1, -0.1, 15e3) }
+event: { event: Camera, param: 5, vec: ( 0.08, 0.007, -0.01) }
+
+event: { event: Display, message: "Ramek Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/09-Garrison-Station.def b/data/content/Campaigns/05/Scenes/09-Garrison-Station.def
new file mode 100644
index 0000000..2f7ee59
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/09-Garrison-Station.def
@@ -0,0 +1,54 @@
+MISSION
+
+name: "Cmpn05 Brief09 - Garrison Station"
+type: Patrol
+system: Garrison
+region: Garrison
+stardate: 1188554433
+
+subtitles: "Campaigns/05/Actions/09-garrison-station.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Garrison Laboratory",
+ design: "Station7"
+ iff: 0
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garrison", vec: (2, 0.1, 3.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** GARRISON MILITARY LABORATORY\n*** GARRISON SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_09_Garrison_Station.ogg" }
+
+
+event: { event: Camera, time: 15, param: 3, target: "Garrison Laboratory", vec: (2, 0.1, 27e3) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, -0.02) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Turret.pcx", color: 0xffffffff, fade: (1,7,1), rect: (-280,-280,256,256) }
+
+
+event: { event: EndScene, time: 48, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/10-Trocanther-Biodomes.def b/data/content/Campaigns/05/Scenes/10-Trocanther-Biodomes.def
new file mode 100644
index 0000000..4e5c2e1
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/10-Trocanther-Biodomes.def
@@ -0,0 +1,159 @@
+MISSION
+
+name: "Cmpn05 Brief10 - Trocanther Biodomes"
+type: Patrol
+system: Trocanther
+region: Volante
+stardate: 1188554433
+
+subtitles: "Campaigns/05/Actions/10-trocanther-biodomes.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 6,
+ loc: (-14e3, -16e3, 0),
+ region: "Hell's Kitchen",
+}
+
+element: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ loc: (-12e3, -17e3, 0),
+ region: "Hell's Kitchen",
+}
+
+element: {
+ name: "Bio Dome 1",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 20e3, 0)
+}
+
+element: {
+ name: "Bio Dome 2",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 47e3, 0)
+ head: 90,
+}
+
+element: {
+ name: "Bio Dome 3",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (13e3, -3e3, 0)
+ head: 60
+}
+
+element: {
+ name: "Bio Dome 4",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (-27e3, 20e3, 0)
+ head: 30
+}
+
+element: {
+ name: "Bridge 1",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (0, 33500, 0)
+}
+
+element: {
+ name: "Bridge 2",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (5500, 8500, 0)
+ head: 30
+}
+
+element: {
+ name: "Bridge 3",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (-13500, 20e3, 0)
+ head: 90,
+}
+
+element: {
+ name: "Utility 1",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (5e3, -3e3, 0)
+}
+
+element: {
+ name: "Utility 2",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 25e3, 0)
+}
+
+element: {
+ name: "Utility 3",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 29e3, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Volante", vec: (2, 0.1, 2.8e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** TROCANTHER BIODOMES\n*** HELL'S KITCHEN SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_10_Trocanther_Biodomes.ogg" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "Bio Dome 1", vec: (2, 0.15, 17e3) }
+event: { event: Camera, param: 5, vec: ( 0.11, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Utility 1", vec: (3, 0.19, 17e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Reactor", vec: (4, 0.10, 5e3) }
+event: { event: Camera, param: 5, vec: ( 0.13, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 55, param: 3, target: "Bio Dome 2", vec: (5, 0.13, 15e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, -0.02) }
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/12-Endgame.def b/data/content/Campaigns/05/Scenes/12-Endgame.def
new file mode 100644
index 0000000..246689d
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/12-Endgame.def
@@ -0,0 +1,143 @@
+MISSION
+
+name: "Cmpn05 Brief12 - Endgame"
+type: Patrol
+system: Museum
+system: Marak
+system: Trocanther
+region: Volante
+stardate: 1188776655
+
+subtitles: "Campaigns/05/Actions/12-endgame.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Volante
+ loc: (100e3, 300e3, 0)
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (98e3, 311e3, 500)
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (112e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (112e3, -70e3, -1000), rgn: Volante, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (94e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 800), rgn: Volante, speed: 100 }
+}
+
+
+element: {
+ name: Dragon
+ design: Dragon
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Narcissus, speed: 500 }
+}
+
+element: {
+ name: "Gol Duvain"
+ design: Volnaris
+ iff: 0
+ loc: (23e3, 0, 0)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (24e3, -100e3, 0), rgn: Narcissus, speed: 700 }
+}
+
+element: {
+ name: "Tol Branta"
+ design: Volnaris
+ iff: 0
+ loc: (18e3, 0, -2e3)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (15e3, -100e3, -2e3), rgn: Narcissus, speed: 600 }
+}
+
+
+element: {
+ name: Wrath
+ design: Vendetta
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Path
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Path, speed: 600 }
+}
+
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ iff: 0
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Path", vec: (2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Operation Nightfall - Endgame\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_12_Endgame.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Orion", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+event: { event: Camera, time: 20, param: (6,20), target: "Dragon" }
+
+event: { event: Camera, time: 30, param: (6,20), target: "Wrath" }
+
+event: { event: Camera, time: 37, param: 3, target: "Archaelith", vec: (3.00, 0.2, 170) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.02) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Marak", vec: (2, -0.3, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.01, -0.02) }
+
+event: { event: Display, message: "Marak Prime", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,100) }
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/15-Disappearance.def b/data/content/Campaigns/05/Scenes/15-Disappearance.def
new file mode 100644
index 0000000..d566be2
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/15-Disappearance.def
@@ -0,0 +1,135 @@
+MISSION
+
+name: "Cmpn05 Brief15 - Disappearance"
+type: Patrol
+system: Marak
+region: Marak
+stardate: 1188999999
+
+subtitles: "Campaigns/05/Actions/15-disappearance.txt"
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Marak
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (93e3, 311e3, 500)
+ navpt: { cmd: Vector, loc: (93e3, -70e3, 500), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (118e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (118e3, -70e3, -1000), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (90e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 800), rgn: Marak, speed: 100 }
+}
+
+
+element: {
+ name: Dragon
+ design: "Hulk-Dragon"
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Xanthe
+}
+
+element: {
+ name: Broadsword
+ design: "Hulk-Broadsword"
+ iff: 0
+ loc: (53e3, 0, 10e3)
+ rgn: Xanthe
+}
+
+element: {
+ name: Volnaris
+ design: "Hulk-Volnaris"
+ iff: 0
+ loc: (16e3, 0, -2e3)
+ rgn: Marak
+}
+
+
+element: {
+ name: Imperial
+ design: "Hulk-Imperial"
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Marak
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Marak", vec: (2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.04) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Status of Marak Prime\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_15.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Dragon", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 22, param: 3, target: "Broadsword", vec: (3, 0.2, 6e3) }
+event: { event: Camera, param: 5, vec: ( 0.06, -0.01, 0.02) }
+
+
+event: { event: Camera, time: 34, param: 3, target: "Imperial", vec: (4, -0.1, 9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Orion", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "body:Marak", vec: (5, -0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.085, 0.002, 0.03) }
+
+
+event: { event: EndScene, time: 105, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/Defeat1.def b/data/content/Campaigns/05/Scenes/Defeat1.def
new file mode 100644
index 0000000..5730021
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/Defeat1.def
@@ -0,0 +1,73 @@
+MISSION
+
+name: "Cmpn 05 Defeat 01"
+type: "Patrol"
+system: "Radix"
+system: "Isham"
+region: "Garden"
+stardate: 1188998811
+
+subtitles: "Campaigns/05/Actions/def1.txt"
+
+element: {
+ name: Camera
+ design: CameraPod
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Dragon
+ design: Dragon
+ loc: (8e3,2e3,0)
+ rgn: Garden
+ navpt: { cmd: Vector, loc: (9e3,-100e3, 0), rgn: Garden, speed: 500 }
+}
+
+element: {
+ name: Avenger
+ design: Avenger
+ count: 4
+ loc: (34e3,6e3,200)
+ rgn: Garden
+ navpt: { cmd: Vector, loc: (35e3,-100e3,300), rgn: Garden, speed: 1000 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: Imperial
+ design: Imperial
+ count: 1
+ loc: (-20e3,-100e3,0)
+ rgn: Radix
+ navpt: { cmd: Vector, loc: (-20e3, 100e3,0), rgn: Radix, speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (2, 0.3, 1.6e7) }
+event: { event: Camera, param: 5, vec: (-0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,22), target: Dragon }
+
+event: { event: Camera, time: 20, param: (6,15), target: "Avenger 1" }
+
+event: { event: Camera, time: 30, param: (6,32), target: Imperial }
+
+event: { event: Display, time: 38, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/Defeat2.def b/data/content/Campaigns/05/Scenes/Defeat2.def
new file mode 100644
index 0000000..bec8964
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/Defeat2.def
@@ -0,0 +1,96 @@
+MISSION
+
+name: "Cmpn 05 Defeat 02"
+type: "Patrol"
+system: Garrison
+region: Garrison
+stardate: 1188998811
+
+subtitles: "Campaigns/05/Actions/def2.txt"
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+ invulnerable: true
+}
+
+element: {
+ name: Imperial
+ design: Imperial
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Heracles
+ design: Orion
+ command_ai: 1
+ iff: 1
+ loc: (0, -30e3, 0)
+ rgn: Garrison
+ navpt: { cmd: Vector, loc: (-35e3, -10e3, 0), rgn: Garrison, speed: 780 }
+ heading: 90
+}
+
+element: {
+ name: Devastator
+ design: Devastator
+ command_ai: 1
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Garrison
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+ invulnerable: true
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garrison", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 3
+ sound: "Vox/Scenes/05/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: 3, target: Imperial, vec: (1, 0, 8e3) }
+event: { event: Camera, param: 5, vec: (0.09, 0.005, -0.01) }
+
+event: { event: Camera, time: 20, param: 3, target: Heracles, vec: (1, 0, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.1, 0.005, -0.01) }
+
+event: { event: Damage, time: 21, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 22, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 23, param: 1e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 24, param: 1e4, ship: Heracles, target: Heracles }
+
+event: { event: Camera, time: 27, param: (6,21,2), target: Devastator }
+
+event: { event: Damage, time: 30, param: 1e7, ship: Heracles, target: Heracles }
+
+event: { event: Display, time: 38, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/Defeat3.def b/data/content/Campaigns/05/Scenes/Defeat3.def
new file mode 100644
index 0000000..4587867
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/Defeat3.def
@@ -0,0 +1,97 @@
+MISSION
+
+name: "Cmpn 05 Defeat 03"
+type: "Patrol"
+system: Trocanther
+region: Volante
+stardate: 1188998811
+
+subtitles: "Campaigns/05/Actions/def3.txt"
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+ invulnerable: true
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ invulnerable: true
+ iff: 2
+ loc: (-8e3,0, 300)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (-27e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Devastator
+ design: Devastator
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Volante
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ iff: 1
+ loc: (20, -30e3, 0)
+ rgn: Volante
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Volante", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_04_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,30,3), target: Broadsword }
+
+event: { event: Camera, time: 20, param: (6,11,2.2), target: Devastator }
+event: { event: Damage, time: 22, param: 2e4, ship: Devastator, target: Devastator }
+event: { event: Damage, time: 24, param: 2e4, ship: Devastator, target: Devastator }
+
+event: { event: Camera, time: 30, param: (6,20,1.5), target: Courageous }
+event: { event: Damage, time: 34, param: 4e4, ship: Devastator, target: Devastator }
+
+event: { event: Display, time: 43, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/M1-Incommunicado.def b/data/content/Campaigns/05/Scenes/M1-Incommunicado.def
new file mode 100644
index 0000000..c36d49f
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/M1-Incommunicado.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 05 Mail 01"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: BROKEN COMMUNICATIONS\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 1ST FLEET HQ | Trellis Relay | Ostara Relay | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nI'm sorry I haven't written you in so long. I hope you'll accept my lame apology, as I don't even have a lame excuse! The Ele'aan Consulate is an absolute mad-house. Councilor Auris hasn't returned from the Ele'aan homeworld, and no replacement has been sent. We've been requesting an update from the Ele'aan leadership for weeks, but we can't get a straight answer from them (not that there's anything unusual about that).\n\nFinally this morning, everything just went to hell. Our communications line to the Ele'aan homeworld has gone completely silent. Half the computer systems in the consulate have gone dead and all kinds of critical files and databases have been deleted somehow. At least my personal system seems to be unaffected so far.\n\nWish you were here right now, I really need to talk to someone I can trust. Sometimes I think you are the only one left who I can rely on. I'm worried something has gone wrong... very wrong.\n\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/05/Mail_01_Incommunicado.ogg"
+}
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/M2-Final-Message.def b/data/content/Campaigns/05/Scenes/M2-Final-Message.def
new file mode 100644
index 0000000..98d99b3
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/M2-Final-Message.def
@@ -0,0 +1,55 @@
+MISSION
+
+name: "Cmpn 05 Mail 02"
+type: "Patrol"
+system: "Black"
+region: "Medium"
+degrees: true
+stardate: 1188338811
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ head: 90
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+
+event: { event: Display, time: 1, message: "--------------------------------------------------------\nNO MAIL HEADER RECORDS AVAILABLE\n--------------------------------------------------------", fade: (0,4,0), rect: (20, 20, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 2, message: "CONTENTS ENCRYPTED", fade: (0,3,0), rect: (20,70, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 3.0, message: "Decrypting...", fade: (0,0.5,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 3.5, message: "Decrypting.........", fade: (0,0.5,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 4.0, message: "Decrypting..............Complete.", fade: (0,1,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,20, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "================\nMESSAGE FOLLOWS:\n================" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,80, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "I don't have very much time. I had to leave Jarnell in a hurry, can't say where I am or where I'm going. People started disappearing from the Ele'aan Consulate a week ago. One at a time, they just... weren't there anymore. I figured I'd better disappear myself, while I still had the chance to decide how and when. I don't know what is going to happen, or when I'll see you again. Or even if I'll see you again.\n\nI don't think I can trust Jonas anymore, or I'd go find him. But I had to tell someone, and I figured you might at least understand. Might at least try to do something without letting them trace the information back to me...\n\nThis whole war has been a sham from the beginning. The Zolons and Hegemony don't have the Borovan Archaelith - they never did. I took it from the museum myself the night the museum was destroyed. That was the real reason the Ele'aan Fusion went to the Borovan System - to get to the Archaelith first, before it could fall into Zolon hands.\n\nThe next day, I gave it to Councilor Auris and he took it with him back to Ele'aas. I can't understand why President Valmar would claim that the Fusion backed up his reasons for pursuing this conflict. We can't need the Marakan border worlds that badly, and I can't see a reason why he would want to stir up trouble with the Zolon Empire.\n\n
+I don't have very much time. I could be discovered at any moment. I need to keep moving. Promise me you'll stay safe, OK?\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/05/Mail_02_Final_Message.ogg"
+}
+
+
+event: { event: EndScene, time: 83, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/Scenes/Victory.def b/data/content/Campaigns/05/Scenes/Victory.def
new file mode 100644
index 0000000..b67ca36
--- /dev/null
+++ b/data/content/Campaigns/05/Scenes/Victory.def
@@ -0,0 +1,118 @@
+MISSION
+
+name: "Cmpn 05 Victory"
+type: "Patrol"
+system: "Jarnell"
+system: "Athenar"
+system: "Paragon"
+system: "Thralis"
+system: "Borova"
+system: "Marak"
+region: "Marak"
+stardate: 1177998877
+
+subtitles: "Campaigns/05/Actions/victory.txt"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Orion"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Marak }
+}
+
+element: {
+ name: "Courageous"
+ design: "Courageous"
+ commander: "Orion"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-132e3, 158e3, -550)
+ navpt: { cmd: Vector, loc: (-131e3,-50e3,-550), speed: 450, rgn: Marak }
+}
+
+element: {
+ name: "Asher"
+ design: "Asher"
+ commander: "Orion"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-148e3, 162e3, -1e3)
+ navpt: { cmd: Vector, loc: (-148,-50e3,-1e3), speed: 350, rgn: Marak }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Marak", vec: (5, -0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.085, 0.002, 0.03) }
+
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,15,1), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,15,1), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 10, param: 3, target: Orion, vec: (2,0,8e3) }
+event: { event: Camera, param: 5, vec: ( 0.09, 0.002, 0.01) }
+
+event: { event: Camera, time: 20, param: 3, target: "body:Borova", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.03) }
+event: { event: Display, message: "Borova", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 25, param: 3, target: "body:Thrale", vec: (0, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Thralis", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "body:Paragon", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Paragon", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 35, param: 3, target: "body:Athenar", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Athenar", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 40, param: 3, target: "body:Jarnell", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Jarnell", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+
+event: { event: Display, time: 45, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,20,0), rect: (0,0,0,0) }
+event: { event: Display, time: 48, image: "Campaigns/05/Scenes/Alliance.pcx", color: 0xffffffff, fade: (1,7,1), rect: (0,0, -256,-256) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/content/Campaigns/05/campaign.def b/data/content/Campaigns/05/campaign.def
new file mode 100644
index 0000000..cd4ba28
--- /dev/null
+++ b/data/content/Campaigns/05/campaign.def
@@ -0,0 +1,1344 @@
+CAMPAIGN
+
+name: "c05.name"
+desc: "c05.desc"
+situation: "c05.sitrep"
+orders: "c05.orders"
+
+/*******
+
+ISHAM
+ Garden / Tiger Bay
+ Senesca
+ Rom
+ Relay *
+
+RADIX
+ Senna
+ Radix / Shadow Canyon
+ Cavenda *
+
+GARRISON
+ Rhofar
+ Garrison
+ Korul
+ Nerasil *
+
+TROCANTHER
+ Volante / Hell's Kitchen
+ Narcissus
+ Path *
+
+MARAK
+ Marak
+ Xanthe *
+
+*******/
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 1 }, // Isham
+ group: { type: fleet, id: 2 }, // Radix
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 1 }, // Isham
+ group: { type: fleet, id: 2 }, // Radix
+ group: { type: fleet, id: 9 }, // Trocanther
+ group: { type: fleet, id: 10 }, // Marak - Ghost Fleet
+ group: { type: battalion, id: 4 }, // Ramek Station (Isham/Ramek)
+ group: { type: battalion, id: 15 }, // Tiger Base (Isham/Garden)
+ group: { type: battalion, id: 19 }, // Deadman's Alley (Radix/Shadow Canyon)
+ group: { type: battalion, id: 12 }, // Garrison Laboratory
+ group: { type: war_production, id: 5000 }, // Tiger Bay Civilian Units
+ group: { type: infrastructure, id: 5000 }, // Isham Farcaster Network
+ group: { type: war_production, id: 6000 }, // Hell's Kitchen Biodomes
+ group: { type: infrastructure, id: 7000 }, // Radix Farcaster Network
+}
+
+combatant: {
+ name: "Zolon Empire",
+ group: { type: fleet, id: 1 },
+ group: { type: fleet, id: 2 },
+ group: { type: fleet, id: 3 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.a000",
+ source: FORCOM,
+ file: "Actions/01-operation-nightfall.txt"
+ image: "Actions/01-operation-nightfall.pcx"
+ scene: "Scenes/01-Operation-Nightfall.def"
+}
+
+action: {
+ id: 1,
+ type: zone,
+ team: 1,
+ zone: Relay,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 2,
+ type: zone,
+ team: 1,
+ zone: Cavenda,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 2,
+ sys: Isham,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 2,
+ sys: Radix,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 5,
+ type: system,
+ team: 2,
+ sys: Trocanther,
+ asset_type: fleet,
+ asset_id: 9,
+ text: "do-not-display",
+}
+
+//
+// NEWS STORIES
+//
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Tiger Bay",
+ text: "c05.a020",
+ source: News,
+ file: "Actions/02-garden.txt",
+ image: "Actions/02-garden.pcx"
+ scene: "Scenes/02-Garden.def"
+}
+
+action: {
+ id: 21,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Radix",
+ after: "01/16:30:00",
+ text: "c05.a021",
+ source: News,
+ file: "Actions/03-radix.txt",
+ image: "Actions/03-radix.pcx"
+ scene: "Scenes/03-Radix.def"
+}
+
+action: {
+ id: 22,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "09/11:45:00",
+ text: "c05.a022",
+ source: News,
+ file: "Actions/04-politics.txt",
+ image: "Actions/04-politics.pcx"
+ scene: "Scenes/04-Politics.def"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+//
+// ISHAM SYSTEM
+//
+
+action: {
+ id: 50,
+ type: zone,
+ team: 1,
+ zone: Senesca,
+ asset_type: fleet,
+ asset_id: 1,
+ after: "02/06:30:00",
+ image: "Actions/AA-senesca-sector.pcx",
+}
+
+action: {
+ id: 70,
+ type: zone,
+ team: 1,
+ zone: Garden,
+ asset_type: carrier_group,
+ asset_id: 4,
+ after: "02/18:30:00",
+ image: "Actions/AA-garden-sector.pcx",
+}
+
+action: {
+ id: 80,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "03/21:00:00",
+ text: "c05.a080",
+ source: FORCOM,
+ file: "Actions/06-geothermal-platforms.txt",
+ image: "Actions/06-geothermal-platforms.pcx"
+ scene: "Scenes/06-Geothermal-Platforms.def"
+}
+
+action: {
+ id: 81,
+ type: intel,
+ subtype: reserve,
+ team: 2, // use IFF of the combatant (even though resource-5050 has IFF=0)
+ asset_type: resource,
+ asset_id: 5050,
+
+ req: { action: 80, status: COMPLETE }
+}
+
+action: {
+ id: 82,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: resource,
+ asset_id: 5051,
+
+ req: { action: 81, status: COMPLETE }
+}
+
+
+action: {
+ id: 100,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 50,
+ after: "02/14:30:00",
+ text: "do-not-display",
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "04/23:00:00",
+ text: "c05.a150",
+ source: FORCOM,
+ file: "Actions/08-ramek-station.txt",
+ image: "Actions/08-ramek-station.pcx"
+ scene: "Scenes/08-Ramek-Station.def"
+}
+
+action: {
+ id: 170,
+ type: zone,
+ team: 1,
+ zone: Ramek,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 150, status: COMPLETE }
+}
+
+action: {
+ id: 175,
+ type: zone,
+ team: 2,
+ zone: Garden,
+ asset_type: carrier_group,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 150, status: COMPLETE }
+}
+
+
+action: {
+ id: 190,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "c05.a190",
+ file: "Actions/08a-ramek-destroyed.txt",
+ source: TACNET,
+ after: "08/01:00:00",
+
+ req: { action: 400, status: COMPLETE, not: true },
+
+ target_type: station,
+ target_id: 44,
+ target_iff: 2,
+ target_kill: "Ramek Station",
+}
+
+
+//
+// RADIX SYSTEM
+//
+
+action: {
+ id: 270,
+ type: zone,
+ team: 1,
+ zone: Radix,
+ asset_type: fleet,
+ asset_id: 2,
+ after: "02/09:30:00",
+ image: "Actions/03-radix.pcx",
+}
+
+action: {
+ id: 280,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "02/14:00:00",
+ text: "c05.a280",
+ source: SECURE,
+ file: "Actions/07-deadmans-alley.txt",
+ image: "Actions/07-deadmans-alley.pcx"
+ scene: "Scenes/07-Deadmans-Alley.def"
+}
+
+action: {
+ id: 290,
+ type: zone,
+ team: 1,
+ zone: Senna,
+ asset_type: fleet,
+ asset_id: 2,
+ after: "04/04:40:00",
+ image: "Actions/AA-senna-sector.pcx",
+}
+
+
+//
+// GARRISON
+//
+
+action: {
+ id: 400,
+ type: zone,
+ team: 1,
+ zone: Nerasil,
+ asset_type: fleet,
+ asset_id: 1,
+ after: "06/04:30:00",
+ image: "Actions/AA-nerasil-sector.pcx",
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 4, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 401,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 5,
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 403,
+ type: system,
+ team: 2,
+ sys: Garrison,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 404,
+ type: system,
+ team: 2,
+ sys: Garrison,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 405,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Garrison",
+ text: "c05.a405",
+ source: SECURE,
+ file: "Actions/09-garrison-station.txt",
+ image: "Actions/09-garrison-station.pcx"
+ scene: "Scenes/09-Garrison-Station.def"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+
+action: {
+ id: 406,
+ type: sitrep,
+ team: 1,
+ text: "c05.a406"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 407,
+ type: orders,
+ team: 1,
+ text: "c05.a407"
+
+ req: { action: 406, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 409,
+ type: zone,
+ team: 1,
+ zone: Rhofar,
+ asset_type: fleet,
+ asset_id: 1,
+ delay: 70e3, // 20 hours
+ image: "Actions/AA-rhofar-sector.pcx"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 410,
+ type: zone,
+ team: 1,
+ zone: Korul,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 100e3, // 30 hours
+ image: "Actions/AA-korul-sector.pcx"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 411,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 8,
+
+ req: { action: 410, status: COMPLETE }
+}
+
+
+action: {
+ id: 420,
+ type: zone,
+ team: 1,
+ zone: Garrison,
+ asset_type: fleet,
+ asset_id: 1,
+ delay: 150e3, // 40 hours
+ image: "Actions/AA-garrison-sector.pcx",
+
+ req: { action: 410, status: COMPLETE }
+}
+
+action: {
+ id: 430,
+ type: zone,
+ team: 1,
+ zone: Garrison,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 150e3, // 40 hours
+ text: "do-not-display",
+
+ req: { action: 410, status: COMPLETE }
+}
+
+
+action: {
+ id: 440,
+ type: sitrep,
+ team: 1,
+ text: "c05.a440",
+
+ req: { action: 430, status: COMPLETE }
+}
+
+action: {
+ id: 441,
+ type: orders,
+ team: 1,
+ text: "c05.a441"
+
+ req: { action: 430, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 500,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.a500",
+ source: Mail,
+ file: "Actions/m1-incommunicado.txt",
+ image: "Actions/m0-mail-icon.pcx",
+ scene: "Scenes/m1-Incommunicado.def"
+ delay: 60e3
+
+ req: { action: 420, status: COMPLETE }
+}
+
+
+action: {
+ id: 580,
+ type: marker,
+ delay: 250e3,
+
+ req: { action: 430, status: COMPLETE }
+}
+
+action: {
+ id: 585,
+ type: marker,
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 12, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 590,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Garrison,
+ text: "c05.a590",
+ file: "Actions/09a-garrison-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 580, status: COMPLETE },
+ req: { action: 585, status: COMPLETE, not: true },
+
+ target_type: station,
+ target_id: 3,
+ target_iff: 2,
+ target_kill: "Garrison Laboratory",
+}
+
+
+//
+// TROCANTHER
+//
+
+action: {
+ id: 600,
+ type: zone,
+ team: 1,
+ zone: Path,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-path-sector.pcx"
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 12, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 601,
+ type: zone,
+ team: 1,
+ zone: Path,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 602,
+ type: sitrep,
+ team: 1,
+ text: "c05.a602",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 603,
+ type: orders,
+ team: 1,
+ text: "c06.a603"
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 605,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Trocanther",
+ text: "c05.a605",
+ source: SECURE,
+ file: "Actions/10-trocanther-biodomes.txt",
+ image: "Actions/10-trocanther-biodomes.pcx"
+ scene: "Scenes/10-Trocanther-Biodomes.def"
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 610,
+ type: zone,
+ team: 1,
+ zone: Narcissus,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-narcissus-sector.pcx"
+ delay: 60e3,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 620,
+ type: zone,
+ team: 1,
+ zone: Volante,
+ asset_type: fleet,
+ asset_id: 2,
+ image: "Actions/AA-volante-sector.pcx"
+ delay: 60e3,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 606,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: battle_group,
+ asset_id: 14,
+ delay: 20e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 650,
+ type: marker,
+ delay: 220e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 651,
+ type: marker,
+ delay: 40e3,
+
+ req: { action: 650, status: COMPLETE }
+}
+
+action: {
+ id: 652,
+ type: marker,
+ delay: 40e3,
+
+ req: { action: 651, status: COMPLETE }
+}
+
+action: {
+ id: 660,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "c05.a660",
+ file: "Actions/11a-blackwing-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 652, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: carrier_group, group_id: 9, comp: GT, score: 500 },
+
+ target_type: carrier_group,
+ target_id: 9,
+ target_iff: 2,
+ target_kill: "Blackwing",
+ target_kill: "Variak",
+ target_kill: "Talus",
+ target_kill: "Ramek",
+ target_kill: "Senna",
+}
+
+action: {
+ id: 661,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "c05.a661",
+ file: "Actions/11b-hood-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 651, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: battle_group, group_id: 9, comp: GT, score: 500 },
+
+ target_type: battle_group,
+ target_id: 14,
+ target_iff: 2,
+ target_kill: "Hood",
+ target_kill: "Belerephon",
+ target_kill: "Firebolt",
+ target_kill: "Radelix",
+}
+
+
+action: {
+ id: 662,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "c05.a662",
+ file: "Actions/11c-omega-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 650, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: battle_group, group_id: 10, comp: GT, score: 500 },
+
+ target_type: battle_group,
+ target_id: 15,
+ target_iff: 2,
+ target_kill: "Omega",
+ target_kill: "Hephaestus",
+ target_kill: "Mindalante",
+ target_kill: "Arcturus",
+}
+
+
+action: {
+ id: 680,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.a680",
+ source: FORCOM,
+ file: "Actions/12-endgame.txt",
+ image: "Actions/banner-alliance.pcx",
+ scene: "Scenes/12-Endgame.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 9, comp: LT, score: 4000 },
+}
+
+
+//
+// MARAK
+//
+
+// Event 800 is the marker for the beginning of the
+// Marakan phase of this campaign. Once this event
+// is COMPLETE, the player cannot lose the game.
+
+action: {
+ id: 800,
+ type: marker,
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 9, comp: LT, score: 3000 },
+}
+
+// first, place all working marakan fleets on reserve:
+
+action: {
+ id: 801,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 802,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 2,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 803,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 9,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+// then, release the zolons and hulks:
+
+action: {
+ id: 810,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 811,
+ type: zone,
+ team: 4,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 812,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 10,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 820,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 40e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 821,
+ type: system,
+ team: 4,
+ system: Marak,
+ asset_type: fleet,
+ asset_id: 2,
+
+ req: { action: 820, status: COMPLETE }
+}
+
+action: {
+ id: 823,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 3,
+ delay: 80e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 824,
+ type: system,
+ team: 4,
+ system: Marak,
+ asset_type: fleet,
+ asset_id: 3,
+
+ req: { action: 823, status: COMPLETE }
+}
+
+
+
+//
+// Finally, transfer the Alliance fleets to Xanthe in Marak system:
+//
+
+action: {
+ id: 830,
+ type: zone,
+ team: 1,
+ zone: Xanthe,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-xanthe-sector.pcx",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 831,
+ type: zone,
+ team: 1,
+ zone: Xanthe,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 835,
+ type: zone,
+ team: 1,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-marak-sector.pcx",
+ delay: 70e3,
+
+ req: { action: 830, status: COMPLETE }
+}
+
+action: {
+ id: 836,
+ type: zone,
+ team: 1,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 835, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 840,
+ type: sitrep,
+ team: 1,
+ text: "c05.a840",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 841,
+ type: orders,
+ team: 1,
+ text: "c05.a841"
+
+ req: { action: 800, status: COMPLETE }
+}
+
+
+
+//
+// FINAL SEQUENCE:
+//
+
+
+action: {
+ id: 880,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 881,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 2,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 882,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 3,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 885,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.a885",
+ source: Mail,
+ file: "Actions/m2-final-message.txt",
+ image: "Actions/m0-mail-icon.pcx",
+ scene: "Scenes/m2-Final-Message.def"
+
+ delay: 50e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 890,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.a890",
+ source: FORCOM,
+ file: "Actions/15-disappearance.txt",
+ image: "Actions/banner-alliance.pcx",
+ scene: "Scenes/15-Disappearance.def"
+
+ delay: 200e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+
+
+//
+// END GAMES!!!
+//
+// THE THRILL OF VICTORY (EVENT 800 COMPLETE)
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "c05.victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ delay: 250e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+// THE MIDDLE ROAD (EVENT 800 COMPLETE)
+
+action: {
+ id: 901,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "c05.victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 902,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "c05.victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 903,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "c05.victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+// THE AGONY OF DEFEAT (EVENT 400 NOT COMPLETE) - ISHAM / RADIX
+
+action: {
+ id: 910,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 911,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 912,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 913,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+
+// THE AGONY OF DEFEAT (EVENT 600 NOT COMPLETE) - GARRISON
+
+action: {
+ id: 920,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 921,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 922,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 923,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+
+// THE AGONY OF DEFEAT (EVENT 800 NOT COMPLETE) - TROCANTHER
+
+action: {
+ id: 930,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 931,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 932,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 933,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "c05.defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
diff --git a/data/content/Content/content.txt b/data/content/Content/content.txt
new file mode 100644
index 0000000..fbd74ec
--- /dev/null
+++ b/data/content/Content/content.txt
@@ -0,0 +1,2459 @@
+# +--------------------------------------------------------------------+
+# Project: Starshatter 5.0
+# File: content.txt
+#
+# Default ENGLISH / USA text
+#
+# Destroyer Studios LLC
+# Copyright © 1997-2007. All Rights Reserved.
+# +--------------------------------------------------------------------+
+
+FORCOM = FORCOM
+TACNET = TACNET
+SECURE = SECURE
+Mail = Mail
+News = News
+Unknown = Unknown
+Pending = Pending
+Active = Active
+Skipped = Skipped
+Aborted = Aborted
+Failed = Failed
+Complete = Complete
+Reserve = Reserve
+Secret = Secret
+Known = Known
+Located = Located
+Tracked = Tracked
+
+Patrol = Patrol
+Sweep = Sweep
+Intercept = Intercept
+Airborne Patrol = Airborne Patrol
+Airborne Sweep = Airborne Sweep
+Airborne Intercept = Airborne Intercept
+Strike = Strike
+Assault = Assault
+Defend = Defend
+Escort = Escort
+Freight Escort = Freight Escort
+Shuttle Escort = Shuttle Escort
+Strike Escort = Strike Escort
+Intel = Intel
+Scout = Scout
+Recon = Recon
+Blockade = Blockade
+Fleet = Fleet
+Attack = Attack
+Flight Ops = Flight Ops
+Transport = Transport
+Cargo = Cargo
+Training = Training
+Misc = Misc
+
+[unknown] = [unknown]
+killed.in.action = (KIA)
+ASTEROID = ASTEROID
+DEBRIS = DEBRIS
+
+ordinal.0 = th
+ordinal.1 = st
+ordinal.2 = nd
+ordinal.3 = rd
+ordinal.4 = th
+ordinal.5 = th
+ordinal.6 = th
+ordinal.7 = th
+ordinal.8 = th
+ordinal.9 = th
+ordinal.10 = th
+ordinal.11 = th
+ordinal.12 = th
+ordinal.13 = th
+ordinal.14 = th
+ordinal.15 = th
+ordinal.16 = th
+ordinal.17 = th
+ordinal.18 = th
+ordinal.19 = th
+
+main.auth-invalid = Starshatter is not properly installed. Please re-install from the original installation program.\nMake sure you have provided a valid CDKEY.\n\nFor more information, visit http://www.matrixgames.com
+main.title.error = Starshatter - Error
+
+Starshatter.load.general = Loading...
+Starshatter.load.tac-ref = Loading Reference Data...
+Starshatter.load.campaign = Initializing Campaign Data...
+Starshatter.load.start = Starting Campaign...
+Starshatter.load.drives = Initializing Drives...
+Starshatter.load.explosions = Initializing Explosions...
+Starshatter.load.systems = Initializing Systems...
+Starshatter.load.ships = Initializing Ships...
+Starshatter.load.hud = Initializing HUD/MFDs...
+Starshatter.load.menus = Initializing Menus...
+Starshatter.load.simulation = Initializing Simulation...
+Starshatter.load.viewscreen = Initializing Viewscreen...
+Starshatter.load.mission = Loading Mission...
+Starshatter.load.loaded = Loaded
+Starshatter.load.ready = Ready
+Starshatter.load.complete = Complete
+
+CombatGroup.FLEET = Fleet
+CombatGroup.CARRIER_GROUP = Carrier Battle Group
+CombatGroup.BATTLE_GROUP = Cruiser Battle Group
+CombatGroup.DESTROYER_SQUADRON = Destroyer Squadron
+CombatGroup.WING = Tactical Fighter Wing
+CombatGroup.ATTACK_SQUADRON = Attack Squadron
+CombatGroup.FIGHTER_SQUADRON = Fighter Squadron
+CombatGroup.INTERCEPT_SQUADRON = Intercept Squadron
+CombatGroup.LCA_SQUADRON = LCA Squadron
+CombatGroup.BATTALION = Battalion
+CombatGroup.STATION = Station
+CombatGroup.STARBASE = Starbase
+CombatGroup.MINEFIELD = Minefield
+CombatGroup.BATTERY = Defense Battery
+CombatGroup.MISSILE = Missile Battery
+CombatGroup.C3I = C3I Station
+CombatGroup.COMM_RELAY = Comm Station
+CombatGroup.EARLY_WARNING = Early Warning Ctr
+CombatGroup.FWD_CONTROL_CTR = Fwd Control Ctr
+CombatGroup.ECM = ECM Station
+CombatGroup.SUPPORT = Support Group
+CombatGroup.COURIER = Courier Group
+CombatGroup.SUPPLY = Supply Group
+CombatGroup.REPAIR = Support Group
+CombatGroup.MEDICAL = MedEvac Group
+CombatGroup.default = Civilian Traffic
+
+CombatGroup.abrv.FLEET = FLEET
+CombatGroup.abrv.CARRIER_GROUP = CVBG
+CombatGroup.abrv.BATTLE_GROUP = CRBG
+CombatGroup.abrv.DESTROYER_SQUADRON = DESRON
+CombatGroup.abrv.WING = TFW
+CombatGroup.abrv.ATTACK_SQUADRON = AS
+CombatGroup.abrv.FIGHTER_SQUADRON = FS
+CombatGroup.abrv.INTERCEPT_SQUADRON = IS
+CombatGroup.abrv.LCA_SQUADRON = LS
+CombatGroup.abrv.BATTALION = Battalion
+CombatGroup.abrv.STATION = Station
+CombatGroup.abrv.STARBASE = Starbase
+CombatGroup.abrv.MINEFIELD = Minefield
+CombatGroup.abrv.BATTERY = DFNS BTTY
+CombatGroup.abrv.MISSILE = DFNS BTTY
+CombatGroup.abrv.C3I = SI
+CombatGroup.abrv.COMM_RELAY = SI
+CombatGroup.abrv.EARLY_WARNING = SI
+CombatGroup.abrv.FWD_CONTROL_CTR = SI
+CombatGroup.abrv.ECM = SI
+CombatGroup.abrv.SUPPORT = SUP
+CombatGroup.abrv.COURIER = SUP
+CombatGroup.abrv.SUPPLY = SUP
+CombatGroup.abrv.REPAIR = SUP
+CombatGroup.abrv.MEDICAL = SUP
+CombatGroup.abrv.default = Civ Traf
+
+CmdMissionsDlg.training = Training - Passed
+CmdOrdersDlg.situation = Situation
+CmdOrdersDlg.orders = Orders
+CmpnScreen.training = Training Complete
+CmpnScreen.congrats = Congratulations %s %s! You have completed the full course of training scenarios. Your permament records have been updated and you may return to your regular duties.
+CmpSelectDlg.select_msg = Select a campaign and press Accept.\n
+CmpSelectDlg.scenario = Scenario:
+CmpSelectDlg.campaign-time = Campaign Time:
+CmpSelectDlg.assignment = Assignment:
+CmpSelectDlg.team-score = Team Score:
+CmpSelectDlg.already-loading= Starshatter is already loading a campaign.\nPlease wait...
+CmpSelectDlg.are-you-sure = Are you sure you want to delete saved game\n'%s'?
+CmpSelectDlg.confirm = Confirm Delete
+CmpSelectDlg.loading = Loading...
+
+DebriefDlg.mission-name = Mission Name
+DebriefDlg.unspecified = Unspecified
+DebriefDlg.unknown = Unknown
+DebriefDlg.no-stats = No Stats Found
+DebriefDlg.points = Points
+
+EngDlg.OK = OK
+EngDlg.FAIL = FAIL
+EngDlg.WARN = WARN
+EngDlg.MAINT = MAINT
+EngDlg.CRITICAL = CRITICAL
+EngDlg.DEGRADED = DEGRADED
+EngDlg.NOMINAL = NOMINAL
+EngDlg.REPAIR = REPAIR
+
+FltDlg.ACTIVE = ACTIVE
+FltDlg.PENDING = PENDING
+FltDlg.Open = Open
+FltDlg.Unknown = Unknown
+
+JoyDlg.axis.0 = X Axis
+JoyDlg.axis.1 = Y Axis
+JoyDlg.axis.2 = Z Axis
+JoyDlg.axis.3 = X Rotation
+JoyDlg.axis.4 = Y Rotation
+JoyDlg.axis.5 = Z Rotation
+JoyDlg.axis.6 = Slider 1
+JoyDlg.axis.7 = Slider 2
+JoyDlg.select = Select
+JoyDlg.unmapped = Unmapped
+
+LoadDlg.campaign = Loading Campaign
+LoadDlg.tac-ref = Loading Tactical Reference
+LoadDlg.mission = Loading Mission
+
+MsnDlg.no-mission = No Mission
+MsnDlg.found-errors = Starshatter encountered the following errors while trying to load this mission:\n\n
+MsnDlg.target = Target:
+MsnDlg.undefined = Undefined
+MsnDlg.default = (default)
+MsnDlg.ATTACK = ATTACK
+MsnDlg.PATROL = PATROL
+
+MsnSelectDlg.choose = Select a mission and press Accept.
+MsnSelectDlg.mission-type = Mission Type:
+MsnSelectDlg.scenario = Scenario:
+MsnSelectDlg.location = Location:
+MsnSelectDlg.start-time = Start Time:
+MsnSelectDlg.sector = Sector
+MsnSelectDlg.system = System
+MsnSelectDlg.are-you-sure = Are you sure you want to delete the mission\n'%s'?
+MsnSelectDlg.confirm-delete = Confirm Delete
+
+NavDlg.filter.SYSTEM = SYSTEM
+NavDlg.filter.PLANET = PLANET
+NavDlg.filter.SECTOR = SECTOR
+NavDlg.filter.STATION = STATION
+NavDlg.filter.STARSHIP = STARSHIP
+NavDlg.filter.FIGHTER = FIGHTER
+NavDlg.commit = Commit
+NavDlg.cancel = Cancel
+NavDlg.loc-labels = Location\nSystem:\nSector:\nCoords:
+NavDlg.dst-labels = Destination\nSystem:\nSector:\nCoords:\nDist:
+NavDlg.destination = Destination
+NavDlg.not-avail = n/a
+NavDlg.unknown = Unknown
+NavDlg.radius = Radius:
+NavDlg.mass = Mass:
+NavDlg.orbit = Orbit:
+NavDlg.period = Period:
+NavDlg.none = None
+NavDlg.name = Name:
+NavDlg.class = Class:
+NavDlg.sector = Sector:
+NavDlg.shield = Shield:
+NavDlg.hull = Hull:
+NavDlg.range = Range:
+NavDlg.orders = Orders:
+NavDlg.units.seconds = s
+NavDlg.units.minutes = m
+NavDlg.units.hours = h
+NavDlg.units.days = d
+NavDlg.units.years = y
+NavDlg.units.kilometers = km
+NavDlg.units.tonnes = t
+
+NetClientDlg.offline = Offline
+NetClientDlg.lobby = Lobby
+NetClientDlg.briefing = Briefing
+NetClientDlg.active = Active
+NetClientDlg.debriefing = Debriefing
+NetClientDlg.persistent = Persistent
+NetClientDlg.not-avail = N/A
+
+NetGameClient.no-ship = No Ship
+NetGameClient.local-accept = Local Player '%s' has been accepted as '%s'\n
+NetGameClient.remote-join = Remote Player '%s' has joined as '%s'\n
+NetGameClient.remote-discon = Remote Player '%s' has disconnected\n
+NetGameClient.remote-quit = Remote Player '%s' has quit\n
+NetGameClient.game-over = Network Game Over\n
+NetGameClient.discon-detect = Network Disconnect Detected\n
+NetGameClient.please-exit = Please exit this mission and reconnect to the server.\n
+NetGameClient.unknown = UNKNOWN
+NetGameClient.chat.unknown = (unknown)
+
+NetGameServer.join-request = Remote Player '%s' has asked to join as '%s %d'\n
+NetGameServer.remote-discon = Remote Player '%s' has disconnected\n
+NetGameServer.join-announce = Announcing Join...
+NetGameServer.remote-quit = Remote Player '%s' has quit\n
+NetGameServer.unknown = UNKNOWN
+NetGameServer.chat.unknown = (unknown)
+
+NetUnitDlg.are-you-sure = Are you sure you want to ban the player '%s'?
+NetUnitDlg.confirm-ban = Confirm Player Ban
+
+PlayerDlg.are-you-sure = Are you sure you want to delete the player '%s'?
+PlayerDlg.confirm-delete = Confirm Delete
+
+QuantumView.menu = QUANTUM DEST
+
+QuitView.too-soon = You cannot end the mission within the first 60 seconds
+QuitView.threats-present = You cannot end the mission while threats are present
+QuitView.abort = You may press ESC+2 to ABORT
+
+HUDView.symbol.fighter = F
+HUDView.symbol.starship = S
+HUDView.symbol.torpedo = T
+HUDView.symbol.shield = S
+HUDView.symbol.hull = H
+HUDView.symbol.degrees = deg
+HUDView.mode.tactical = TAC
+HUDView.mode.navigation = NAV
+HUDView.mode.landing = ILS
+HUDView.PAUSED = PAUSED
+HUDView.altitude = ALT
+HUDView.Pitch = Pitch
+HUDView.Heading = Heading
+HUDView.gear-down = GEAR DOWN
+HUDView.threat-warn = SENSOR LOCK
+HUDView.quantum-jump = QUANTUM JUMP
+HUDView.missile-warn = WARNING: MISSILE INBOUND
+HUDView.AUTO = AUTO
+HUDView.SHOOT = SHOOT
+HUDView.SHIELD = SHIELD
+HUDView.DECOY = DECOY
+HUDView.NET-GAME-OVER = NET GAME OVER
+HUDView.OBSERVER = OBSERVER
+HUDView.No-Range = No Range
+HUDView.Auto-Nav = Auto Nav
+HUDView.Nav = Nav
+HUDView.time-enroute = ETR
+HUDView.HOLD = HOLD
+HUDView.UNKNOWN = UNK
+HUDView.REACTOR = REAC
+HUDView.DRIVE = DRIVE
+HUDView.QUANTUM = QUANTUM
+HUDView.SHIELD = SHIELD
+HUDView.SENSOR = SENSOR
+HUDView.COMPUTER = COMP
+HUDView.THRUSTER = THRUST
+HUDView.FLTDECK = FLTDECK
+HUDView.DECOY = DECOY
+HUDView.No-Instructions = No Instructions
+HUDView.SUCCESSFUL-LANDING = SUCCESSFUL LANDING
+HUDView.DOCKING-COMPLETE = DOCKING COMPLETE
+HUDView.Wide-Angle = Wide Angle
+
+TacView.contact = Contact
+TacView.name = Name:
+TacView.type = Type:
+TacView.shield = Shld:
+TacView.hull = Hull:
+TacView.range = Rng:
+TacView.speed = Spd:
+TacView.heading = Hdg:
+TacView.active = Act:
+TacView.passive = Pas:
+TacView.orders = Ords:
+TacView.starship = Starship
+TacView.fighter = Fighter
+
+TacView.menu.main = MAIN
+TacView.item.camera = Camera
+TacView.item.instructions = INSTR
+TacView.item.navigation = NAV
+TacView.item.engineering = ENG
+TacView.item.weapons = WEP
+TacView.item.flight = FLIGHT
+TacView.item.command = COMMAND
+
+TacView.menu.view = VIEW
+TacView.item.forward = Forward
+TacView.item.chase = Chase
+TacView.item.orbit = Orbit
+TacView.item.padlock = Padlock
+
+TacView.menu.emcon = SENSORS
+TacView.item.emcon-1 = Goto EMCON 1
+TacView.item.emcon-2 = Goto EMCON 2
+TacView.item.emcon-3 = Goto EMCON 3
+TacView.item.probe = Launch Probe
+
+TacView.menu.quantum = QUANTUM
+TacView.menu.farcast = FARCAST
+
+TacView.menu.action = ACTION
+TacView.item.engage = Engage
+TacView.item.bracket = Bracket
+TacView.item.escort = Escort
+TacView.item.identify = Identify
+TacView.item.hold = Hold
+
+TacView.menu.formation = FORMATION
+TacView.item.diamond = Diamond
+TacView.item.spread = Spread
+TacView.item.box = Box
+TacView.item.trail = Trail
+
+TacView.menu.context = CONTEXT
+TacView.item.action = Action
+TacView.item.formation = Formation
+TacView.item.sensors = Sensors
+TacView.item.patrol = Move Patrol
+TacView.item.cancel = Cancel Orders
+TacView.item.rtb = Return to Base
+TacView.item.dock = Dock With
+TacView.item.quantum = Quantum
+TacView.item.farcast = Farcast
+
+MapView.title.Galaxy = Galaxy
+MapView.title.Starsystem = System:
+MapView.title.Sector = Sector:
+MapView.title.Ship = Ship:
+MapView.info.Resolution = Resolution
+
+MapView.menu.STARSYSTEM = SYSTEMS
+MapView.menu.SECTOR = SECTORS
+MapView.menu.MAP = MAP
+MapView.menu.SHIP = SHIP
+MapView.menu.ACTION = ACTION
+MapView.menu.FORMATION = FORMATION
+MapView.menu.SPEED = SPEED
+MapView.menu.HOLD = HOLD
+MapView.menu.FARCAST = FARCAST
+MapView.menu.OBJECTIVE = OBJECTIVE
+MapView.menu.NAVPT = NAVPT
+MapView.item.Starsystem = System
+MapView.item.Sector = Sector
+MapView.item.Add-Nav = Add Nav
+MapView.item.Del-Nav = Delete
+MapView.item.Clear-All = Clear All
+MapView.item.Vector = Vector
+MapView.item.Launch = Launch
+MapView.item.Dock = Dock
+MapView.item.RTB = RTB
+MapView.item.Defend = Defend
+MapView.item.Escort = Escort
+MapView.item.Patrol = Patrol
+MapView.item.Sweep = Sweep
+MapView.item.Intercept = Intercept
+MapView.item.Strike = Strike
+MapView.item.Assault = Assault
+MapView.item.Recon = Recon
+MapView.item.Unknown = Unknown
+MapView.item.Diamond = Diamond
+MapView.item.Spread = Spread
+MapView.item.Box = Box
+MapView.item.Trail = Trail
+MapView.item.None = None
+MapView.item.1-Minute = 1 Min
+MapView.item.5-Minutes = 5 Min
+MapView.item.10-Minutes = 10 Min
+MapView.item.15-Minutes = 15 Min
+MapView.item.Use-Quantum = Use quantum drive
+MapView.item.Use-Farcast = Use farcaster
+MapView.item.Action = Action
+MapView.item.Objective = Objective
+MapView.item.Formation = Formation
+MapView.item.Speed = Speed
+MapView.item.Hold = Hold
+MapView.item.Farcast = Farcast
+MapView.item.not-available = n/a
+MapView.item.no-system = No System
+
+RadioView.menu.TARGET = TARGET
+RadioView.item.attack = 1. Attack Tgt
+RadioView.item.bracket = 2. Bracket Tgt
+RadioView.item.escort = 3. Escort Tgt
+
+RadioView.menu.COMBAT = COMBAT
+RadioView.item.cover = 1. Cover Me
+RadioView.item.break-attack = 2. Break/Attack
+RadioView.item.form-up = 3. Form Up
+
+RadioView.menu.FORMATION = FORMATION
+RadioView.item.diamond = 1. Goto Diamond
+RadioView.item.spread = 2. Goto Spread
+RadioView.item.box = 3. Goto Box
+RadioView.item.trail = 4. Goto Trail
+
+RadioView.menu.SENSORS = SENSORS
+RadioView.item.emcon-1 = 1. Goto EMCON 1
+RadioView.item.emcon-2 = 2. Goto EMCON 2
+RadioView.item.emcon-3 = 3. Goto EMCON 3
+RadioView.item.probe = 4. Launch Probe
+
+RadioView.menu.MISSION = MISSION
+RadioView.item.skip-navpt = 1. Skip Navpt
+RadioView.item.resume = 2. Resume Mission
+RadioView.item.rtb = 3. Return to Base
+
+RadioView.menu.WINGMAN = WINGMAN
+RadioView.menu.ELEMENT = ELEMENT
+RadioView.item.target = 1. Target
+RadioView.item.combat = 2. Combat
+RadioView.item.formation = 3. Formation
+RadioView.item.mission = 4. Mission
+RadioView.item.sensors = 5. Sensors
+
+RadioView.menu.CONTROL = CONTROL
+RadioView.item.picture = 1. Request Picture
+RadioView.item.backup = 2. Request Backup
+RadioView.item.call-inbound = 3. Call Inbound
+RadioView.item.call-finals = 4. Call Finals
+
+RadioView.menu.RADIO = RADIO
+RadioView.item.wingman = 1. Wingman
+RadioView.item.element = 2. Element
+RadioView.item.control = 3. Control
+
+RadioView.item.next-page = 0. Next (pg %d of %d)
+RadioView.item.not-avail = (N/A)
+
+MFD.mode.passive = PAS
+MFD.mode.standard = STD
+MFD.mode.auto-combat = ACM
+MFD.mode.ground = GND
+MFD.mode.combined = STD
+MFD.mode.field-of-view = FOV
+MFD.mode.horizontal = HSD
+MFD.mode.3D = 3D
+MFD.probe = P
+MFD.inactive = No Sensor
+MFD.phase.DOCKED = Docked
+MFD.phase.ALERT = Alert
+MFD.phase.LOCKED = Locked
+MFD.phase.LAUNCH = Launch
+MFD.phase.TAKEOFF = Takeoff
+MFD.phase.ACTIVE = Active
+MFD.phase.APPROACH = Approach
+MFD.phase.RECOVERY = Recovery
+MFD.phase.DOCKING = Docking
+MFD.status.THRUST = THRUST
+MFD.status.FUEL = FUEL
+MFD.status.QUANTUM = QUANTUM
+MFD.status.HULL = HULL
+MFD.status.SHIELD = SHIELD
+MFD.status.GUNS = GUNS
+MFD.status.DECOY = DECOY
+MFD.status.LIVES = LIVES
+MFD.status.SENSOR = SENSOR
+MFD.status.OFFLINE = OFFLINE
+MFD.status.EMCON = EMCON
+MFD.status.MODE = MODE
+MFD.status.SENSOR-OFF = Sensor Off
+MFD.status.SYSTEMS = SYSTEMS
+
+Mission.unspecified = Unspecified
+Mission.unknown = Unknown
+Mission.error.no-file = \nCan't Save Mission, file/path unspecified.\n
+Mission.error.no-serial = \nCan't Save Mission, failed to serialize.\n
+Mission.error.no-elem = ERROR: No elements found in mission '%s'\n
+Mission.error.unnamed-elem = ERROR: Unnamed element found in mission '%s'\n
+Mission.error.wrong-sector = ERROR: Player '%s' is not in mission sector '%s'\n
+Mission.error.extra-player = ERROR: Extra player '%s' found in mission '%s'\n
+Mission.error.no-player = ERROR: No player element found in mission '%s'\n
+Mission.error.unknown-ship = ERROR: unknown ship design '%s' in mission '%s'\n
+Mission.error.out-of-order = ERROR: design must come before skin in mission '%s'\n
+Mission.error.bad-skin = ERROR: embedded skins not supported in mission '%s'\n
+Mission.error.no-objective = ERROR: order struct missing for element '%s' in '%s'\n
+Mission.error.no-ship = ERROR: ship struct missing for element '%s' in '%s'\n
+Mission.error.no-navpt = ERROR: order struct missing for element '%s' in '%s'\n
+Mission.error.no-loadout = ERROR: loadout struct missing for element '%s' in '%s'\n
+
+
+RadioHandler.no-hangar = We don't even have a hangar!
+RadioHandler.all-full = All slots are full. Check alternate landing site.
+RadioHandler.too-far-away = Proceed to %s sector and request clearance when in range.
+RadioHandler.cleared = You are cleared inbound to %s.
+RadioHandler.sequenced = You are number %d inbound to %s.
+RadioHandler.help-enroute = Help is on the way.
+RadioHandler.no-help-for-you= No ships available at present.
+
+
+form.main.start = Start
+form.main.start.alt = Start a new game, or resume your current game
+form.main.campaign = Campaign
+form.main.campaign.alt = Start a new dynamic campaign, or load a saved game
+form.main.mission = Mission
+form.main.mission.alt = Play or create a scripted mission exercise
+form.main.multiplayer = Multiplayer
+form.main.multiplayer.alt = Start or join a multiplayer scenario
+form.main.logbook = Logbook
+form.main.logbook.alt = Manage your logbook and player preferences
+form.main.options = Options
+form.main.options.alt = Audio, Video, Gameplay, Control, and Mod configuration options
+form.main.reference = Tac Reference
+form.main.reference.alt = View ship and weapon stats and mission roles
+form.main.exit = Exit
+form.main.exit.alt = Exit Starshatter and return to Windows
+
+form.ok = OK
+form.apply = Apply
+form.cancel = Cancel
+form.close = Close
+form.save = Save
+form.exit = Exit
+form.name = Name
+form.value = Value
+form.accept = Accept
+form.commit = Commit
+form.disable = Disable
+form.enable = Enable
+
+form.options.title = Options
+form.options.tab.video = Video
+form.options.tab.audio = Audio
+form.options.tab.controls = Controls
+form.options.tab.gameplay = Gameplay
+form.options.tab.mods = Mod Config
+
+form.audio.volume.effects = Effects Volume:
+form.audio.volume.gui = GUI Volume:
+form.audio.volume.warning = Warning Volume:
+form.audio.volume.vox = Vox Volume:
+form.audio.music.menu = Menu Music:
+form.audio.music.game = In Game Music:
+
+form.gameplay.flight-model = Flight Model:
+form.gameplay.flying-start = Flying Start:
+form.gameplay.landings = Landings:
+form.gameplay.ai-difficulty = AI Difficulty:
+form.gameplay.hud-mode = HUD Mode:
+form.gameplay.hud-color = HUD Color:
+form.gameplay.friendly-fire = Friendly Fire:
+form.gameplay.ref-grid = Reference Grid:
+form.gameplay.gunsight = Gunsight:
+
+form.gameplay.flight-model.alt = Select the flight model to be used by all ships and fighters in the game.\n\n* The Standard model uses zero-drag Newtonian physics and is similar to Terminus or IWar. This model also uses realistic aerodynamics when flying in a planetary atmosphere.\n\n* The Relaxed model uses Newtonian physics, with added drag to make control easier. This model is similar to that of EVE or Jumpgate.\n\n* The Arcade model keeps your ship flying in the direction it is pointing. This model is similar to that of the Wing Commander games.
+form.gameplay.flying-start.alt = Choose whether to begin campaign missions on the flight deck or in space.\n\n* If Flying Start is disabled, you will begin all fighter-based missions in the dynamic campaign on the flight deck or runway, ready to launch.\n\n* If Flying Start is enabled, you will begin fighter-based missions in the dynamic campaign already in flight. This setting will get you into the action faster by skipping the launch procedures.\n\n
+form.gameplay.landings.alt = Select the landing model that your fighter will use in the game.\n\n* The Standard model takes landing velocity into account and requires a softer touch to keep from damaging your ship.\n\n* The Easier model makes it easier to land your bird under adverse conditions.
+form.gameplay.ai-difficulty.alt = Select the AI Difficulty level that you wish to face in the game.\n\n* The Ace level is the hardest, with AI pilots that are good shots and very aggressive.\n\n* The Veteran level is easier. Enemy pilots are still somewhat aggressive, but are less skilled at defense.\n\n* The Rookie level is very easy. Enemy pilots have poor threat reaction, rarely use missiles, and fly more slowly.
+form.gameplay.hud-mode.alt = Select the HUD that your ship will use in the game.\n\n* The Standard HUD provides more information but is more complex to read.\n\n* The Simplified HUD displays only the most important information and is easier to read.\n\nFor best results, use the Standard HUD with the Standard flight model, and the Simplified HUD with the Arcade flight model.
+form.gameplay.hud-color.alt = Select the default HUD color that your ship will use in the game. You can always switch between HUD colors during play by pressing Shift+H.\n\nTip: Switch to the black HUD color during the game when flying atmospheric missions under daylight conditions.
+form.gameplay.friendly-fire.alt = Select the amount of damage caused by friendly fire incidents. Full damage means that friendly fire is just as deadly as fire targeted at enemies. None means that weapons fire will pass right through friendly ships.\n\nTip: You can use this setting to make cooperative network play safer and easier.
+form.gameplay.ref-grid.alt = Choose whether to enable or disable the reference grid displayed in the 3D tactical viewer.
+form.gameplay.gunsight.alt = Select the type of gunsight to use in the game.\n\n* The Standard LCOS pipper is similar to a modern jet fighter. Place the pipper over the target and pull the trigger.\n\n* The Lead Indicator gunsight places a lead diamond in front of the target. Line up the gun crosshairs and the lead diamond to ensure a gun hit.\n\nIf you prefer to use 'Virtual Joystick' mouse control, you will probably have more success with the Lead Indicator gunsight.
+
+form.gameplay.standard = Standard
+form.gameplay.relaxed = Relaxed
+form.gameplay.arcade = Arcade
+form.gameplay.disabled = Disabled
+form.gameplay.enabled = Enabled
+form.gameplay.easier = Easier
+form.gameplay.ace = Ace
+form.gameplay.veteran = Veteran
+form.gameplay.rookie = Rookie
+form.gameplay.simplified = Simplified
+form.gameplay.green = Green
+form.gameplay.blue = Blue
+form.gameplay.orange = Orange
+form.gameplay.black = Black
+form.gameplay.none = None
+form.gameplay.25 = 25% Damage
+form.gameplay.50 = 50% Damage
+form.gameplay.75 = 75% Damage
+form.gameplay.full = Full Damage
+form.gameplay.standard-lcos = Standard LCOS
+form.gameplay.lead-diamond = Lead Indicator
+
+form.video.mode = Video Mode:
+form.video.max-texture = Max Texture Size:
+form.video.shadows = Shadows:
+form.video.specular-maps = Specular Maps:
+form.video.bump-maps = Bump Maps:
+form.video.terrain-detail = Terrain Detail:
+form.video.terrain-texture = Terrain Texture:
+form.video.lens-flare = Lens Flare:
+form.video.corona = Corona:
+form.video.nebula = Nebula:
+form.video.space-dust = Space Dust:
+form.video.gamma-level = Gamma Level:
+form.video.low = Low
+form.video.medium = Medium
+form.video.high = High
+form.video.none = None
+form.video.some = Some
+form.video.lots = Lots
+
+form.control.flight = Flight
+form.control.weapons = Wep
+form.control.view = View
+form.control.misc = Misc
+form.control.style = Control Style:
+form.control.joystick = Joystick:
+form.control.throttle = Throttle:
+form.control.rudder = Rudder:
+form.control.sensitivity = Sensitivity:
+form.control.joy-axis = Joy Axis:
+form.control.mouse = Mouse:
+form.control.inverted = Inverted:
+form.control.aircraft = Aircraft
+form.control.spacecraft = Spacecraft
+form.control.enable = Enable
+form.control.disable = Disable
+form.control.joy1 = Joystick 1
+form.control.joy2 = Joystick 2
+form.control.both = Both
+form.control.setup = Setup...
+form.control.mouse-look = Mouse Look
+form.control.virtual-stick = Virtual Stick
+
+form.award.title = Congratulations
+
+form.cmd.title = Operational Command
+form.cmd.orders = Orders
+form.cmd.theater = Theater
+form.cmd.forces = Forces
+form.cmd.intel = Intel
+form.cmd.missions = Missions
+
+form.cmd.force.groups = Combat Groups
+form.cmd.force.transfer = Transfer
+
+form.cmd.intel.newsfeed = Newsfeed
+form.cmd.intel.play = Play
+form.cmd.intel.date = DATE
+form.cmd.intel.title = TITLE
+form.cmd.intel.location = LOC
+form.cmd.intel.source = SOURCE
+
+form.cmd.mission.roster = Mission Roster
+form.cmd.mission.mission = MISSION
+form.cmd.mission.type = TYPE
+form.cmd.mission.start = START
+form.cmd.mission.objectives = Objectives
+
+form.cmd.msg.title = Message Title
+form.cmd.msg.text = MessageText
+
+form.cmd.theater.galaxy = Galaxy
+form.cmd.theater.system = System
+form.cmd.theater.sector = Sector
+
+form.select.campaigns = Dynamic Campaigns
+form.select.new = New
+form.select.saved = Saved
+form.select.delete = Delete
+form.select.campaign = Campaign
+form.select.description = Description
+
+form.confirm.title = Are You Sure?
+form.confirm.message = Are you sure you want to take this action?
+
+form.debrief.title = Mission Debriefing
+form.debrief.system = System:
+form.debrief.sector = Sector:
+form.debrief.objectives = Objectives
+form.debrief.score = Mission Score
+form.debrief.active-units = Active Units
+form.debrief.mission-summary = Mission Summary
+form.debrief.mission-events = Mission Log
+
+form.engineering.title = Engineering
+form.engineering.reactor-1 = Reac 1
+form.engineering.reactor-2 = Reac 2
+form.engineering.reactor-3 = Reac 3
+form.engineering.reactor-4 = Reac 4
+form.engineering.power-off = PWR OFF
+form.engineering.power-on = PWR ON
+form.engineering.override = OVERRIDE
+form.engineering.auto-repair = AUTO REPAIR
+form.engineering.power-allocation = Power Allocation
+form.engineering.capacitor-charge = Capacitor Charge
+form.engineering.components = Components
+form.engineering.repair = Repair
+form.engineering.replace = Replace
+form.engineering.repair-queue = Repair Queue
+
+form.exit.title = Exit Starshatter?
+form.exit.message = Are you sure you want to exit Starshatter and return to Windows?
+
+form.file.title = Save Game to File
+form.file.name = Name:
+form.file.files = Files:
+
+form.first-time.title = NEW PLAYER
+form.first-time.message-1 = Create a new player account. Enter your name in the box provided. The user name may be a nickname, callsign, or last name.
+form.first-time.message-2 = Select your preferred style of play. Arcade mode is similar to games such as Wing Commander or FreeSpace. Standard mode is more like Babylon 5, Independence War, or Falcon 4.0
+form.first-time.message-3 = The following option allows you to skip the training campaign, 'Operation Live Fire'. If this is your first time playing Starshatter select 'Cadet (First timer)'
+form.first-time.player-name = Player Name:
+form.first-time.play-style = Play Style:
+form.first-time.experience = Experience:
+
+form.flight.title = Flight Operations
+form.flight.squadron = Squadron
+form.flight.package = Package
+form.flight.alert = Alert
+form.flight.launch = Launch
+form.flight.standby = Standby
+form.flight.recall = Recall
+form.flight.objective = Objective
+form.flight.loadout = Loadout
+form.flight.patrol = Patrol
+form.flight.intercept = Intercept
+form.flight.assault = Assault
+form.flight.strike = Strike
+form.flight.escort = Escort
+form.flight.scout = Scout
+
+form.joystick.title = Joystick Axis Setup
+form.joystick.axis = Axis
+form.joystick.select = Select
+form.joystick.invert = Invert
+form.joystick.x-axis = X Axis:
+form.joystick.y-axis = Y Axis:
+form.joystick.rudder = Rudder:
+form.joystick.throttle = Throttle:
+form.joystick.select = Select
+form.joystick.message = Click an axis button and then move the controller to bind a new axis. You can also invert any axis by clicking the 'Invert' checkbox to the right of the select button.\n\nThen click Apply to save the new bindings, or Cancel to return to the original bindings.
+
+form.keyboard.title = Key Binding
+form.keyboard.command = Command:
+form.keyboard.current-key = Current Key:
+form.keyboard.new-key = New Key:
+form.keyboard.message = Press any key to select a new binding for this command. Then click Apply to save the new binding, or Cancel to return to the original binding.
+form.keyboard.clear-binding = Clear Binding
+form.keyboard.none-selected = none selected
+
+form.load.title = Loading Mission
+
+form.mods.instructions = <font Limerick12><color ffffff>INSTRUCTIONS:\n<font Verdana>\n\t* Download mods from the Internet, and save them in any subfolder of the Starshatter install folder.\n\t* Mods are initially disabled and are shown in the DISABLED MODS list below.\n\t* To enable a mod, select it and click the ENABLE button.\n\t* To disable an enabled mod, select it in the ENABLED MODS list and click the DISABLE button.
+form.mods.disabled-mods = Disabled Mods
+form.mods.enabled-mods = Enabled Mods
+form.mods.disable = Disable <<
+form.mods.enable = Enable >>
+
+form.mod-info.title = Mod Description
+
+form.msn-edit.title = Mission Editor
+form.msn-edit.tab.situation = SIT
+form.msn-edit.tab.package = PKG
+form.msn-edit.tab.navigation= MAP
+form.msn-edit.name = Name:
+form.msn-edit.type = Type:
+form.msn-edit.system = System:
+form.msn-edit.sector = Sector:
+form.msn-edit.description = Description
+form.msn-edit.situation = Situation
+form.msn-edit.objective = Objective
+form.msn-edit.add-element = Add Elem
+form.msn-edit.edit-element = Edit Elem
+form.msn-edit.del-element = Del Elem
+form.msn-edit.add-event = Add Event
+form.msn-edit.edit-event = Edit Event
+form.msn-edit.del-event = Del Event
+
+form.msn-edit.nav.title = Mission Editor - Navigation
+form.msn-edit.nav.galaxy = Galaxy
+form.msn-edit.nav.system = System
+form.msn-edit.nav.sector = Sector
+form.msn-edit.nav.starship = Starship
+form.msn-edit.nav.planet = Planet
+form.msn-edit.nav.station = Station
+form.msn-edit.nav.fighter = Fighter
+
+form.msn-elem.title = Mission Element
+form.msn-elem.name = Name:
+form.msn-elem.class = Class:
+form.msn-elem.design = Design:
+form.msn-elem.skin = Skin:
+form.msn-elem.size = Size:
+form.msn-elem.iff = IFF:
+form.msn-elem.role = Role:
+form.msn-elem.sector = Sector:
+form.msn-elem.location = Loc: (km)
+form.msn-elem.heading = Heading:
+form.msn-elem.hold-time = Hold Time:
+form.msn-elem.intel = Intel:
+form.msn-elem.player = Player:
+form.msn-elem.alert = Alert:
+form.msn-elem.playable = Playable:
+form.msn-elem.command-ai = Command AI:
+form.msn-elem.respawns = Respawns:
+form.msn-elem.commander = Commander:
+form.msn-elem.carrier = Carrier:
+form.msn-elem.squadron = Squadron:
+form.msn-elem.loadout = Loadout:
+form.msn-elem.objective = Objective:
+form.msn-elem.target = Target:
+form.msn-elem.north = North
+form.msn-elem.east = East
+form.msn-elem.south = South
+form.msn-elem.west = West
+
+form.msn-event.title = Mission Event
+form.msn-event.identifier = ID:
+form.msn-event.time = Time:
+form.msn-event.delay = Delay:
+form.msn-event.action = Action:
+form.msn-event.ship = Ship:
+form.msn-event.source = Source:
+form.msn-event.target = Target:
+form.msn-event.parameter = Param:
+form.msn-event.sound = Sound:
+form.msn-event.message = Message:
+form.msn-event.chance = Chance:
+form.msn-event.trigger = Trigger:
+
+form.mission.title = Mission Briefing
+form.mission.tab.situation = SIT
+form.mission.tab.package = PKG
+form.mission.tab.navigation = MAP
+form.mission.tab.loadout = WEP
+form.mission.nav.galaxy = Galaxy
+form.mission.nav.system = System
+form.mission.nav.sector = Sector
+form.mission.nav.starship = Starship
+form.mission.nav.planet = Planet
+form.mission.nav.station = Station
+form.mission.nav.fighter = Fighter
+form.mission.system = System:
+form.mission.sector = Sector:
+form.mission.objectives = Objectives
+form.mission.situation = Situation
+form.mission.elements = Package Elements
+form.mission.nav-plan = Nav Plan
+form.mission.threats = Threat Analysis
+form.mission.suspected = Suspected threats in your operating area:
+form.mission.loadout.name = NAME
+form.mission.loadout.weight = WEIGHT
+form.mission.standard-loads = Standard Loadouts
+form.mission.element = Element:
+form.mission.type = Type:
+form.mission.weight = Weight:
+form.mission.custom-loads = Custom Loadouts
+
+form.msn-select.title = Single Missions
+form.msn-select.campaign = Campaign
+form.msn-select.mission = Mission
+form.msn-select.description = Description
+form.msn-select.new = New
+form.msn-select.edit = Edit
+form.msn-select.delete = Delete
+
+form.nav.title = Navigation
+form.nav.galaxy = Galaxy
+form.nav.system = System
+form.nav.sector = Sector
+form.nav.starship = Starship
+form.nav.planet = Planet
+form.nav.station = Station
+form.nav.fighter = Fighter
+form.nav.location = Location
+form.nav.destination = Destination
+
+form.net.name = Name:
+form.net.server = Server:
+form.net.port = Port:
+form.net.password = Password:
+
+form.net.addr.title = Enter Server Address
+form.net.pass.title = Enter Server Password
+
+form.net.client.title = Multiplayer Client
+form.net.client.add = Add
+form.net.client.delete = Del
+form.net.client.local = Local Server
+form.net.client.host = Host
+form.net.client.join = Join
+form.net.client.server = SERVER NAME
+form.net.client.type = TYPE
+form.net.client.status = STATUS
+form.net.client.players = PLAYERS
+form.net.client.password = PASSWORD
+form.net.client.ping = PING
+
+form.net.lobby.title = Multiplayer Game Lobby
+form.net.lobby.missions = Missions
+form.net.lobby.players = Players
+form.net.lobby.chat = Chat
+form.net.lobby.missions = MISSIONS
+form.net.lobby.host = HOST
+form.net.lobby.player = PLAYER
+form.net.lobby.name = NAME
+form.net.lobby.message = CHAT MESSAGE
+
+form.net.server.title = Server Configuration
+form.net.server.name = Name:
+form.net.server.type = Type:
+form.net.server.game-port = Game Port:
+form.net.server.game-pass = Game Password:
+form.net.server.admin-port = Admin Port:
+form.net.server.admin-name = Admin Name:
+form.net.server.admin-pass = Admin Password:
+form.net.server.lan = LAN
+form.net.server.private = Private
+form.net.server.public = Public
+
+form.net.unit.title = Multiplayer Unit Selection
+form.net.unit.players = Players
+form.net.unit.unit-mapping = Unit Mapping
+form.net.unit.chat = Chat
+form.net.unit.select-unit = SELECT UNIT
+form.net.unit.map-unit = MAP >>
+form.net.unit.unmap-unit = MAP <<
+form.net.unit.ban-player = * BAN *
+
+form.logbook.title = Player Logbook
+form.logbook.create-player = Create
+form.logbook.delete-player = Delete
+form.logbook.player-stats = Player Stats
+form.logbook.name = Name:
+form.logbook.password = Password:
+form.logbook.squadron = Squadron:
+form.logbook.signature = Signature:
+form.logbook.created = Created:
+form.logbook.flight-time = Flight Time:
+form.logbook.missions = Missions:
+form.logbook.kills = Kills:
+form.logbook.losses = Losses:
+form.logbook.points = Points:
+form.logbook.rank = Rank:
+form.logbook.medals = Medals:
+form.logbook.chat-macros = Chat Macros:
+
+form.tac-ref.title = Tactical Reference
+form.tac-ref.ships = Ships
+form.tac-ref.weapons = Weapons
+form.tac-ref.name = Item Name
+
+
+
+award.rank.0.name = Cadet
+award.rank.0.abrv = CDT
+award.rank.0.desc = This is the entry level rank for Force:Space trainees. Cadets are authorized to fly training missions for fighter combat under appropriate trainer supervision.
+award.rank.0.grant = Congratulations, Cadet! Welcome to Force:Space! During your initial training tours, we will be observing your conduct and performance at all times. Perform your duties to the best of your ability, and you will find the stars soon within your grasp.
+award.rank.1.name = Ensign
+award.rank.1.abrv = ENS
+award.rank.1.desc = This is the first rank of Force commissioned officers. As an Ensign, you will be expected to fly fighter combat missions on a daily basis.
+award.rank.1.grant = Congratulations on your commission, Ensign! You are in officer's country now. Based on your new rank, you have authorization to undertake all fighter missions assigned to your unit. You will be expected to serve Force with courage, honor, and commitment at all times.
+award.rank.2.name = Lieutenant
+award.rank.2.abrv = LT
+award.rank.2.desc = This is the second rank of Force commissioned officers. As a Lieutenant, you will be expected to fly fighter combat missions on a daily basis.
+award.rank.2.grant = Congratulations, Lieutenant! You've earned your first bar. Don't spend so much time polishing it that you forget how to fly. Keep your head about you, it only gets harder from here.
+award.rank.3.name = Lt. Commander
+award.rank.3.abrv = LCDR
+award.rank.3.desc = This is the third rank of Force commissioned officers, and the first Command Rank. As a Lt. Commander, you may continue to fly fighter missions, or you may request transfer to a starship command.
+award.rank.3.grant = Congratulations, Lt. Commander! Welcome to the Command Ranks. Based on your record, I'm sure that your immediate supervisors will support your transfer to a Destroyer Squadron command, whenever you choose to request one.
+award.rank.4.name = Commander
+award.rank.4.abrv = CDR
+award.rank.4.desc = Commander is the fourth rank of Force commissioned officers. As a Commander, you are eligible for a Destroyer Command, or you may wish to head up a Fighter Wing.
+award.rank.4.grant = Congratulations, Commander! Force:Command is very pleased to see the progress of your career. Keep up the good work, and you will make Captain in no time.
+award.rank.5.name = Captain
+award.rank.5.abrv = CAPT
+award.rank.5.desc = Captain is the fifth rank of Force commissioned officers. As a Captain, you are eligible to command any starship squadron less than a full fleet carrier.
+award.rank.5.grant = Captain on deck! On behalf of Force:Command, let me extend my sincere congratulations for a job well done. When you are ready to move up to a Cruiser command, just put in the transfer request. A spot will be waiting for you.
+award.rank.6.name = Commodore
+award.rank.6.abrv = COMM
+award.rank.6.desc = Commodore is the sixth rank of Force commissioned officers, and the lowest rank of the Admiralty. As a Commodore, you may command any starship squadron in the fleet.
+award.rank.6.grant = Very well done, Commodore! Welcome to the Admiral's Club. Now that you are becoming one of the 'old gray hairs' of the fleet, you should start thinking about taking on some bigger challenges. A fleet carrier battle group may be just the opportunity you need.
+award.rank.7.name = Vice Admiral
+award.rank.7.abrv = VADM
+award.rank.7.desc = Vice Admiral is the seventh rank of Force commissioned officers, and the second rank of the Admiralty. As a Vice Admiral, you may command any starship squadron in the fleet.
+award.rank.7.grant = Congratulations, Vice Admiral! Force:Command is very pleased to see the progress of your career. SECNAV and the Executive Board will be looking for great things from you. Your leadership will be a great asset to your assigned command.
+award.rank.8.name = Admiral
+award.rank.8.abrv = ADM
+award.rank.8.desc = Admiral is the eighth rank of Force commissioned officers, and the third rank of the Admiralty. As an Admiral, you may command any starship squadron in the fleet.
+award.rank.8.grant = Congratulations, Admiral! In recognition of your continued excellence and dedication, Force:Command is very pleased to grant you this promotion. Your service record is an honor to your command. Thank you for all the hard work you have been doing.
+award.rank.9.name = Fleet Admiral
+award.rank.9.abrv = FADM
+award.rank.9.desc = Fleet Admiral is the ninth rank of Force commissioned officers, and the second highest rank of the Admiralty. As a Fleet Admiral, you may command any starship squadron in the fleet.
+award.rank.9.grant = Congratulations, Fleet Admiral! In recognition of your continued excellence and dedication, Force:Command is very pleased to grant you this promotion. Your service record is an honor to your command. Thank you for all the hard work you have been doing.
+award.rank.10.name = Grand Admiral
+award.rank.10.abrv = GADM
+award.rank.10.desc = Grand Admiral is the tenth and highest rank of all Force commissioned officers, reporting directly to SECNAV. Only one officer in the entire fleet is awarded this supreme rank at any one time.
+award.rank.10.grant = Congratulations, Grand Admiral! On behalf of the Alliance President, with the full authorization of the Combined Senate, SECNAV is proud to grant you this promotion. Your leadership and dedication has been an inspiration to us all. You will hold this honorary rank award for life.
+
+award.medal.0001.name = Operation Nightfall
+award.medal.0001.desc = The Operation Nightfall Campaign medal is awarded to any member of any branch of Force who participated in combat action in the Marakan Core Theater.
+award.medal.0001.grant = The Operation Nightfall Campaign medal is awarded to any member of any branch of Force who participated in combat action in the Marakan Core Theater.
+award.medal.0002.name = Operation Firestorm
+award.medal.0002.desc = The Operation Firestorm Campaign medal is awarded to any member of any branch of Force who participated in combat action in either the Ostara-Tarsus-Kolchev or the Loris-Korian Theaters.
+award.medal.0002.grant = The Operation Firestorm Campaign medal is awarded to any member of any branch of Force who participated in combat action in either the Ostara-Tarsus-Kolchev or the Loris-Korian Theaters.
+award.medal.0004.name = Operation Shining Fortress
+award.medal.0004.desc = The Operation Shining Fortress Campaign medal is awarded to any member of any branch of Force who participated in combat action in the defense of the Jarnell, Borova, and Athenar systems.
+award.medal.0004.grant = The Operation Shining Fortress Campaign medal is awarded to any member of any branch of Force who participated in combat action in the defense of the Jarnell, Borova, and Athenar systems.
+award.medal.0010.name = Operation Highland
+award.medal.0010.desc = The Operation Highland Campaign medal is awarded to any member of any branch of Force who participated in combat action in the Solus-Renser Theater of Operations.
+award.medal.0010.grant = The Operation Highland Campaign medal is awarded to any member of any branch of Force who participated in combat action in the Solus-Renser Theater of Operations.
+award.medal.0020.name = Order of the Red Flame
+award.medal.0020.desc = The Order of the Red Flame is awarded to any member of any branch of Force who is killed or wounded during combat action, either in hostile, neutral, or friendly territory.
+award.medal.0020.grant = For meritorious service during combat action, it is my honor to bestow upon you this Order of the Red Flame in the name of the Chief Executive Officer of the Terellian Alliance. May this small token speed the healing of your injuries and return you swiftly to your unit.
+award.medal.0040.name = Flight Medal
+award.medal.0040.desc = The Flight Medal is awarded to any member of any branch of Force who distinguishes him or herself by heroism or extraordinary achievement while participating in aerial or orbital flight. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0040.grant = The Flight Medal is awarded to any member of any branch of Force who distinguishes him or herself by heroism or extraordinary achievement while participating in aerial or orbital flight. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0080.name = Command Medal
+award.medal.0080.desc = The Command Medal is awarded to any member of any branch of Force who distinguishes him or herself by heroism or extraordinary achievement while participating in a command role aboard an Alliance Fleet Starship. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0080.grant = The Command Medal is awarded to any member of any branch of Force who distinguishes him or herself by heroism or extraordinary achievement while participating in a command role aboard an Alliance Fleet Starship. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0100.name = Distinguished Service Cross
+award.medal.0100.desc = The Distinguished Service Cross is awarded to any person who, while serving with any branch of Force, distinguishes him or herself by extraordinary heroism while engaged in action against an enemy of the Alliance. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0100.grant = The Distinguished Service Cross is awarded to any person who, while serving with any branch of Force, distinguishes him or herself by extraordinary heroism while engaged in action against an enemy of the Alliance. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0200.name = Gold Star
+award.medal.0200.desc = The Gold Star Medal is awarded to any person who, while serving in any capacity in or with Force, has distinguished him or herself by heroic or meritorious achievement or service while engaged in an action against an enemy of the Terellian Alliance.
+award.medal.0200.grant = The Gold Star Medal is awarded to any person who, while serving in any capacity in or with Force, has distinguished him or herself by heroic or meritorious achievement or service while engaged in an action against an enemy of the Terellian Alliance.
+award.medal.0400.name = Order of the Wounded Lion
+award.medal.0400.desc = The Order of the Wounded Lion is awarded to any member of any branch of Force who is killed or wounded during combat action, either in hostile, neutral, or friendly territory.
+award.medal.0400.grant = The Order of the Wounded Lion is awarded to any member of any branch of Force who is killed or wounded during combat action, either in hostile, neutral, or friendly territory.
+award.medal.0800.name = Command Shield
+award.medal.0800.desc = The Command Shield is awarded to any member of Force:Space who distinguishes him or herself by heroism or extraordinary achievement while participating in a command role aboard an Alliance Fleet Starship. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.0800.grant = The Command Shield is awarded to any member of Force:Space who distinguishes him or herself by heroism or extraordinary achievement while participating in a command role aboard an Alliance Fleet Starship. The performance of the act of heroism must be evidenced by voluntary action above and beyond the call of duty.
+award.medal.1000.name = Silver Comet
+award.medal.1000.desc = The Silver Comet Medal is awarded to a person who, while serving in any capacity with Force, distinguishes him or herself by extraordinary heroism while engaged in an action against an enemy of the Terellian Alliance, or while engaged in military operations involving conflict with an opposing force. The act or acts of heroism must have been so notable and have involved risk of life so extraordinary as to set the individual apart from his or her comrades.
+award.medal.1000.grant = The Silver Comet Medal is awarded to a person who, while serving in any capacity with Force, distinguishes him or herself by extraordinary heroism while engaged in an action against an enemy of the Terellian Alliance, or while engaged in military operations involving conflict with an opposing force. The act or acts of heroism must have been so notable and have involved risk of life so extraordinary as to set the individual apart from his or her comrades.
+award.medal.2000.name = White Star
+award.medal.2000.desc = The White Star Medal is awarded to a person who, while serving in any capacity with Force, distinguishes him or herself by exceptional gallantry in space while engaged in an action against an enemy of the Terellian Alliance, or while engaged in military operations involving conflict with an opposing force. The deed performed must have been so notable and have involved risk of life so extraordinary as to set the individual apart from his or her comrades.
+award.medal.2000.grant = The White Star Medal is awarded to a person who, while serving in any capacity with Force, distinguishes him or herself by exceptional gallantry in space while engaged in an action against an enemy of the Terellian Alliance, or while engaged in military operations involving conflict with an opposing force. The deed performed must have been so notable and have involved risk of life so extraordinary as to set the individual apart from his or her comrades.
+award.medal.4000.name = Golden Meteor
+award.medal.4000.desc = The Golden Meteor is awarded by the Alliance President, in the name of the Combined Senate, to a person who, while an active member of Force, distinguishes him or herself conspicuously by exceptional gallantry at the risk of his or her life above and beyond the call of duty while engaged in action against an enemy of the Alliance, or while engaged in military operations involving conflict with an opposing force. The deed performed must have been one of personal bravery or self-sacrifice so conspicuous as to clearly distinguish the individual above his or her comrades. The Golden Meteor is the highest honor that may be bestowed upon any citizen of the Alliance.
+award.medal.4000.grant = The Golden Meteor is awarded by the Alliance President, in the name of the Combined Senate, to a person who, while an active member of Force, distinguishes him or herself conspicuously by exceptional gallantry at the risk of his or her life above and beyond the call of duty while engaged in action against an enemy of the Alliance, or while engaged in military operations involving conflict with an opposing force. The deed performed must have been one of personal bravery or self-sacrifice so conspicuous as to clearly distinguish the individual above his or her comrades. The Golden Meteor is the highest honor that may be bestowed upon any citizen of the Alliance.
+
+server.no-users = Users: 0
+server.users = Users: %d
+server.players = Players: %d
+server.users-and-players = Users: %d Players %d
+server.mode.lobby = Mode: LOBBY
+server.mode.active = Mode: ACTIVE PLAY
+server.mode.other = Mode: (unknown)
+server.alt.persistent = PERSISTENT
+server.alt.paused = PAUSED
+server.mission = Mission:
+
+ai.auto-hold = AutoHold
+ai.auto-nav = AutoNav
+ai.auto-stop = AutoStop
+ai.launch = Launch
+ai.takeoff = Takeoff
+ai.inbound = Inbound
+ai.finals = Finals
+ai.return-to-base = RTB
+ai.seek-target = Seek Target
+ai.seek-rumor = Seek Rumor
+ai.seek-ward = Seek Ward
+ai.station-keeping = Station Keeping
+ai.too-high = Too High
+ai.too-low = Too Low
+ai.way-too-low = Way Too Low!
+ai.seek-patrol-point = Seek Patrol Point
+ai.seek-inbound = Seek Inbound
+ai.hold-final = Hold Final
+ai.seek-farcaster = Seek Farcaster
+ai.seek-target = Seek Target
+ai.seek-navpoint = Seek Navpt
+ai.seek-formation = Seek Formation
+ai.evade-missile = Evade Missile
+ai.evade-threat = Evade Threat
+ai.evade-starship = Evade Starship
+ai.evade-and-seek = Evade & Seek
+ai.random-evade = Random Evade
+ai.none = Cruise
+ai.self-defensive = SELF DEF
+ai.defensive = DEFENSE
+ai.directed = DIRECT
+ai.flexible = FLEX
+ai.default = ???
+ai.formation = Formation
+ai.regroup = Regroup
+ai.retreat = Retreat
+ai.search = Search
+ai.avoid-collision = Avoid Collision
+ai.holding = Holding
+ai.dead = Dead Hulk
+
+flcs.manual = MANUAL
+flcs.auto = AUTO
+flcs.helm = HELM
+flcs.fault = FAULT
+flcs.offline = OFFLINE
+flcs.atmospheric = ATMOS
+
+event.message = Message
+event.objective = Objective
+event.instruction = Instruction
+event.team-change = IFF
+event.damage = Damage
+event.jump = Jump
+event.hold = Hold
+event.skip = Skip
+event.exit = Exit
+event.begin-scene = BeginScene
+event.camera = Camera
+event.volume = Volume
+event.display = Display
+event.fire-weapon = Fire
+event.end-scene = EndScene
+
+event.trigger.time = Time
+event.trigger.damage = Damage
+event.trigger.destroyed = Destroyed
+event.trigger.jump = Jump
+event.trigger.launch = Launch
+event.trigger.dock = Dock
+event.trigger.navpoint = Navpoint
+event.trigger.event-complete= Event
+event.trigger.event-skipped = Skipped
+event.trigger.target = Target
+event.trigger.ships-left = Ships Left
+event.trigger.detect = Detect
+event.trigger.range = Range
+event.trigger.event-all = Event (ALL)
+event.trigger.event-any = Event (ANY)
+
+sim.event.Launch = Launch
+sim.event.Dock = Dock
+sim.event.Land = Land
+sim.event.Eject = Eject
+sim.event.Crash = Crash
+sim.event.Collision With = Collision With
+sim.event.Destroyed By = Destroyed By
+sim.event.Make Orbit = Make Orbit
+sim.event.Break Orbit = Break Orbit
+sim.event.Quantum Jump = Quantum Jump
+sim.event.Launch Ship = Launch Ship
+sim.event.Recover Ship = Recover Ship
+sim.event.Fire Guns = Fire Guns
+sim.event.Fire Missile = Fire Missile
+sim.event.Drop Decoy = Drop Decoy
+sim.event.Guns Kill = Guns Kill
+sim.event.Missile Kill = Missile Kill
+sim.event.Launch Probe = Launch Probe
+sim.event.Scan Target = Scan Target
+sim.event.no event = no event
+
+tacref.name = Name:
+tacref.type = Type:
+tacref.class = Class:
+tacref.length = Length:
+tacref.mass = Mass:
+tacref.hull = Hull:
+tacref.weapons = Weapons:
+tacref.wep.other = Other
+tacref.wep.beam = Beam Weapon
+tacref.wep.bolt = Energy Bolt
+tacref.wep.drone = Combat Drone
+tacref.wep.guided = Guided Missile
+tacref.wep.missile = Missile
+tacref.wep.turret = Turret
+tacref.targets = Targets:
+tacref.targets.fsg = Fighters / Ships / Ground
+tacref.targets.fs = Fighters / Ships
+tacref.targets.fg = Fighters / Ground
+tacref.targets.f = Fighters
+tacref.targets.sg = Ships / Ground
+tacref.targets.s = Ships
+tacref.targets.g = Ground
+tacref.speed = Speed:
+tacref.range = Range:
+tacref.damage = Damage:
+tacref.kill-radius = Kill Rad:
+tacref.none = None
+tacref.no-info = No further information available.
+
+ship.drone = The Class 2 TARGET DRONE is a high midwing monoplane of conventional design with an inverted-Y empennage. The spaceframe is a modified monocoque structure made of a titanium alloy-reinforced ceramic composite. The Target is powered by a FP387/403 variable speed fusion drive, which produces a maximum of 4T static thrust under normal operating conditions. The Target is equipped with a fighter-style sensor package and onboard AI pilot capability, but is otherwise unarmed.
+ship.eagle = The F-34D EAGLE is a compact, multi-role fighter spacecraft. It is highly maneuverable and has proven itself in spaceborne and airborne combat as well as in surface attack missions. It provides a relatively low-cost, high-performance weapon system for Alliance forces. Like the F-32 Falcon, the Eagle is armed with twin Delta particle cannon, along with four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Eagle's heavier structure also provides support for air-to-ground and antiship weapons and increased survivability at some cost in overall maneuverability.
+ship.falcon = The F-32 FALCON is the premier single-seat intercept fighter craft for the Alliance FORCE:Space. Designed to be lightweight, low cost and easy to maintain, the Falcon is a respected highly maneuverable and versatile tactical fighter. It is armed with twin Delta particle cannon, and four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Falcon is routinely tasked with patrol, escort, and intercept mission profiles.
+ship.stormhawk = The F-36C STORMHAWK is a compact, multi-role fighter spacecraft. It is highly maneuverable and has proven itself in spaceborne and airborne combat as well as in surface attack missions. It provides a relatively low-cost, high-performance weapon system for Alliance forces. Like the F-32 Falcon, the Stormhawk is armed with twin Delta particle cannon, along with four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Stormhawk's heavier structure also provides support for air-to-ground and antiship weapons and increased survivability at some cost in overall maneuverability.
+ship.thunderbolt = The F/A-38D THUNDERBOLT is the primary Alliance attack craft, and the first specially designed for close air support of ground forces. They are tough, effective and powerful four-engine spacecraft that can be used against all ground targets, as well as fulfilling a secondary role in killing spaceborne platforms and starships. The 'Bolt has six underwing hardpoints for standard attack ordnance, as well as dual front-mounted Heavy Energy Cannon. For rear protection from hostile fighters and high-speed threats, the Thunderbolt features an autonomous tail gun turret.
+ship.zodiac = The ZODIAC armored landing craft (LCA) is the standard Alliance millitary shuttle platform, and the only Force:Space craft capable of atmospheric VTOL. The Zodiac is commonly used to ferry personnel and equipment between groundside bases and spaceborne platforms. The Zodiac is armed with four (4) heavy Vulcan cannon, and an aft-mounted automated laser turret for self-defense.
+ship.berents = The FF-922 BERENTS class frigates fulfill a Protection of Shipping (POS) mission providing anti-fighter cover for amphibious expeditionary forces, underway replenishment groups and merchant convoys. The Berents class anti-fighter weapons complement includes two forward plus one aft Phalanx PDB mounts, along with a pair of Mark VII interceptor launchers. The Berents class was also recently upgraded to include a heavy plasma cannon battery for use against harder targets.
+ship.asher = The DD/E-708 ASHER class of destroyer/escorts represents a lighter, more maneuverable alternative to the heavy Spectre class destroyers that make up the majority of Alliance destroyer squadrons. The Asher class is armed with a trio of nose-mounted XRay Laser batteries, and a pair of wing-mounted fusion torpedo launchers, as well as the usual complement of point defense turrets. This combination of power and agility makes the Asher class well suited to the fleet carrier escort role they are asked to fulfill.
+ship.spectre = The DD-350 SPECTRE class of destroyers represent the largest and most successful of all Force:Space destroyer acquisitions: fast, roomy, capable of absorbing enormous punishment, and yet fighting on. The Spectre class ships are forty percent heavier than their Asher class cousins, and they use the extra mass to great effect. The Spectre class features four nose-mounted XRay Laser batteries, and a pair of wing-mounted fusion torpedo launchers in addition to four Phalanx point defense guns.
+ship.courageous = Modern Force:Space guided missile cruisers such as the CA-521 COURAGEOUS class perform primarily in a Battle Force role. These ships are multi-mission spaceborne combatants capable of supporting carrier battle groups, landing forces, or of operating independently and as flagships of space action groups. The Courageous class features four MARK VII interceptor launchers for close air support against fighters and inbound missiles. Courageous class cruisers are also equipped with Nike high-speed antiship missiles giving them additional long range assault capability.
+ship.devastator = The CA-400 DEVASTATOR class of heavy cruisers forms the backbone of the Alliance heavy gun capability. Big, slow, and very tough, each of these enormous vessels features a pair of heavy gamma ray laser batteries and four Athena missile launchers. Together these weapons can bring down the largest starships and orbital stations. For defense against strike ships and inbound missile weapons, the Devastator has full coverage from a set of Vanguard point defense batteries.
+ship.orion = The CV-69 ORION class carriers are essentially spaceborne starports, capable of launching as many as four fighter craft every minute. The Orion's two launch rails and two arresting gear engines enable her to launch and recover ships both rapidly and simultaneously. The Orion class ship's embarked tactical fighter wing includes four different types of fighter and attack craft in addition to armored landing craft for a total complement of almost 80 ships.
+ship.baikal = The BAIKAL class frigates are commonly used by the independent systems as anti-fighter platforms. Designed by the Marakan Hegemony as cost efficient space combatants, they lack the multi-mission capability necessary for modern warships faced with multiple, high-technology threats. They also offer limited capacity for growth. Despite this, the FF-101 Baikal class is a robust platform, capable of withstanding considerable damage while staying 'in the fight.'
+ship.wolf = The DD-305 WOLF class of medium destroyers are an older type of Hegemony warship now mainly used by client states and guerilla groups such as the Dantari Separatists. The Wolf class features a pair of internally-mounted heavy XRay Laser batteries and a full complement of Orca point defense batteries for protection from inbound threats. Due to design limitations, the Orca PDBs tend to provide better coverage for the dorsal hemisphere, leaving the Wolf class with a vulnerable underbelly.
+ship.goliath = The GOLIATH class carrier vessels provide the Dantari Separatists with their main force projection capability in the Solus system. Unlike the rest of the Dantari fleet, which consists largely of older Hegemony warships, the Goliath class carriers were designed and constructed specifically for their Dantari crew. Due to budgetary constraints, the Goliath class is outfitted with only a single launch rail, but still has a full complement of point defense batteries for close-in protection.
+ship.farcaster = The standard Terellian Alliance quantum portal for long range travel. The 185 exawatt Type I FARCASTER can translate any starship or fighter-class vessel, even without an onboard FTL quantum drive, instantly to a remote destination. Farcaster portals are always connected in pairs.
+ship.farcaster2 = The standard Hegemony quantum portal for long range travel. The Type II FARCASTER can translate any starship or fighter-class vessel instantly to a remote destination. Type II Farcaster portals may found throughout the systems controlled by the Marakan Hegemony.
+ship.avenger = The F6F AVENGER attack fighter is a highly competent assault platform, capable of meeting most any opponent on even ground and providing an edge over the majority of enemy starfighters in service. The Avenger is the only Hegemony craft in current service that is optimized for the ground attack role in addition to supporting antiship mission profiles. The Avenger features a four-barrel Alpha cannon and eight (8) missile hardpoints. However, unlike the Alliance Thunderbolt, the Avenger does not have a gun turret for rear-quarter protection.
+ship.cobra = The MARK-3 COBRA is a mid-wing configuration multi-role fighter spacecraft that was once commonly used by the Marakan Hegemony but now is mainly used by its client states. The Cobra is a tough and effective single-engine spacecraft that is frequently employed against all types of hardened ground targets, and may also fulfill a secondary role killing spaceborne platforms and starships. The Cobra is armed with twin nose-mounted Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter, antiship, and ground-attack weapon systems.
+ship.intruder = The F4F INTRUDER is the latest edition single-seat intercept fighter craft used by the Marakan Hegemony. More expensive than the older Viper models, the Intruder remains a lightweight and highly maneuverable tactical fighter. It is armed with twin Alpha particle cannon, and four underwing hard points capable of mounting a variety of antiship and anti-fighter ordnance. The Intruder is usually tasked with patrol, intercept, and escort mission profiles, but may also serve as a strike fighter in a pinch.
+ship.jackal = The JACKAL armored landing craft (LCA) is the mainstay of Hegemony heavy-lift capacity, and the only Marakan craft capable of atmospheric VTOL. The Jackal is commonly used to ferry personnel and equipment between groundside bases and spaceborne platforms, and also serves a secondary role in heavy assault profiles. The Jackal is armed with twin heavy Vulcan cannon, but is limited to standard decoy launchers for self-defense.
+ship.raptor = The F5A RAPTOR is a swept-delta configuration multi-role fighter spacecraft commonly used by the Marakan Hegemony. It is fast and sturdy and has proven itself in spaceborne and airborne combat as well as in surface attack missions. The Raptor is armed with twin Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter ordnance. The Razor's heavy delta wing design also gives it the capacity to mount a variety of air-to-ground and antiship weapons.
+ship.razor = The MARK-2 RAZOR is a forward-delta configuration multi-role fighter spacecraft commonly used by the Marakan Hegemony and its client states. It is fast and sturdy and has proven itself in spaceborne and airborne combat as well as in surface attack missions. Like the Mark 1 Viper, the Razor is armed with twin Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter ordnance. The Razor's heavy delta wing design also gives it the capacity to mount a variety of air-to-ground and antiship weapons.
+ship.viper = The MARK-1 VIPER is an older model single-seat intercept fighter craft used by the Marakan Hegemony and many of its client states. Designed to be inexpensive, lightweight, and highly maneuverable, the Viper has become ubiquitous as a versatile tactical fighter. It is armed with twin Alpha particle cannon, and six underwing hard points capable of mounting a variety of anti-fighter ordnance. The Viper is often asked to perform patrol, intercept, and escort mission profiles.
+ship.broadsword = The DD-3C21 BROADSWORD class of destroyers represents the pinnacle of Hegemony warship technology; big, fast, and ready to deliver punishing amounts of damage to all who stand in their way. The Broadsword class ships extend the basic armament of the older Volnaris class by doubling the number of heavy x-ray laser batteries to four. As with many Hegemony designs, these weapons are externally mounted and vulnerable to attack from the flanks.
+ship.dragon = The CV-7A1 DRAGON class carriers represent the pinnacle of Hegemony military starship design. Though somewhat slow and unweildy, the Dragons are nevertheless enormously powerful. Their huge complement of embarked fighter craft give them unparalleled force projection capability; a single Dragon-class carrier battle group could easily conquer a colonial world.
+ship.imperial = Marakan Hegemony guided missile cruisers such as the CA-5C44 IMPERIAL class are most often found leading small cruiser battle groups. These ships are devastating attack platforms, equally at home either support or leading space action groups. The Imperial class features a pair of Rostov high-speed missile turrets, which combined with a full battery of magnetic rail launchers, gives them excellent long range assault capability.
+ship.tiger = The FF-2E01 TIGER BAY class frigate was the result of war department opposition to mounting costs and limited capabilities of the older Baikal class frigate. Only fourteen Baikal class ships were built, and all were decommissioned and sold to neighboring independent systems. The Tiger Bay class was designed to extend the anti-ship capabilities of the older frigates by adding a pair of light x-ray laser batteries mounted on the wings. As with many Hegemony designs, these weapons are externally mounted and vulnerable to attack from the flanks.
+ship.vendetta = The CA-5D15 VENDETTA class of heavy cruisers are the core Hegemony heavy gun platforms. Big, slow, and very tough, each of these enormous vessels features a pair of heavy gamma ray laser batteries and twin Rostov antiship missile turrets. Together these weapons can bring down the largest starships and orbital stations. The Vendetta's complement of magnetic rail guns make her more suitable to offense than defense; these ships rely on their tough hide to withstand enemy bombardment while they move in for the kill.
+ship.volnaris = The DD/E-4D01 VOLNARIS class of destroyer/escorts are the predecessors of the heavier Broadsword destroyer class. Originally intended as mainline destroyers, the Volnaris ships have now been relegated primarily to escort duty for the Hegemony battle groups. The Volnaris features a pair of internally-mounted heavy x-ray laser batteries and three fusion torpedo launchers for offensive capability, along with a full complement of Orca point defense batteries for protection from inbound threats. Due to design limitations, the Orca PDBs tend to provide better coverage for the dorsal hemisphere, leaving the Volnaris class with a vulnerable underbelly.
+ship.cutlass = Small, stealthy, and highly maneuverable, the CUTLASS pirate fighter is commonly used by the Brotherhood of Iron criminal organization as both a commerce raider and escort for their larger vessels. The Cutlass features four widely spread Alpha cannon, and has even been known to mount stolen antiship missiles for some engagements.
+ship.marauder = The MARAUDER is a small frigate-class vessel commonly used by the Brotherhood of Iron criminal organization as a commerce raider. The Marauder ships are no match for most military warships, but they make up for their limitations with enhanced stealth capabilities. Starship captains usually find the Marauder to be a fiendishly difficult type of ship to lock onto.
+
+# system names / abbreviations
+sys.computer.abrv = Comp
+sys.drive.plasma = Plasma Drive
+sys.drive.fusion = Fusion Drive
+sys.drive.green = Main Drive
+sys.drive.red = Main Drive
+sys.drive.blue = Main Drive
+sys.drive.yellow = Main Drive
+sys.drive.stealth = Stealth Drive
+sys.drive.abrv = Drive
+sys.farcaster = Farcaster
+sys.farcaster.abrv = Farcaster
+sys.flight-deck = Flight Deck
+sys.flight-deck.abrv = Flt Deck
+sys.landing-gear = Landing Gear
+sys.landing-gear.abrv = Gear
+sys.nav-light = Navigation Lights
+sys.nav-light.abrv = NavLight
+sys.nav-system = Auto Nav System
+sys.nav-system.abrv = Nav
+sys.power.battery = Battery
+sys.power.battery.abrv = Battery
+sys.power.auxilliary = Aux Reactor
+sys.power.auxilliary.abrv = Aux Reac
+sys.power.fusion = Fusion Reactor
+sys.power.fusion.abrv = Fusion
+sys.quantum = Quantum Drive
+sys.quantum.abrv = Quantum
+sys.sensor = Dual Sensor Pkg
+sys.sensor.abrv = Sensor
+sys.shield.none = None
+sys.shield.deflector = Deflector
+sys.shield.grav = Grav Shield
+sys.shield.hyper = Hyper Shield
+sys.shield.abrv = Shield
+sys.thruster = Thruster
+sys.thruster.abrv = Thruster
+sys.weapon.primary.abrv = Wep Pri
+sys.weapon.secondary.abrv = Wep Sec
+
+# system components
+[Multiple] = [Multiple]
+No Selection = No Selection
+Fusion Reactor = Fusion Reactor
+Reactor Core = Reactor Core
+Reac Core = Reac Core
+Fuel System = Fuel System
+Fuel Sys = Fuel Sys
+Presequencer = Presequencer
+Preseq = Preseq
+Radiation Shield = Radiation Shield
+Rad Shield = Rad Shield
+Power Regulator = Power Regulator
+Pwr Reg = Pwr Reg
+Heat Exchanger = Heat Exchanger
+Heat Exch = Heat Exch
+Coolant Tanks = Coolant Tanks
+Coolant = Coolant
+Auxilliary Reactor = Auxilliary Reactor
+Reactant = Reactant
+Injector = Injector
+Magnetic Coil = Magnetic Coil
+Mag Coil = Mag Coil
+Battery = Battery
+EMG Cell = EMG Cell
+Reactant Valves = Reactant Valves
+Reac Valves = Reac Valves
+Plasma Drive = Plasma Drive
+Plasma Core = Plasma Core
+Plasma Grid = Plasma Grid
+Presequence Injector = Presequence Injector
+Plasma Impeller = Plasma Impeller
+Impeller = Impeller
+Magnetic Resonance Focuser = Magnetic Resonance Focuser
+Mag Focus = Mag Focus
+Thruster = Thruster
+Lateral Thrust Motors = Lateral Thrust Motors
+Spinal Thrust Motors = Spinal Thrust Motors
+Braking Thrusters = Braking Thrusters
+Lateral = Lateral
+Spinal = Spinal
+Braking = Braking
+Quantum Drive = Quantum Drive
+Graviscalar Bias Node A = Graviscalar Bias Node A
+Graviscalar Bias Node B = Graviscalar Bias Node B
+Quantum Wave Containment = Quantum Wave Containment
+Dimensional Waveguide = Dimensional Waveguide
+Power Filter/Sync Lock = Power Filter/Sync Lock
+Alpha Node = Alpha Node
+Beta Node = Beta Node
+Containment = Containment
+Waveguide = Waveguide
+Sync Lock = Sync Lock
+Grav Shield = Grav Shield
+Grav Bias Generator = Grav Bias Generator
+Grav Gen = Grav Gen
+Fusion Power Adaptor = Fusion Power Adaptor
+Pwr Adaptor = Pwr Adaptor
+Harmonic Oscillator = Harmonic Oscillator
+Harm Osc = Harm Osc
+Tactical Computer Interface = Tactical Computer Interface
+Tac I/F = Tac I/F
+Sensor = Sensor
+Transmit Array = Transmit Array
+XMIT = XMIT
+Receive Array = Receive Array
+RECV = RECV
+Spacial Filter = Spacial Filter
+Filter = Filter
+Processor = Processor
+CPU = CPU
+System Interface = System Interface
+Sys I/F = Sys I/F
+Computer = Computer
+Storage = Storage
+Beam Weapon = Beam Weapon
+Beam Generator = Beam Generator
+Beam Gen = Beam Gen
+Power Flux Coupling = Power Flux Coupling
+Pwr Coupling = Pwr Coupling
+Beam Focuser = Beam Focuser
+Beam Focus = Beam Focus
+Flashback Supressor = Flashback Supressor
+Flash Sup = Flash Sup
+Bolt Weapon = Bolt Weapon
+Laser Generator = Laser Generator
+Laser Gen = Laser Gen
+Plasma Weapon = Plasma Weapon
+Plasma Exciter = Plasma Exciter
+Exciter = Exciter
+Plasma Coupling = Plasma Coupling
+Plasma Cpl = Plasma Cpl
+Missile Weapon = Missile Weapon
+Magnetic Launch Rail = Magnetic Launch Rail
+Mag Rail = Mag Rail
+Launcher = Launcher
+Ordnance Trolley/Loader = Ordnance Trolley/Loader
+Loader = Loader
+Probe = Probe
+Probe Caddy/Loader = Probe Caddy/Loader
+Flight Deck = Flight Deck
+Hangar Access Causeway = Hangar Access Causeway
+Elevator = Elevator
+ILS Transponder = ILS Transponder
+ILS = ILS
+Navigational Interface = Navigational Interface
+Nav I/F = Nav I/F
+
+hangar.UNAVAIL = Unavail
+hangar.MAINT = Maint
+hangar.STORAGE = Standby
+hangar.PREP = Preflight
+hangar.ALERT = Alert
+hangar.QUEUED = Queued
+hangar.LOCKED = Locked
+hangar.LAUNCH = Launch
+hangar.ACTIVE = Active
+hangar.INBOUND = Inbound
+hangar.RECOVERY = Recovery
+
+instr.short.vector = Go to %s sector
+instr.short.farcast = Farcast to %s sector
+instr.short.launch = Launch from the %s
+instr.short.dock = Dock with the %s
+instr.short.return-to-base = Return safely to base
+instr.short.defend = Defend %s
+instr.short.escort = Escort %s
+instr.short.protect = Protect %s in the area
+instr.short.patrol = Patrol for %s in %s
+instr.short.sweep = Sweep for %s in %s
+instr.short.intercept = Intercept and destroy %s
+instr.short.strike = Engage and destroy %s
+instr.short.assault = Engage and destroy %s
+instr.short.recon = Recon scan %s
+
+instr.long.vector = Go to the %s sector
+instr.long.farcast = Farcast to the %s sector
+instr.long.launch = Launch from the %s
+instr.long.dock = Dock with the %s
+instr.long.return-to-base = Return safely to base
+instr.long.defend = Defend the %s
+instr.long.escort = Escort the %s
+instr.long.protect = Protect %s in the area
+instr.long.patrol = Disable or destroy %s in the %s sector
+instr.long.sweep = Disable or destroy %s in the %s sector
+instr.long.intercept = Intercept and destroy %s
+instr.long.strike = Engage and destroy %s
+instr.long.assault = Engage and destroy %s
+instr.long.recon = Recon scan %s
+
+
+
+wep.alpha = The ALPHA CANNON is the high-energy particle weapon in use on most Hegemony fighter craft. Analysts believe that this weapon is nearing end-of-life phase out, but remains in service because it is cheap and reliable. The Alpha Cannon tends to be low in effective damage and penetration, but makes up for those limitations with a high refire rate.
+wep.delta = The DELTA CANNON is the current generation standard high-energy particle weapon in use on most Alliance fighters. Notorious for reliablity problems in its early years of service, the Delta Cannon is now considered one of the most potent and effective small energy weapons ever fielded by Force:Space. The Delta Cannon has improved focus and high bolt velocity that contribute to its accuracy at ranges up to 10 km.
+wep.heavy = The HEAVY ENERGY CANNON has recently been fitted on the F/A-38D Thunderbolt series of attack fighters. The Heavy is a slimmed down version of the retired 'Chain Lightning' cannon used on early model LCAs for mine sweeping and antiship warfare. This is the first time a weapon of this caliber has been fitted on a single seat fighter. The Heavy is too slow and unweildy to be effective against maneuvering fighters, but the high damage potential makes this weapon a first-rate ship killer.
+wep.turret = This automated FIGHTER TURRET provides rear quarter protection for the F/A-38D Thunderbolt series of attack fighters. The turret is tied into the Alliance sensor network and will automatically engage any threat that comes within its range. Even though it is not the most accurate platform in the fleet, the Fighter Turret is an effective deterrent to any fighters attempting a tail chase on the 'Bolt.
+wep.archer = The ARCHER SRM is the standard Hegemony anti-fighter munition. Although not very fast, the Archer is very maneuverable, which makes it deadly accurate in short range engagements. The Archer's main weakness is its low-quality seeker head. The Archer can be defeated by releasing a decoy and performing a break turn at low power. Each Archer hardpoint carries two weapons.
+wep.javelin = The JAVELIN SRM is the standard Alliance short range anti-fighter munition. The Javelin is quite similar to the Hegemony Archer SRM, although it is carries more fuel and has an increased effective range as a result. Unfortunately, it is not much faster than the Archer, and enemy fighters can still defeat the shot with a decoy if given sufficient warning. The Javelin is best employed at short ranges from low aspect to minimize the enemy's chance of escape. Each Javelin hardpoint carries three weapons.
+wep.vector = The VECTOR MRM is a medium-range general purpose guided munition. The Vector is a high-speed weapon that is suitable for engaging small to medium-size maneuvering targets at ranges from 15 to 35 km. Hegemony forces field an almost identical munition known as the Longbow.
+wep.hammer = The HAMMER AGM is a medium-range passive-guided air to ground munition. The Hammer is a low-speed but very powerful weapon that is suitable for engaging hardened ground targets at ranges up to 50 km. Recommended procedure is to employ the Hammer from its maximum range to avoid subjecting your fighter to ground fire.
+wep.harpoon = The HARPOON ASM is a long-range passive-guided antiship munition. The Harpoon is a high-speed weapon that is suitable for engaging small to medium-size starships at ranges up to 50 km. The Harpoon is not easily spoofed or intercepted and has excellent shield penetration capabilities. Recommended procedure is to employ this weapon from its maximum range to avoid subjecting your fighter to enemy PDB fire. Hegemony forces field a similar fighter-launched antiship munition known as the HORN.
+wep.rockets = Each fighter-based ROCKET POD holds twelve guided submunitions that may be employed against a wide variety of spaceborne and ground-based targets. Rockets are fired from the pod in salvos of four each time press the firing stud. Rockets are most effective against stationary or slow moving targets, and are often used in mine-sweeping missions.
+wep.recon = The wing-mounted RECON POD is a multi-frequency sensor package that may be used to capture detailed information about an enemy ship, station, or ground unit. The Recon Pod will perform two detailed scans in rapid succession each time you depress the firing stud. The Pod contains storage for ten scans, so you can only fire it five times before returning to base. Of course, the Recon Pod does no damage to enemy targets.
+wep.decoy = The FIGHTER DECOY is a general-purpose missile countermeasure that is designed to mimic the radient energy signature of your fighter's engine. Anti-fighter missiles will generally guide on the closest, strongest return that their sensors can detect. When your Sensor Warning Receiver notifies you of an inbound threat, you should release a decoy and disengage your drive augmenter (afterburner) to evade the missile. The Fighter Decoy does no damage to enemy targets.
+wep.blockade = The BLOCKADE CANNON is an energy bolt turret that is usually mounted on space mines. The Blockade Cannon is designed to engage civilian shipping, but it is also quite effective against fighter and attack craft.
+wep.vulcan = The VULCAN CANNON is a rapid-fire energy bolt weapon that is generally deployed on LCA-class attack craft. The Vulcan can engage targets ranging from small fighters to medium-size starships and ground units.
+wep.phalanx = The PHALANX CANNON is the standard point defense battery (PDB) for smaller Force:Space starships. Each Phalanx mount is a freely rotating ball turret with two alternate firing barrels. The Phalanx is deadly accurate against fighter and combat drone targets at short ranges.
+wep.viking = The VIKING CANNON is the standard point defense battery (PDB) for many military stations. Each Viking mount is a freely rotating cylindrical turret with two alternate firing barrels. The Viking is quite accurate and delivers a devastating punch against against fighter targets at short to medium ranges.
+wep.ursa = The URSA CANNON is an older point defense battery (PDB) system in use on some Hegemony and Independent Worlds frigate-class starships. The Ursa Cannon has only half the rate of fire of the Alliance's Phalanx system, but its high-speed bolts make in an effective offensive and defensive gun.
+wep.orca = The ORCA CANNON is the standard point defense battery (PDB) for Hegemony and Independent Worlds starships. Each Orca mount is an articulated deck platform turret with two alternate firing barrels. The Orca is deadly accurate against fighter and combat drone targets at short ranges, but lacks the speed and rate of fire of the Alliance Phalanx PDB system.
+wep.orca2 = The ORCA 2 CANNON is the big brother of the standard Orca PDB. Outwardly similar to the standard Orca, this heavy duty gun is mainly used defending Hegemony stations. Each Orca 2 mount is an articulated deck platform turret with two alternate firing barrels. Slower and less accurate than the standard Orca mount, this high-powered weapon packs quite a wallop when it does manage to hit the target.
+wep.vanguard = The VANGUARD CANNON is the standard point defense battery (PDB) for Force:Space cruisers and carriers. Each Vanguard mount is an articulated deck platform turret with two alternate firing barrels. The Vanguard is more powerful than the Phalanx system used on smaller starships, but not quite as accurate.
+wep.plasma = The PLASMA CANNON is used as the primary antiship gun on Alliance Frigates.
+wep.xray = XRAY LASER batteries are the most common primary beam weapons used by destroyer and light cruiser class starships in the Blue Drift region. These weapons deliver a tremendous amount of destructive energy each second the beams are in contact with the hull armor of their target. However, the coherent x-rays are easily scattered by standard gravitational deflector shields, giving them a low shield penetration factor.
+wep.graser = GAMMA RAY LASER batteries are the most powerful primary beam weapons in service in the Blue Drift region. Used mainly by heavy cruiser class starships, these weapons are more than twice as powerful as the X-Ray Laser batteries used on lighter starships. Like their smaller cousins, Gamma Ray Lasers have poor shield penetration, but they still pack enough punch to make an effective weapon against heavy starships and orbital stations.
+wep.g-turret = GAMMA RAY LASER TURRETS are often mounted on Hegemony military stations for defense against starship assault. These weapons are essentially turret-mounted versions of the Gamma Ray Lasers used on heavy starships. Backed by the powerful reactors of a military station, Gamma Ray Laser Turrets have the endurance to wear down enemy starships even through the scattering effect of their gravitational deflector shields.
+wep.aaa2 = The ANTI AIRCRAFT ARTILLERY (AAA) CANNON is an autonomous ground-based energy bolt system optimized for area defense against hostile airborne targets. This variant has two alternate firing barrels mounted on an upright turret with built-in multifrequency sensor. It can engage fighters and attack craft at ranges up to 50 km.
+wep.aaa4 = The ANTI AIRCRAFT ARTILLERY (AAA) CANNON is an autonomous ground-based energy bolt system optimized for area defense against hostile airborne targets. This variant has four sequenced barrels for increased firing speed and coverage. It can engage fighters and attack craft at ranges up to 50 km.
+wep.sam = The SURFACE-TO-AIR MISSILE (SAM) BATTERY is an autonomous ground-launched guided missile system designed for area defense against a variety of airborne targets. Each SAM Battery carries eight missiles on an upright turret with integrated sensor array. It can engage fighters and attack craft at ranges up to 20 km.
+wep.mk7 = The MARK VII INTERCEPTOR is a ship-launched antifighter weapon that is also effective at engaging enemy combat drones and missiles. The Mark VII also has some limited effectiveness against starship targets. The Mark VII is commonly deployed on frigates tasked with fleet defense, as well as heavier cruiser class starships.
+wep.fusion = The FUSION TORPEDO is the standard issue guided long range antiship munition in use on most Force:Space destroyer and destroyer-escort class vessels. Fusion Torpedoes pack a large amount of destructive power in a small package, but low speed and acceleration make them easy targets for PDB and Interceptor fire. Employing them at point blank range can mitigate this effect.
+wep.nike = The NIKE high-speed antiship missile is commonly used on light cruiser class starships. The Nike is considerably faster than the smaller Fusion Torpedo, and also has better shield penetration capabilities.
+wep.athena = The ATHENA is the elder sister of the Nike Antiship Missile. Compared to the Nike, the Athena has a more advanced drive sytstem and greater acceleration. Mounted only on heavy cruiser starship types, this Athena variant is designed for starboard missile tubes.
+wep.athena2 = The ATHENA is the elder sister of the Nike Antiship Missile. Compared to the Nike, the Athena has a more advanced drive sytstem and greater acceleration. Mounted only on heavy cruiser starship types, this Athena variant is designed for port side missile tubes.
+wep.probe = The starship SENSOR DRONE is a multi-frequency active sensor probe that may be used to detect enemy ships far beyond the range of onboard ship sensors. As long as it is active, the Sensor Drone will detect any contact that comes within 50 km of its position. Of course, the Sensor Drone does no damage to enemy targets.
+
+weather.clear = Clear
+weather.high-clouds = High Clouds
+weather.partly-cloudy = Partly Cloudy
+weather.overcast = Overcast
+weather.fog = Dense Fog
+weather.storm = Heavy Storm
+
+#
+# MISSION TEXT - single missions and multiplayer
+#
+
+msn.s01.name = 01. Red Alert
+msn.s01.desc = The long range reconnaissance ship AFS Vasquez has failed to report in during a routine patrol of Hegemony border space. Your element will patrol the Aram sector for evidence of the missing ship.
+msn.s01.sitrep = The long range reconnaissance ship AFS Vasquez has failed to report in during a routine patrol of Hegemony border space. The Third Fleet carrier Archon has been dispatched to Aram sector in the Ostara system to search for the missing ship. Tensions are high, and Hegemony ships may also be patrolling this sector.\n\nYour element will patrol the Aram sector for evidence of the missing ship. Be on the lookout for Hegemony ships that may have engaged and destroyed the Vasquez. Good luck.
+msn.s01.obj = * Search for evidence of the AFS Vasquez\n* Defend the Archon Carrier Battle Group\n* Return safely to base
+msn.s01.e01 = We show inbound contacts, presumed hostile.
+msn.s01.e02 = Engage inbound strike package 'Orten'.
+
+msn.s02.name = 02. On Wings of Thunder
+msn.s02.desc = The Heracles is launching strike package Condor to take out an enemy freighter before it can leave Loris space. Your element is assigned to escort the strike package and protect it from enemy fighters.
+msn.s02.sitrep = Force:Intel has discovered a Hegemony plot to smuggle weapons and personnel from Loris into Silessia using unmarked civilian transports. Field agents report that the first of these shipments will use the freighter Ascentia. The Heracles is launching strike package Condor to take out the freighter before it can leave Loris space.\n\nYour element, Ranger, is assigned to escort the strike package and protect it from enemy fighters. We want to get in, do the mission, and get out again before the Hegemony has time to react. Choose your loadout, and get to your ships.
+msn.s02.obj = * Disable or destroy inbound enemy units in the Loris sector\n* Escort the Thunderbolts in strike package Condor\n* Return safely to base
+
+msn.s03.name = 03. Honor Guard
+msn.s03.desc = Your element has been assigned to escort the diplomatic shuttle from Telmera Starbase to Solus orbit, and then through the Farcaster to Omane sector and Harmony Station.
+msn.s03.sitrep = The Secretary for Foreign Affairs and the Senate Subcommittee for Interstellar Trade are on a diplomatic mission to the Independent System of Solus. They have completed three days of meetings and are preparing to return home after a stop-over at Harmony Station in Kalon sector.\n\nYour element has been assigned to escort the diplomatic shuttle from Telmera Starbase to Solus orbit, and then through the Farcaster to Kalon sector and Harmony Station.
+msn.s03.obj = * Escort the diplomatic shuttle from Telmera to Harmony Station\n* Return safely to base
+msn.s03.e02 = Dagger flight, this is diplomatic shuttle Zodiac. Good to see you fellows made it.
+msn.s03.e03 = We are ready for orbital insertion, please form on our wing.
+msn.s03.e05 = Confirm approach to Solus-Kalon Farcaster.
+msn.s03.e06 = Form up and we can take the jump together.
+msn.s03.e90 = Stay sharp, there may be enemy fighters in the area.
+msn.s03.e91 = We've taken some damage, but it's not too bad.
+msn.s03.e99 = Thanks for the escort Dagger, Zodiac is clear for docking.
+
+msn.s04.name = 04. A Line in the Sand
+msn.s04.desc = The Hegemony is operating an illegal mining operation in the Tantalus sector of Haiche. Your element has been tasked with destroying the support facilities for the mine.
+msn.s04.sitrep = The Hegemony is operating an illegal mining operation in the Tantalus sector of Haiche. Force:Command is planning an effort to gain air and ground control of the sector. As part of the effort, you have been tasked with destroying the support facilities for the mine.
+msn.s04.obj = * Destroy enemy mining operation\n* Return safely to base
+
+msn.s05.name = 05. Execution is Everything
+msn.s05.desc = A group of smugglers broke out of Solus impound three days ago and reached Lornas asteroid belt this morning. Your element is to sweep the asteroid field and find the smugglers' ship.
+msn.s05.sitrep = A group of smugglers broke out of Solus impound three days ago. They were able to bypass customs in Khaital and reached the Lornas asteroid belt this morning. We believe we have located their ship, but with all the clutter from the belt, it is hard to be certain.\n\nYour element is to sweep the asteroid field and find the smugglers' ship. Escort them back to the fleet where they can be safely apprehended. We would prefer to take them alive, but use whatever means are necessary to prevent their escape.
+msn.s05.obj = * Sweep the Lornas asteroid belt\n* Escort the smugglers back to the fleet\n* Return safely to base
+msn.s05.e01 = This is the Hegemony Warship Sidus to all unauthorized vessels in Lornas sector:
+msn.s05.e02 = You are ordered to leave the area immediately or be destroyed.
+msn.s05.e10 = We have two Hegemony warships inbound.
+msn.s05.e11 = Destroy the smugglers and return to base ASAP.
+
+msn.s06.name = 06. Supression of Enemy Air Defense
+msn.s06.desc = A radical faction of the Radix Military has taken a Force recon ship and her crew hostage at a military base in the Shadow Canyon sector on Radix. We need you to take out the SAM and AAA emplacements protecting the base.
+msn.s06.sitrep = A radical faction of the Radix Military has taken a Force recon ship and her crew hostage. Force:Intel has determined that the hostages are being held at a military base in the Shadow Canyon sector on Radix Prime. We are dispatching two Zodiac landing craft to rescue the hostages and destroy the recon ship before it can be compromised.\n\nWe need you to take out the SAM and AAA emplacements protecting the base. You will take only a single Thunderbolt fighter to minimize the chance of our rescue operation being detected. Stay as low as possible, and use EMCON 2 until you reach the strike zone. Those hostages are counting on you, so get moving.
+msn.s06.obj = * SEAD - Destroy SAM and AAA near Shadow Canyon military base\n* Avoid detection until the last possible moment\n* Return safely to base
+msn.s06.e60 = The SAM and AAA sites have been destroyed. Mission accomplished!
+
+msn.s07.name = 07. Send Lawyers, Guns, and Money
+msn.s07.desc = Your Berents-class frigate has been assigned to escort the freighters Silver Stag and Golden Hart through hostile territory.
+msn.s07.sitrep = InterStellar Freightways is preparing to deliver a shipment of precision machine tools and parts to a distributor in Silessia. The total value of the payload is over ten billion marks. Due to the recent increase in pirate activity in Silessia, Force:Space has agreed to provide two Berents-class frigates as escort.\n\nYou will take command of the frigate AFS Durham and accompany the two freighters from the Tulkas jump point to the Nero transfer orbit in Silessia. AFS Kingston will go with you. Once the freighters reach Nero sector, they will use the farcaster to expedite their voyage to the distribution station in Vesta orbit. You only need to see that they reach the farcaster safely, and then you must return to Borova space to rejoin the fleet.
+msn.s07.obj = * Escort the Golden Hart and Silver Stag to Silessia\n* Disable or destroy any enemy units in Nero sector\n* Return safely to Borovan space
+msn.s07.e05 = We are ready to make the jump to Silessia/Nero. See you there.
+msn.s07.e80 = Freighter Golden Hart has been destroyed. Your mission has failed.
+msn.s07.e90 = Freighter Silver Stag has been destroyed. Your mission has failed.
+msn.s07.e110 = Both freighters have reached the Vesta sector. Mission accomplished!
+
+msn.s08.name = 08. A Matter of Focus
+msn.s08.desc = An illegal drug cartel has set up major a distribution operation in the Solus system. A major shipment is being brought in tonight. Disable or destroy the smugglers before they can offload their cargo.
+msn.s08.sitrep = An illegal drug cartel backed by the Brotherhood of Iron criminal organization has set up major a distribution operation in the Solus system. The drug of choice is a substance called 'Focus' that has become increasingly popular among students and some of the wealthier intelligensia. Local law enforcement has been unable to stem the tide of this devastating and addictive vice.\n\nWe have information from an inside source that a major shipment is being brought in tonight. The smugglers are using Brotherhood pirate vessels - they are lightly armored but very difficult to track and target.
+msn.s08.obj = * Disable or destroy smugglers in the Solus sector\n* Escort any civilian traffic out of the area
+msn.s08.e20 = The smugglers have transferred their cargo to a landing craft.
+msn.s08.e21 = Disable or destroy the landing craft before it can break orbit.
+msn.s08.e22 = The landing craft has escaped with the shipment. Your mission has failed.
+msn.s08.e50 = The smugglers were destroyed before they could offload their shipment. Mission accomplished!
+msn.s08.e60 = The landing craft was destroyed before it could break orbit. Mission complete!
+
+msn.s09.name = 09. Hounds and Hunters
+msn.s09.desc = An enemy destroyer squadron has broken off from the main fleet and entered the Paragon system. Your Spectre-class Task Force must resolve this threat as quickly as possible and return to the main fleet.
+msn.s09.sitrep = An enemy destroyer squadron has broken off from the main fleet and entered the Paragon system. Force:Command believes that this is a diversionary tactic in preparation for a major incursion elsewhere in Alliance space. We need to resolve this threat as quickly as possible and return to the main fleet.\n\nParagon traffic control is working to route civilian vessels away from the combat zone, but make sure you verify your targets before engaging.
+msn.s09.obj = * Destroy or disable destroyer squadron Wolf\n* Protect civilian assets in Paragon system
+msn.s09.e50 = The enemy destroyer squadron has been destroyed. Mission complete!
+
+msn.s10.name = 10. Fiery the Angels Fell
+msn.s10.desc = The Korian Affair has reached a crisis point. The only hope of salvaging the treaty negotiations is for Force Second Fleet to intercept the Dantari CVBG before the Korian faction has time to react. The CV-70 Antares and her battle group will deploy in the Korius sector and force the Dantari back to the negotiating table.
+msn.s10.sitrep = The Korian Affair has reached a crisis point. Treaty negotations have collapsed from internal conflicts between the Korian and Dantari factions. The Dantari have broken the temporary cease fire agreement and dispatched a carrier group to the Korius Sector.\n\nThe only hope of salvaging the treaty negotiations is for Force Second Fleet to intercept the Dantari CVBG before the Korian faction has time to react. The CV-70 Antares and her battle group will deploy in the Korius sector and force the Dantari back to the negotiating table.
+msn.s10.obj = * Remove the Dantari battle group from Korius sector\n* Protect Alliance and Korian assets in the combat zone
+msn.s10.e01 = The enemy carrier has been destroyed. Mission accomplished!
+msn.s10.e02 = The enemy carrier has bugged out. Mission accomplished!
+
+msn.m01.name = M1. Hawk Match
+msn.m01.desc = Four-way deathmatch with Stormhawk fighters in Borova Sector.
+msn.m01.sitrep = Four-way deathmatch with Stormhawk fighters in Borova Sector. Each fighter has three lives. You will be rearmed with missiles and decoys after each respawn.\n \n Good Luck!
+msn.m01.obj = * Kill or be killed!
+msn.m01.e10 = HAWK WINS!
+msn.m01.e20 = FALCON WINS!
+msn.m01.e30 = RAPTOR WINS!
+msn.m01.e40 = CONDOR WINS!
+
+msn.m02.name = M2. Fighter Thrash Pit
+msn.m02.desc = Multiple spaceborne fighters locked in team-vs-team action.
+msn.m02.sitrep = Get ready to rumble! This is a team-vs-team scenario with six ships on each side. The Blue team has four Stormhawk multirole fighters and two Thunderbolt attack ships, while the Red team has four Viper interceptors and two Avenger heavy fighters.\n\nYour mission is to eliminate the opposition and protect your team mates. All ships have three lives, so be sure to watch your back!
+msn.m02.obj = * Eliminate all enemy fighters.\n* Protect friendly strike ships.
+
+msn.m03.name = M3. Destroyer Duel
+msn.m03.desc = Small fleet engagement between opposing destroyer squadrons.
+msn.m03.sitrep = A rogue faction has taken command of the Clarke DETRON in the Dante sector. Accompanying the Clarke are the Destroyer/Escort Jackson, and the Berents-class Frigates Parker and Suffolk. You are in command of DETRON 40, led by DD-351 Wraith, and supported by the Nemesis and the Frigate Bosporus.\n \n Hostile actions by Force officers will not stand. You must drive this lesson home at all costs. Good luck.
+msn.m03.obj = * Fleet Engagement - Engage the Destroyer Squadron led by DD-701 Clarke.\n\n* Clear Dante orbit of hostile vessels.
+
+msn.m04.name = M4. War Games
+msn.m04.desc = Fleet war game scenario designed for the persistent multiplayer server mode.
+msn.m04.sitrep = Welcome to the Force:Space fleet war game exercises in Janus System. For this scenario, two equal star fleets will face off in unlimited combat. The entire system is in bounds for this exercise.\n \n Fleet 1 (BLUE) consists of the Archon CVBG including twenty Stormhawk fighters, and Spectre-Class DESRON 43 'Shadow'.\n \n Fleet 2 (RED) includes the Titan CVBG with twenty Stormhawk fighters, and Spectre-Class DESRON 45 'Warlock'.\n \n The goal of the exercise is to destroy the enemy carrier. The exercise will end when either the Archon or the Titan has been destroyed.
+msn.m04.obj = * Destroy enemy carrier\n* Protect ownside carrier from enemy fleet
+msn.m04.e01 = ARCHON DESTROYED - RED TEAM VICTORY!
+msn.m04.e07 = TITAN DESTROYED - BLUE TEAM VICTORY!
+
+#
+# CAMPAIGN MISSION TEXT - dynamic campaigns
+#
+
+c01.name = Operation Live Fire
+c01.desc = The Third Fleet of the Terellian Alliance is participating in live fire training exercises in the Janus star system.
+c01.sitrep = \tThe Third Fleet of the Terellian Alliance Force:Space is participating in live fire training exercises in the Janus star system. Operation Live Fire will give the fleet some much needed practice under conditions that are as close to combat reality as possible.\n\n\tThe schedule of training scenarios in this campaign has been designed to bring you up to speed on Force:Space combat operations. The first several missions will give you some practice in fighter operations, both in space and in atmosphere. You will also get a chance to practice some ground strike operations against static pre-planned targets. The last few missions are designed to introduce you to the greater complexity of modern starship combat.\n\nTo begin the first mission, click the [MISSIONS] button on the left side of this screen.\n\n
+c01.orders = \t* Execute all of the training missions in this campaign.
+
+c01.intro.e001 = Training Shuttle 'Proteus'
+c01.intro.e002 = Borova Orbit
+c01.intro.e003 = Task Force 3.7
+c01.intro.e004 = CV-71 'Archon'
+c01.intro.e005 = CA-524 'Stalwart'
+c01.intro.e006 = DD/E-682 'Gerson'
+c01.intro.e007 = DD/E-687 'Simmons'
+
+
+c01.t01.name = Basic Space Flight
+c01.t01.obj = Training - Practice spaceborne fighter operations.
+c01.t01.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. The fleet carrier Archon has been detached to Janek orbit to practice spaceborne fighter operations. As part of the exercise, you have been tasked with flying patrol patterns with your training instructor.
+c01.t01.e01 = Please wait
+c01.t01.e02 = Raise your landing gear
+c01.t01.e03 = Basic controls
+c01.t01.e04 = Mouse steering
+c01.t01.e05 = Navigation system
+c01.t01.e06 = Disengage autonav
+c01.t01.e07 = Throttle and augmenter
+c01.t01.e08 = Lateral thrusters
+c01.t01.e09 = Return to base
+c01.t01.e10 = Docking procedure
+
+c01.t02.name = Target Practice
+c01.t02.obj = Training - Practice spaceborne fighter operations.
+c01.t02.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. The fleet carrier Archon has been detached to Janek orbit to practice spaceborne fighter operations. As part of the exercise, you have been tasked with flying patrol patterns and destroying target drones in your sector.
+c01.t02.e151 = Please wait
+c01.t01.e152 = Raise your landing gear
+c01.t01.e153 = Maintain formation
+c01.t02.e154 = Sensor combat markers
+c01.t01.e155 = Missile Combat
+c01.t01.e201 = Gun Combat
+c01.t01.e205 = Alpha Drones Destroyed - Proceed to next navpoint
+c01.t01.e210 = All Drones Destroyed
+c01.t01.e211 = Engage Vampires
+c01.t01.e213 = Inbound threat evasion techniques
+c01.t01.e215 = Vampires Destroyed
+c01.t01.e300 = Return to base
+c01.t01.e301 = Docking procedure
+
+c01.t03.name = Flight School
+c01.t03.obj = Training - Practice airborne fighter operations.
+c01.t03.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. Your squadron, the Avengers, are on temporary detached duty to Janek Station.As part of the exercise, you have been tasked with practicing take offs and landings, flying patrol patterns and destroying target drones in your sector.
+c01.t03.e200 = Please wait
+c01.t03.e210 = Taking off
+c01.t03.e220 = Raise your langing gear
+c01.t03.e230 = Engage autonav
+c01.t03.e240 = Disengage autonav
+c01.t03.e250 = Airborne combat skills
+c01.t03.e260 = Well done!
+c01.t03.e270 = Order your wingman to head for home
+c01.t03.e300 = Return to base
+c01.t03.e310 = Landing procedure
+c01.t03.e311 = Final approach
+
+c01.t04.name = Ground Strike
+c01.t04.obj = Training Strike - Destroy simulated mining operation.
+c01.t04.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. Your squadron, the Stallions, are on temporary detached duty to Janek Station. As part of the exercise, you have been tasked with destroying support facilities for a simulated mining operation.
+c01.t04.e200 = Please wait
+c01.t04.e210 = Taking off
+c01.t04.e220 = Raise your langing gear
+c01.t04.e230 = Set sensor display to HSD mode
+c01.t04.e240 = Steer towards ground targets
+c01.t04.e250 = Air-to-ground combat skills
+c01.t04.e260 = Sort targets with your wingman
+c01.t04.e270 = Engage your target
+c01.t04.e300 = Engage a second target
+c01.t04.e310 = Resume nav route
+c01.t04.e311 = Return to base
+
+c01.t05.name = Training Cruise
+c01.t05.obj = Training - Practice starship fleet operations.
+c01.t05.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. You will be in command of the Frigate Carlisle in Alystra sector. After you destroy the target drones in that sector, rendevous with the Archon in Janek orbit to complete the exercise.
+c01.t05.e005 = Alpha Drones Destroyed - Proceed to Janek Orbit
+c01.t05.e006 = (Press Q then 3)
+c01.t05.e007 = Training Mission Complete
+c01.t05.e008 = Press ESC 1 to End the Mission
+c01.t05.e009 = Press ESC 1 to End the Mission
+
+c01.t06.name = Advanced Starship Combat
+c01.t06.obj = Training - Practice advanced starship combat maneuvers.
+c01.t06.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. You will be in command of the Destroyer Mahan in Dante sector. You have been tasked with finding and destroying the enemy Wolf-class starship Shannon. You have one hour to complete this exercise. Good luck!
+c01.t06.e050 = Tarkis Detected
+c01.t06.e051 = Tarkis Locked
+
+c01.t07.name = Carrier Operations
+c01.t07.obj = Training - Practice orbital carrier operations.
+c01.t07.sitrep = The Third Fleet is participating in wargame exercises in the Janus system. The fleet carrier Archon has been detached to Alystra orbit to practice spaceborne fighter operations.
+
+
+
+c02.name = Operation Highland
+c02.desc = The Independent System of Solus is in danger of being destroyed by civil war. Dantari Separatists seeking to join the Hegemony Prefecture of Renser have gained control of much of the Solus Star Fleet. The Loyalist faction has requested military aid from the Terellian Alliance. A Force:Space task force has been dispatched to break the blockade, evacuate Alliance citizens from Solus, and stabilize the military situation.
+c02.sitrep = \tThe Independent System of Solus has requested military assistance from Terellian Alliance Force:Command. Dantari Separatists seeking to join the Hegemony Prefecture of Renser have gained control of much of the Solus Star Fleet and have established a blockade around the Trellis Gate. The Loyalist forces and many Alliance civilians have been trapped on the inner planets of the system.\n\n\tForce:Intel believes that the Separatists are being backed with military support from the Prefecture of Renser, a Hegemony border system. All Force:Space units are instructed to be on the lookout for any Hegemony involvement in this conflict.\n
+c02.orders = \t* Protect civilian and allied assets in the Independent System of Solus.\n\t* Break the Separatist blockade of the inner planets.\n\t* Apprehend or destroy military units of the Dantari Separatists.\n\t* Determine the extent of Hegemony involvement in this conflict.\n
+c02.a000 = Solus Directorate Requests Aid
+c02.a060 = Catching Up With You...
+c02.a130 = Coup Attempt Fails
+c02.a140 = Minefield A Cleared
+c02.a150 = Minefield B Cleared
+c02.a160 = Minefield C Cleared
+c02.a170 = Minefield D Cleared
+c02.a180 = Minefield E Cleared
+c02.a190 = New Digs
+c02.a200 = Blockade Broken
+c02.a210 = \tThe Separatist blockade of the Trellis farcaster has been broken, and Phase One of Operation Highland has been successfully concluded. The minefields in Trellis Sector have been cleared, and mobile Separatist forces patrolling the region are beginning to withdraw.\n\n\tWe are now in Phase Two of the Operation - delivering humanitarian aid and securing the inner worlds. Force:Command has authorized emergency freight runs, and we will be escorting those civilian ships for the next few days.\n
+c02.a240 = \t* Protect civilian and allied assets in the Independent System of Solus.\n\t* Support the delivery of humanitarian aid to the inner planets.\n\t* Apprehend or destroy military units of the Dantari Separatists.\n\t* Determine the extent of Hegemony involvement in this conflict.\n
+c02.a260 = Harmony Station at Risk
+c02.a300 = Renser Fleet Buildup
+c02.a305 = \tIn response to recent setbacks to Separatist forces, the Prefecture of Renser is mobilizing their Fourth Fleet. They are expected to reach the Solus system within 40 hours. They claim that the fleet will be used for peace keeping operations, but with the high tensions in the area, Force:Intel believes that they will use our presence as an excuse to attack.\n\n\tForce:Command needs us to redouble our efforts to protect the civilian population and make a decisive strike against the Separatist forces before the Hegemony fleet arrives. Clearly, we have a lot of work to do in the next 20 to 40 hours.\n
+c02.a310 = Separatist Base Discovered
+c02.a330 = Separatist Base Discovered
+c02.a350 = Research Lab Isolated
+c02.a375 = Renser Accuses Alliance
+c02.a410 = Senate Resolution Passes
+c02.a440 = Hegemony Task Force TF4.3
+c02.a450 = \tForce:Command reports that task force TF4.3 from the Hegemony Fourth Fleet 'Manticore' has successfuly translated in system. The task force is currently in Jalah orbit, and we expect them to remain in that sector at least until tomorrow.\n\n\tThere is still plenty of civilian traffic in the system, and several Dantari groups are still ready and willing to fight. We need all Force:Space units to give their best effort in protecting these people and until we can restore the peace.\n
+c02.a455 = \t* Protect civilian and allied assets in the Independent System of Solus.\n\t* Apprehend or destroy military units of the Dantari Separatists.\n\t* Prevent Hegemony units from striking Solusan or allied assets.\n
+c02.a510 = Separatist Withdrawal to Jalah
+c02.a515 = \tAll mobile Separatist forces have withdrawn from the inner planets to Jalah Sector. We believe they plan to regroup and integrate with Hegemony TF4.3 before resuming the offensive in the Solus and Kalon Sectors.\n\n\tOur plan is to strike the Separatist forces at Jalah before they can regroup. If we can keep them off balance in a defensive posture there, we believe they will be prevented from mounting an effective attack on Solus.\n
+c02.a550 = Wolf DESRON Eliminated
+c02.a555 = Kitts DESRON Eliminated
+c02.a560 = Kendra DESRON Eliminated
+c02.a565 = Goliath CVBG Eliminated
+c02.a600 = Solus Victory
+c02.a700 = Renser Invasion
+c02.a701 = Why Renser?
+c02.a710 = \tLoyalist and Separatist leaders have signed a cease-fire agreement and hostile action in this system is winding down. Phase Two of Operation Highland has been successfully completed, and President Valmar has ordered us to commence Phase Three - the disarming of Renser Prefecture.\n\n\tHegemony Task Force TF4.3 has withdrawn from Solus to the Khaital Sector of the Renser System. We have been ordered to pursue them into Renser space and eliminate their ability to project force to any of the neighboring Independent systems.\n
+c02.a711 = \t* Pursue Hegemony Task Force TF4.3 into Renser space.\n\t* Eliminate Renser's ability to project force to neighboring systems.\n\t* Destroy all military units of the Task Force TF4.3.\n\t* Withdraw safely back to the Alliance base in Janus System.\n
+c02.defeat = Operation Highland Defeat
+c02.victory = Operation Highland Victory
+
+
+c03.name = Operation Shining Fortress
+c03.desc = The war begins. Hegemony forces have begun to invade the core Alliance systems. Starfleets from Loris and Kolchev, moving through the independent systems Silessia and Haiche, have attacked key targets in the Janus and Borovan systems. The Alliance Fourth and Fifth Fleets are fighting a defensive battle trying to halt the Hegemony advance, evacuate civilians, and form an effective counterattack.
+c03.sitrep = \tThe Terellian Alliance is facing the first true interstellar war in nearly five hundred years. Hegemony forces have begun to invade the core Alliance systems. Starfleets from Loris and Kolchev, moving through the independent systems Silessia and Haiche, have attacked key targets in the Janus and Borovan systems.\n\n\tForce:Space Fourth Fleet (Titan) is stationed in the Borovan system, and is deploying in a defensive posture to meet the invasion threat. Fifth Fleet (Hyperion) is divided. Task force TF5.15 is assigned to the Janus proving grounds for training exercises. The remainder of Fifth Fleet is spread throughout the Athenar system.
+c03.orders = \t* Protect Alliance civilians and assets in Janus and Borova.\n\t* Evacuate civilians and government personnel as necessary.\n\t* Stop the Hegemony advance until a counterattack can be mounted.\n
+c03.a000 = Hegemony Forces Invade Alliance
+c03.a020 = Almost Home
+c03.a030 = Operation Shining Fortress
+c03.a100 = Back to Borova
+c03.a250 = CV-72 Titan Destroyed
+c03.a310 = \tHegemony destroyers and cruisers have reduced the Titan 7th CVBG while in Borova orbit. The fleet carrier CV-72 Titan is believed lost with all hands. Damage from the fighting was extensive, and several other ships in the Titan battle group may have been damaged or destroyed. A temporary strategic loss of the Borovan system seems likely at this point\n\n\tForce:Space 12th CVBG led by CV-77 Chronos is being readied in Jarnell fleet yards to take over for the Titan. All surviving units of the Fourth Fleet are to fall back to Jarnell and regroup with the Chronos CVBG.\n
+c03.a320 = Fort Talden Attacked
+c03.a330 = Grand Concourse Attacked
+c03.a340 = Ele'aan Diplomats Withdrawn
+c03.a350 = Hegemony Invades Athenar
+c03.a360 = \tHegemony forces have gained temporary control of the Borovan Capitol. Planetary Self Defense Forces are struggling to protect civilian assets as best they can.\n\n\tThe Fourth Fleet has fallen back to Jarnell to regroup with Force:Space 12th CVBG led by CV-77 Chronos. Fourth Fleet must be prepared to resume operations in Borova within twenty hours.\n\n\tThe Hegemony Seventh Fleet in Janus has now also invaded the Athenar system. Force:Space Fifth Fleet has divided into two action groups in an attempt to defend both systems simultaneously.
+c03.a410 = \tHegemony forces have caused considerable destruction to ground-side assets in their attack on the Borovan Capitol. Planetary Self Defense Forces have been fighting valiantly, but they are not equipped to handle an invasion force of this strength without Force aid.\n\n\tThe Fourth Fleet must regain control of the Borovan System as soon as possible to prevent further loss of civilian lives and property.\n
+c03.a450 = Down for Repairs
+c03.a590 = Liberation Day
+c03.a600 = Silessian Confederacy
+c03.a610 = \tAlliance forces have regained control of the Borovan System and Hegemony units are retreating to Silessian space. The Fourth Fleet is to pursue and eliminate as much of the Hegemony force as possible. A token force will be left behind in Borova to finish mopping up.\n\n
+c03.a700 = Haiche Protectorate
+c03.a710 = \tAlliance forces have regained control of the Borovan System and Hegemony units are retreating to Silessian space. The Fourth Fleet is to pursue and eliminate as much of the Hegemony force as possible. A token force will be left behind in Borova to finish mopping up.\n\n
+c03.a750 = Tantalus
+c03.a770 = Far Horizon
+c03.a830 = Brotherhood of Iron
+c03.defeat = Operation Shining Fortress Defeat
+c03.victory = Operation Shining Fortress Victory
+
+
+
+c04.name = Operation Firestorm
+c04.desc = The war comes to an unexpected turning point as new discoveries come to light. Alliance war fleets continue to push into Hegemony territory as new forces are brought into the battle.
+c04.sitrep = \tA small Hegemony outpost has been detected in the Ostara system. Force:Space Sixth Fleet (Atlas) has been tasked with eliminating this threat, as a prelude to the planned invasion of the Tarsus system. Force 9th Carrier Group (Atlas) will reduce the Hegemony fighter component, while the 14th Battle Group (Stormwind) addresses the naval component.
+c04.orders = \t* Reduce or eliminate the Hegemony presence in Ostara.\n\t* Prepare the region for a general invasion of Tarsus.\n\t* Protect Alliance assets in the area.\n
+c04.a000 = Hegemony Outpost Discovered
+c04.a020 = Borovan Archaelith Still Missing
+c04.a030 = Technite Found on Haiche
+c04.a040 = Zolon Ambassador
+c04.a050 = \tThe Zolon Ambassador to the Tarsus system has offered to help mediate a settlement to end the hostilities between the Alliance and the Hegemony. Negotiators from both sides are to meet aboard the Zolon Consular Starship in Tarsus sector under a flag of truce.\n\n\tForce:Space Sixth Fleet (Atlas) is advancing from Ostara to the Tarsus system, and is deploying in a defensive posture to support the peace initiative. Force 14th Battle Group (Stormwind) is escorting the negotiating team to the conference while the 9th Carrier Group (Atlas) patrols the Tarsus sector.Seventh Fleet (Heracles) has now completed replenishment and repair operations in Paragon system. Seventh fleet can be available for duty in the Loris Theater within fifty hours, should the need arise.
+c04.a052 = \t* Protect Alliance negotiators in the Tarsus system.\n\t* Observe the cease-fire.\n\t* Avoid actions against Hegemony units.\n
+c04.a070 = Operation Firestorm
+c04.a075 = \tZolon warships acting in concert with Hegemony agents have attacked the peace conference, killing our negotiating team and destroying every member of the Zolon Consulate in Tarsus. Force:Intel field reports indicate that the recent Hegemony attacks on Alliance territory were carried out with the intention of recovering artifacts and rare materials for use in developing a devestating new type of weapon. The Hegemony military are working with scientists of the Zolon Empire to create a 'Quantum Disruptor' that will destroy computer systems and render all ships incapable faster-than-light travel.\n\n\tIn response to these events, the Hegemony has declared war on the Terellian Alliance. The Alliance President has authorized Force to commence OPERATION FIRESTORM: all out war with the Marakan Hegemony.\n\n\tForce:Space Sixth Fleet (Atlas) will be responsible for securing the Tarsus system, and will then proceed to the Kolchev system with all possible speed. Seventh Fleet (Heracles) is now in Silessia and will report for duty in the Loris Theater within hours to begin the northern thrust toward the key central system of Korius.
+c04.a076 = \t* Secure the Tarsus System.\n\t* Be on the lookout for Zolon units in the Tarsus Theater.\n\t* Protect Alliance assets in the area.\n
+c04.a090 = Strategic Directives
+c04.a096 = New Job
+c04.a097 = Loris Government Collapse
+c04.a130 = Kolchev System
+c04.a150 = Something You Need to Know
+c04.a205 = \tZolon warships acting in concert with Hegemony agents have attacked the peace conference, killing our negotiating team and destroying every member of the Zolon Consulate in Tarsus. Force:Intel field reports indicate that the recent Hegemony attacks on Alliance territory were carried out with the intention of recovering artifacts and rare materials for use in developing a devestating new type of weapon. The Hegemony military are working with scientists of the Zolon Empire to create a 'Quantum Disruptor' that will destroy computer systems and render all ships incapable faster-than-light travel.\n\n\tIn response to these events, the Hegemony has declared war on the Terellian Alliance. The Alliance President has authorized Force to commence OPERATION FIRESTORM: all out war with the Marakan Hegemony.\n\n\tForce:Space Sixth Fleet (Atlas) is well underway in securing the Tarsus system, and will then proceed to the Kolchev system with all possible speed. Seventh Fleet (Heracles) has now arrived in the Loris Theater. Members of the Seventh Fleet are advised to be on the lookout for renegade elements of the Brotherhood of Iron criminal organization who may be operating in that system.
+c04.a206 = \t* Sixth Fleet to secure the Tarsus System.\n\t* Seventh Fleet to secure the Loris Theater.\n\t* Protect Alliance assets in the area.\n
+c04.a220 = The Return of Masil Gannet
+c04.a250 = Korian System
+c04.a255 = \tThe Marakan Hegemony has declared war on the Terellian Alliance. In return, the Alliance President has authorized Force to commence OPERATION FIRESTORM: all out war with the Marakan Hegemony. The immediate goals for this campaign are to secure the vital Hegemony systems of Kolchev in the south, and Korius in the north.\n\n\tForce:Space Sixth Fleet (Atlas) has been assigned to secure the Kolchev system. As expected, the Hegemony Third Fleet has fallen back to that area in hopes of drawing our forces into a trap. Hegemony forces are scattered across four planetary orbits. The northern mountains of the Lovo sector on Kolchev are home to a significant military presence, and will present a unique challenge to the Sixth Fleet.\n\n\tSeventh Fleet (Heracles) has begun the invasion of the Korian system. There are reliable reports that the Separatist leader Masil Gannet has returned to the Korian moon Adantar and established himself as a local warlord. Although Adantar itself is heavily armed, we do not have any good data on the strength of space forces in the Korian system.
+c04.a256 = \t* Sixth Fleet to reduce military targets in the Kolchev System.\n\t* Seventh Fleet to secure the Korian System.\n\t* Apprehend or eliminate the warlord Masil Gannet.\n\t* Protect Alliance assets in the area.\n
+c04.defeat = Operation Firestorm Defeat
+c04.victory = Operation Firestorm Victory
+
+
+
+c05.name = Operation Nightfall
+c05.desc = Two Force:Space fleets press on through major population centers on the road to the Marakan homeworld. Civilians back home begin to question the Alliance's involvement in the war, even as shadows fall upon the climactic battle.
+c05.sitrep = \tOperation Firestorm was not the strategic success we once believed it to be. Force:Intel field agents have been unable to recover either the Borovan Archaelith or any of the illegal technite from the Korian and Kolchev systems. We have now determined that the technite has already been shipped out of Kolchev to the Garrison system, and we believe that the Archaelith cannot be far behind. Garrison is a major military stronghold for the Hegemony, close to the Marak system itself. We cannot estimate how long we have before the Hegemony will be able to produce a Quantum Disruptor weapon system.\n\n\tWe are therefore commencing Operation Nightfall to recover the artifacts from the Garrison system. Our first task is to gain military control of the Radix and Isham star systems. Force First Fleet will take the northern route and secure the Isham system, while Second Fleet holds their southern flank by controlling the Radix system. Our combined forces will then converge on the Garrison system as soon as they can manage it.\n
+c05.orders = \t* First Fleet: Engage military targets in the Isham system.\n\t* Second Fleet: Secure the Radix system.\n\t* Both fleets to converge on the Garrison system as soon as possible.\n
+c05.a000 = Operation Nightfall
+c05.a020 = Tiger Bay Colony
+c05.a021 = Radix System
+c05.a022 = Peace Rally
+c05.a080 = Geothermal Platforms
+c05.a150 = Ramek Station
+c05.a190 = Ramek Station Destroyed
+c05.a280 = Deadman's Alley
+c05.a405 = Garrison Military Laboratory
+c05.a406 = \tWe have completed operations in the Isham and Radix systems and have begun the invasion of Garrison. The Garrison system has always been a major storehouse for the Hegemony military. They maintain a heavily fortified military laboratory in orbit around the planet Garrison.\n\n\tFor the first phase of this invasion, Force:Space First Fleet (Orion) will be assigned to eliminate units in the Rhofar sector, while Second Fleet (Antares) deals with Hegemony forces in Korul.
+c05.a407 = \t* First Fleet assigned to Rhofar Sector.\n\t* Second Fleet assigned to Korul Sector.\n\t* Reduce local defenses in preparation for assault on Garrison Military Laboratory.\n
+c05.a440 = \tBoth First and Second Fleet have converged on Garrison Sector. The Garrison system has always been a major storehouse for the Hegemony military, and this station is going to be no pushover. The station is armored, shielded, and has as much firepower as a heavy cruiser.\n\n
+c05.a441 = \t* Eliminate the Garrison Military Laboratory.\n\t* Reduce Hegemony star fleets in Garrison System.\n\t* Protect Alliance assets in the area.\n
+c05.a500 = Broken Communications
+c05.a590 = Garrison Laboratory Destroyed
+c05.a602 = \tThe Garrison Military Laboratory has been destroyed. However, not all of the Technite has yet been accounted for. Force:Intel believes that the remaining stockpile has been shipped to Volante in the Trocanther System for processing.\n\n
+c05.a603 = \t* Eliminate the Trocanther Biodomes.\n\t* Reduce Hegemony star fleets throughout Trocanther System.\n\t* Protect Alliance assets in the area.\n
+c05.a605 = Trocanther Biodomes
+c05.a660 = Blackwing Destroyed
+c05.a661 = Hood Destroyed
+c05.a662 = Omega Destroyed
+c05.a680 = Endgame
+c05.a840 = \tOperation Nightfall is coming rapidly to a conclusion. Our contacts in the Ele'aan Fusion have informed us that the Hegemony may have taken the Archaelith back to the Marak Prime System. Even without the Technite, they could still use the Archaelith against us in the future.\n\nTherefore, the President has asked us to take this fight all the way to Marak, to pressure the Hegemony leadership into surrendering the Archaelith and signing a non-agression pact.\n\n
+c05.a841 = \t* Reduce Hegemony star fleets throughout Marakan System.\n\t* Protect Alliance assets in the area.\n
+c05.a885 = This Can't Wait Any Longer...
+c05.a890 = Status of Marak Prime
+c05.defeat = Operation Nightfall Defeat
+c05.victory = Operation Nightfall Victory
+
+
+
+vox.misc.a01-01 = Glad to see you guys! Thanks for escorting us.
+vox.misc.a01-02 = OK, we're ready to make the jump.
+vox.misc.a01-03 = Form up and we'll go through together.
+vox.misc.a01-04 = All right, we're half way there.
+vox.misc.a01-05 = Next stop: Harmony Station.
+vox.misc.a01-06 = Thanks for the lift. I think we are clear now.
+vox.misc.a01-07 = Looks like our pick-up is late...
+vox.misc.a01-08 = Can you stick with us in case there's any trouble?
+vox.misc.a01-09 = Looks like our escort is here. Let's get going.
+vox.misc.a01-10 = We were expecting some Zodiacs to pick up our cargo.
+vox.misc.a01-11 = Still can't see them. I hope everything is all right.
+vox.misc.a02-01 = Mayday! Mayday! We are under attack!
+vox.misc.a02-02 = Be advised, we show several high-speed contacts inbound.
+vox.misc.a02-03 = Contacts are unknown configuration and presumed hostile.
+vox.misc.a02-04 = We have new orders: Defend the Zolon Consular Starship.
+vox.misc.a02-05 = Well, that didn't go exactly as planned...
+vox.misc.a02-06 = All units: return to base.
+vox.misc.a02-07 = So much for the peace conference, I guess...
+vox.misc.a02-08 = All units: Stand down.
+vox.misc.a02-09 = All units alert: We show several high-speed contacts inbound.
+vox.misc.a02-10 = All units: Defend the Zolon Consular Starship.
+
+vox.abort! abort! = Abort! Abort!
+vox.acknowledged = Acknowledged
+vox.affirmative = Affirmative
+vox.alpha 1 = Alpha 1
+vox.alpha 2 = Alpha 2
+vox.alpha 3 = Alpha 3
+vox.alpha 4 = Alpha 4
+vox.alpha flight = Alpha Flight
+vox.alpha leader = Alpha Leader
+vox.ares 1 = Ares 1
+vox.ares 2 = Ares 2
+vox.ares 3 = Ares 3
+vox.ares 4 = Ares 4
+vox.ares flight = Ares Flight
+vox.ares leader = Ares Leader
+vox.blade 1 = Blade 1
+vox.blade 2 = Blade 2
+vox.blade 3 = Blade 3
+vox.blade 4 = Blade 4
+vox.blade flight = Blade Flight
+vox.blade leader = Blade Leader
+vox.bracket target = Bracket Target
+vox.bravo 1 = Bravo 1
+vox.bravo 2 = Bravo 2
+vox.bravo 3 = Bravo 3
+vox.bravo 4 = Bravo 4
+vox.bravo flight = Bravo Flight
+vox.bravo leader = Bravo Leader
+vox.break and attack = Break and attack
+vox.break off immediately! = Break off immediately!
+vox.breaking orbit = Breaking orbit
+vox.buddy spike! = Buddy spike!
+vox.calling inbound = Calling inbound
+vox.captain on the bridge = Captain on the bridge
+vox.check your fire! = Check your fire!
+vox.checking out! = Checking out!
+vox.commence docking = Commence docking
+vox.condor 1 = Condor 1
+vox.condor 2 = Condor 2
+vox.condor 3 = Condor 3
+vox.condor 4 = Condor 4
+vox.condor flight = Condor Flight
+vox.condor leader = Condor Leader
+vox.confirm your targets! = Confirm your targets!
+vox.confirmed kill! = Confirmed kill!
+vox.copy that = Copy that
+vox.cover me = Cover me
+vox.delta 1 = Delta 1
+vox.delta 2 = Delta 2
+vox.delta 3 = Delta 3
+vox.delta 4 = Delta 4
+vox.delta flight = Delta Flight
+vox.delta leader = Delta Leader
+vox.dragon 1 = Dragon 1
+vox.dragon 2 = Dragon 2
+vox.dragon 3 = Dragon 3
+vox.dragon 4 = Dragon 4
+vox.dragon flight = Dragon Flight
+vox.dragon leader = Dragon Leader
+vox.eagle 1 = Eagle 1
+vox.eagle 2 = Eagle 2
+vox.eagle 3 = Eagle 3
+vox.eagle 4 = Eagle 4
+vox.eagle flight = Eagle Flight
+vox.eagle leader = Eagle Leader
+vox.echo 1 = Echo 1
+vox.echo 2 = Echo 2
+vox.echo 3 = Echo 3
+vox.echo 4 = Echo 4
+vox.echo flight = Echo Flight
+vox.echo leader = Echo Leader
+vox.enemy destroyed! = Enemy destroyed!
+vox.engage quantum drive = Engage quantum drive
+vox.engage = Engage
+vox.engaging = Engaging
+vox.escort = Escort
+vox.exec, you have the conn = Exec, you have the conn
+vox.falcon 1 = Falcon 1
+vox.falcon 2 = Falcon 2
+vox.falcon 3 = Falcon 3
+vox.falcon 4 = Falcon 4
+vox.falcon flight = Falcon Flight
+vox.falcon leader = Falcon Leader
+vox.farcast to = Farcast to
+vox.fox four! = Fox four!
+vox.fox one! = Fox one
+vox.fox three! = Fox three!
+vox.fox two! = Fox two!
+vox.going quantum = Going quantum
+vox.gold 1 = Gold 1
+vox.gold 2 = Gold 2
+vox.gold 3 = Gold 3
+vox.gold 4 = Gold 4
+vox.gold flight = Gold Flight
+vox.gold leader = Gold Leader
+vox.goto box formation = Goto box formation
+vox.goto diamond formation = Goto diamond formation
+vox.goto emcon 1 = Goto EMCON 1
+vox.goto emcon 2 = Goto EMCON 2
+vox.goto emcon 3 = Goto EMCON 3
+vox.goto spread formation = Goto spread formation
+vox.goto trail formation = Goto trail formation
+vox.hammer 1 = Hammer 1
+vox.hammer 2 = Hammer 2
+vox.hammer 3 = Hammer 3
+vox.hammer 4 = Hammer 4
+vox.hammer flight = Hammer Flight
+vox.hammer leader = Hammer Leader
+vox.heading for orbit = Heading for orbit
+vox.hey! we're on your side!= Hey, We're on your side!
+vox.hold all weapons = Hold all weapons
+vox.hornet 1 = Hornet 1
+vox.hornet 2 = Hornet 2
+vox.hornet 3 = Hornet 3
+vox.hornet 4 = Hornet 4
+vox.hornet flight = Hornet Flight
+vox.hornet leader = Hornet Leader
+vox.identify target = Identify target
+vox.jackal 1 = Jackal 1
+vox.jackal 2 = Jackal 2
+vox.jackal 3 = Jackal 3
+vox.jackal 4 = Jackal 4
+vox.jackal flight = Jackal Flight
+vox.jackal leader = Jackal Leader
+vox.jump to = Jump to
+vox.launch probe = Launch probe
+vox.magic 1 = Magic 1
+vox.magic 2 = Magic 2
+vox.magic 3 = Magic 3
+vox.magic 4 = Magic 4
+vox.magic flight = Magic Flight
+vox.magic leader = Magic Leader
+vox.mayday! mayday! = Mayday! Mayday!
+vox.merlin 1 = Merlin 1
+vox.merlin 2 = Merlin 2
+vox.merlin 3 = Merlin 3
+vox.merlin 4 = Merlin 4
+vox.merlin flight = Merlin Flight
+vox.merlin leader = Merlin Leader
+vox.move patrol = Move patrol
+vox.mustang 1 = Mustang 1
+vox.mustang 2 = Mustang 2
+vox.mustang 3 = Mustang 3
+vox.mustang 4 = Mustang 4
+vox.mustang flight = Mustang Flight
+vox.mustang leader = Mustang Leader
+vox.negative, unable = Negative, unable
+vox.nomad 1 = Nomad 1
+vox.nomad 2 = Nomad 2
+vox.nomad 3 = Nomad 3
+vox.nomad 4 = Nomad 4
+vox.nomad flight = Nomad Flight
+vox.nomad leader = Nomad Leader
+vox.omega 1 = Omega 1
+vox.omega 2 = Omega 2
+vox.omega 3 = Omega 3
+vox.omega 4 = Omega 4
+vox.omega flight = Omega Flight
+vox.omega leader = Omega Leader
+vox.on final approach = On final apprach
+vox.picture is clear = Picture is clear
+vox.prepare to be destroyed!=Prepare to be destroyed!
+vox.ranger 1 = Ranger 1
+vox.ranger 2 = Ranger 2
+vox.ranger 3 = Ranger 3
+vox.ranger 4 = Ranger 4
+vox.ranger flight = Ranger Flight
+vox.ranger leader = Ranger Leader
+vox.raptor 1 = Raptor 1
+vox.raptor 2 = Raptor 2
+vox.raptor 3 = Raptor 3
+vox.raptor 4 = Raptor 4
+vox.raptor flight = Raptor Flight
+vox.raptor leader = Raptor Leader
+vox.request picture = Request picture
+vox.request support = Request support
+vox.resume mission = Request mission
+vox.return to base = Return to base
+vox.return to formation = Return to formation
+vox.roger that = Roger that
+vox.roger your approach = Roger your approach
+vox.rogue 1 = Rogue 1
+vox.rogue 2 = Rogue 2
+vox.rogue 3 = Rogue 3
+vox.rogue 4 = Rogue 4
+vox.rogue flight = Rogue Flight
+vox.rogue leader = Rogue Leader
+vox.say your position = Say your position
+vox.sentry 1 = Sentry 1
+vox.sentry 2 = Sentry 2
+vox.sentry 3 = Sentry 3
+vox.sentry 4 = Sentry 4
+vox.sentry flight = Sentry Flight
+vox.sentry leader = Sentry Leader
+vox.she's breaking up! = She's breaking up!
+vox.sierra 1 = Sierra 1
+vox.sierra 2 = Sierra 2
+vox.sierra 3 = Sierra 3
+vox.sierra 4 = Sierra 4
+vox.sierra flight = Sierra Flight
+vox.sierra leader = Sierra Leader
+vox.skip navpoint = Skip navpoint
+vox.splash four! = Splash four!
+vox.splash one! = Splash one!
+vox.splash three! = Splash three!
+vox.splash two! = Splash two!
+vox.tango 1 = Tango 1
+vox.tango 2 = Tango 2
+vox.tango 3 = Tango 3
+vox.tango 4 = Tango 4
+vox.tango flight = Tango Flight
+vox.tango leader = Tango Leader
+vox.target destroyed! = Target destroyed!
+vox.this is = this is
+vox.this is alpha 1 = this is Alpha 1
+vox.this is alpha 2 = this is Alpha 2
+vox.this is alpha 3 = this is Alpha 3
+vox.this is alpha 4 = this is Alpha 4
+vox.this is alpha leader = this is Alpha Leader
+vox.this is ares 1 = this is Ares 1
+vox.this is ares 2 = this is Ares 2
+vox.this is ares 3 = this is Ares 3
+vox.this is ares 4 = this is Ares 4
+vox.this is ares leader = this is Ares Leader
+vox.this is blade 1 = this is Blade 1
+vox.this is blade 2 = this is Blade 2
+vox.this is blade 3 = this is Blade 3
+vox.this is blade 4 = this is Blade 4
+vox.this is blade leader = this is Blade Leader
+vox.this is bravo 1 = this is Bravo 1
+vox.this is bravo 2 = this is Bravo 2
+vox.this is bravo 3 = this is Bravo 3
+vox.this is bravo 4 = this is Bravo 4
+vox.this is bravo leader = this is Bravo Leader
+vox.this is condor 1 = this is Condor 1
+vox.this is condor 2 = this is Condor 2
+vox.this is condor 3 = this is Condor 3
+vox.this is condor 4 = this is Condor 4
+vox.this is condor leader = this is Condor Leader
+vox.this is delta 1 = this is Delta 1
+vox.this is delta 2 = this is Delta 2
+vox.this is delta 3 = this is Delta 3
+vox.this is delta 4 = this is Delta 4
+vox.this is delta leader = this is Delta Leader
+vox.this is dragon 1 = this is Dragon 1
+vox.this is dragon 2 = this is Dragon 2
+vox.this is dragon 3 = this is Dragon 3
+vox.this is dragon 4 = this is Dragon 4
+vox.this is dragon leader = this is Dragon Leader
+vox.this is eagle 1 = this is Eagle 1
+vox.this is eagle 2 = this is Eagle 2
+vox.this is eagle 3 = this is Eagle 3
+vox.this is eagle 4 = this is Eagle 4
+vox.this is eagle leader = this is Eagle Leader
+vox.this is echo 1 = this is Echo 1
+vox.this is echo 2 = this is Echo 2
+vox.this is echo 3 = this is Echo 3
+vox.this is echo 4 = this is Echo 4
+vox.this is echo leader = this is Echo Leader
+vox.this is falcon 1 = this is Falcon 1
+vox.this is falcon 2 = this is Falcon 2
+vox.this is falcon 3 = this is Falcon 3
+vox.this is falcon 4 = this is Falcon 4
+vox.this is falcon leader = this is Falcon Leader
+vox.this is gold 1 = this is Gold 1
+vox.this is gold 2 = this is Gold 2
+vox.this is gold 3 = this is Gold 3
+vox.this is gold 4 = this is Gold 4
+vox.this is gold leader = this is Gold Leader
+vox.this is hammer 1 = this is Hammer 1
+vox.this is hammer 2 = this is Hammer 2
+vox.this is hammer 3 = this is Hammer 3
+vox.this is hammer 4 = this is Hammer 4
+vox.this is hammer leader = this is Hammer Leader
+vox.this is hornet 1 = this is Hornet 1
+vox.this is hornet 2 = this is Hornet 2
+vox.this is hornet 3 = this is Hornet 3
+vox.this is hornet 4 = this is Hornet 4
+vox.this is hornet leader = this is Hornet Leader
+vox.this is jackal 1 = this is Jackal 1
+vox.this is jackal 2 = this is Jackal 2
+vox.this is jackal 3 = this is Jackal 3
+vox.this is jackal 4 = this is Jackal 4
+vox.this is jackal leader = this is Jackal Leader
+vox.this is magic 1 = this is Magic 1
+vox.this is magic 2 = this is Magic 2
+vox.this is magic 3 = this is Magic 3
+vox.this is magic 4 = this is Magic 4
+vox.this is magic leader = this is Magic Leader
+vox.this is merlin 1 = this is Merlin 1
+vox.this is merlin 2 = this is Merlin 2
+vox.this is merlin 3 = this is Merlin 3
+vox.this is merlin 4 = this is Merlin 4
+vox.this is merlin leader = this is Merlin Leader
+vox.this is mustang 1 = this is Mustang 1
+vox.this is mustang 2 = this is Mustang 2
+vox.this is mustang 3 = this is Mustang 3
+vox.this is mustang 4 = this is Mustang 4
+vox.this is mustang leader = this is Mustang Leader
+vox.this is nomad 1 = this is Nomad 1
+vox.this is nomad 2 = this is Nomad 2
+vox.this is nomad 3 = this is Nomad 3
+vox.this is nomad 4 = this is Nomad 4
+vox.this is nomad leader = this is Nomad Leader
+vox.this is omega 1 = this is Omega 1
+vox.this is omega 2 = this is Omega 2
+vox.this is omega 3 = this is Omega 3
+vox.this is omega 4 = this is Omega 4
+vox.this is omega leader = this is Omega Leader
+vox.this is ranger 1 = this is Ranger 1
+vox.this is ranger 2 = this is Ranger 2
+vox.this is ranger 3 = this is Ranger 3
+vox.this is ranger 4 = this is Ranger 4
+vox.this is ranger leader = this is Ranger Leader
+vox.this is raptor 1 = this is Raptor 1
+vox.this is raptor 2 = this is Raptor 2
+vox.this is raptor 3 = this is Raptor 3
+vox.this is raptor 4 = this is Raptor 4
+vox.this is raptor leader = this is Raptor Leader
+vox.this is rogue 1 = this is Rogue 1
+vox.this is rogue 2 = this is Rogue 2
+vox.this is rogue 3 = this is Rogue 3
+vox.this is rogue 4 = this is Rogue 4
+vox.this is rogue leader = this is Rogue Leader
+vox.this is sentry 1 = this is Sentry 1
+vox.this is sentry 2 = this is Sentry 2
+vox.this is sentry 3 = this is Sentry 3
+vox.this is sentry 4 = this is Sentry 4
+vox.this is sentry leader = this is Sentry Leader
+vox.this is sierra 1 = this is Sierra 1
+vox.this is sierra 2 = this is Sierra 2
+vox.this is sierra 3 = this is Sierra 3
+vox.this is sierra 4 = this is Sierra 4
+vox.this is sierra leader = this is Sierra Leader
+vox.this is tango 1 = this is Tango 1
+vox.this is tango 2 = this is Tango 2
+vox.this is tango 3 = this is Tango 3
+vox.this is tango 4 = this is Tango 4
+vox.this is tango leader = this is Tango Leader
+vox.this is tiger 1 = this is Tiger 1
+vox.this is tiger 2 = this is Tiger 2
+vox.this is tiger 3 = this is Tiger 3
+vox.this is tiger 4 = this is Tiger 4
+vox.this is tiger leader = this is Tiger Leader
+vox.this is victor 1 = this is Victor 1
+vox.this is victor 2 = this is Victor 2
+vox.this is victor 3 = this is Victor 3
+vox.this is victor 4 = this is Victor 4
+vox.this is victor leader = this is Victor Leader
+vox.this is voodoo 1 = this is Voodoo 1
+vox.this is voodoo 2 = this is Voodoo 2
+vox.this is voodoo 3 = this is Voodoo 3
+vox.this is voodoo 4 = this is Voodoo 4
+vox.this is voodoo leader = this is Voodoo Leader
+vox.this is vulcan 1 = this is Vulcan 1
+vox.this is vulcan 2 = this is Vulcan 2
+vox.this is vulcan 3 = this is Vulcan 3
+vox.this is vulcan 4 = this is Vulcan 4
+vox.this is vulcan leader = this is Vulcan Leader
+vox.this is wolf 1 = this is Wolf 1
+vox.this is wolf 2 = this is Wolf 2
+vox.this is wolf 3 = this is Wolf 3
+vox.this is wolf 4 = this is Wolf 4
+vox.this is wolf leader = this is Wolf Leader
+vox.this is zeta 1 = this is Zeta 1
+vox.this is zeta 2 = this is Zeta 2
+vox.this is zeta 3 = this is Zeta 3
+vox.this is zeta 4 = this is Zeta 4
+vox.this is zeta leader = this is Zeta Leader
+vox.this is zulu 1 = this is Zulu 1
+vox.this is zulu 2 = this is Zulu 2
+vox.this is zulu 3 = this is Zulu 3
+vox.this is zulu 4 = this is Zulu 4
+vox.this is zulu leader = this is Zulu Leader
+
+vox.this is aegis = this is Aegis
+vox.this is annihilator = this is Annihilator
+vox.this is antares = this is Antares
+vox.this is archon = this is Archon
+vox.this is argiles = this is Argiles
+vox.this is arthur = this is Arthur
+vox.this is asher = this is Asher
+vox.this is assurance = this is Assurance
+vox.this is atlas = this is Atlas
+vox.this is audacious = this is Audacious
+vox.this is avalon = this is Avalon
+vox.this is banshee = this is Banshee
+vox.this is bear = this is Bear
+vox.this is belfast = this is Belfast
+vox.this is berents = this is Berents
+vox.this is bering = this is Bering
+vox.this is bold = this is Bold
+vox.this is bosporus = this is Bosporus
+vox.this is braveheart = this is Braveheart
+vox.this is bristol = this is Bristol
+vox.this is brunner = this is Brunner
+vox.this is canton = this is Canton
+vox.this is capable = this is Capable
+vox.this is card = this is Card
+vox.this is carlisle = this is Carlisle
+vox.this is cavanaugh = this is Cavanaugh
+vox.this is chance = this is Chance
+vox.this is chaos = this is Chaos
+vox.this is charon = this is Charon
+vox.this is chimaera = this is Chimaera
+vox.this is chronos = this is Chronos
+vox.this is clark = this is Clark
+vox.this is clarkeston = this is Clarkeston
+vox.this is columbia = this is Columbia
+vox.this is courageous = this is Courageous
+vox.this is dalton = this is Dalton
+vox.this is daring = this is Daring
+vox.this is darvon = this is Darvon
+vox.this is dauntless = this is Dauntless
+vox.this is davis = this is Davis
+vox.this is defender = this is Defender
+vox.this is defiant = this is Defiant
+vox.this is deforest = this is Deforest
+vox.this is delmar = this is Delmar
+vox.this is demolisher = this is Demolisher
+vox.this is demon = this is Demon
+vox.this is devastator = this is Devastator
+vox.this is douglas = this is Douglas
+vox.this is drayton = this is Drayton
+vox.this is durham = this is Durham
+vox.this is enigma = this is Enigma
+vox.this is essex = this is Essex
+vox.this is fearless = this is Fearless
+vox.this is forthright = this is Forthright
+vox.this is fortitude = this is Fortitude
+vox.this is furious = this is Furious
+vox.this is galland = this is Galland
+vox.this is gallantry = this is Gallantry
+vox.this is gamma = this is Gamma
+vox.this is gerrond = this is Gerrond
+vox.this is gerson = this is Gerson
+vox.this is ghola = this is Ghola
+vox.this is gibson = this is Gibson
+vox.this is gorgon = this is Gorgon
+vox.this is guardian = this is Guardian
+vox.this is hale = this is Hale
+vox.this is halston = this is Halston
+vox.this is havoc = this is Havoc
+vox.this is hawker = this is Hawker
+vox.this is hemmet = this is Hemmet
+vox.this is heracles = this is Heracles
+vox.this is heroic = this is Heroic
+vox.this is hoffman = this is Hoffman
+vox.this is honesty = this is Honesty
+vox.this is honorable = this is Honorable
+vox.this is hughes = this is Hughes
+vox.this is huntress = this is Huntress
+vox.this is hydra = this is Hydra
+vox.this is hyperion = this is Hyperion
+vox.this is impervious = this is Impervious
+vox.this is integrity = this is Integrity
+vox.this is intrepid = this is Intrepid
+vox.this is jackson = this is Jackson
+vox.this is justice = this is Justice
+vox.this is keller = this is Keller
+vox.this is kelvin = this is Kelvin
+vox.this is kent = this is Kent
+vox.this is kingston = this is Kingston
+vox.this is lawrence = this is Lawrence
+vox.this is leyte = this is Leyte
+vox.this is loyalty = this is Loyalty
+vox.this is mahan = this is Mahan
+vox.this is malory = this is Malory
+vox.this is merlin = this is Merlin
+vox.this is messina = this is Messina
+vox.this is morgan = this is Morgan
+vox.this is morlock = this is Morlock
+vox.this is mysterious = this is Mysterious
+vox.this is nalu = this is Nalu
+vox.this is necromancer = this is Necromancer
+vox.this is nemesis = this is Nemesis
+vox.this is nichols = this is Nichols
+vox.this is nightmare = this is Nightmare
+vox.this is nightshade = this is Nightshade
+vox.this is nordic = this is Nordic
+vox.this is normandy = this is Normandy
+vox.this is ogre = this is Ogre
+vox.this is onslaught = this is Onslaught
+vox.this is orion = this is Orion
+vox.this is orknies = this is Orknies
+vox.this is orleans = this is Orleans
+vox.this is oxford = this is Oxford
+vox.this is parker = this is Parker
+vox.this is parks = this is Parks
+vox.this is pascal = this is Pascal
+vox.this is phantasm = this is Phantasm
+vox.this is phantom = this is Phantom
+vox.this is portsmouth = this is Portsmouth
+vox.this is predator = this is Predator
+vox.this is protector = this is Protector
+vox.this is radix = this is Radix
+vox.this is rainier = this is Rainier
+vox.this is raven = this is Raven
+vox.this is redstone = this is Redstone
+vox.this is relentless = this is Relentless
+vox.this is resolve = this is Resolve
+vox.this is response = this is Response
+vox.this is revenant = this is Revenant
+vox.this is reynolds = this is Reynolds
+vox.this is robinson = this is Robinson
+vox.this is ryan = this is Ryan
+vox.this is salas = this is Salas
+vox.this is secret fire = this is Secret fire
+vox.this is shadow = this is Shadow
+vox.this is shaw = this is Shaw
+vox.this is shrike = this is Shrike
+vox.this is simmons = this is Simmons
+vox.this is smith = this is Smith
+vox.this is sorrel = this is Sorrel
+vox.this is spectre = this is Spectre
+vox.this is stalwart = this is Stalwart
+vox.this is standish = this is Standish
+vox.this is steadfast = this is Steadfast
+vox.this is stormwind = this is Stormwind
+vox.this is suffolk = this is Suffolk
+vox.this is surrey = this is Surrey
+vox.this is tanner = this is Tanner
+vox.this is titan = this is Titan
+vox.this is trieste = this is Trieste
+vox.this is truth = this is Truth
+vox.this is typhon = this is Typhon
+vox.this is typhoon = this is Typhoon
+vox.this is valiant = this is Valiant
+vox.this is valorous = this is Valorous
+vox.this is vance = this is Vance
+vox.this is vanguard = this is Vanguard
+vox.this is vernor = this is Vernor
+vox.this is victorious = this is Victorious
+vox.this is vortex = this is Vortex
+vox.this is warlock = this is Warlock
+vox.this is weber = this is Weber
+vox.this is wraith = this is Wraith
+
+vox.tiger 1 = Tiger 1
+vox.tiger 2 = Tiger 2
+vox.tiger 3 = Tiger 3
+vox.tiger 4 = Tiger 4
+vox.tiger flight = Tiger Flight
+vox.tiger leader = Tiger Leader
+vox.unable = unable
+vox.understood = Understood
+vox.unknown contact = unknown contact
+vox.victor 1 = Victor 1
+vox.victor 2 = Victor 2
+vox.victor 3 = Victor 3
+vox.victor 4 = Victor 4
+vox.victor flight = Victor Flight
+vox.victor leader = Victor Leader
+vox.voodoo 1 = Voodoo 1
+vox.voodoo 2 = Voodoo 2
+vox.voodoo 3 = Voodoo 3
+vox.voodoo 4 = Voodoo 4
+vox.voodoo flight = Voodoo Flight
+vox.voodoo leader = Voodoo Leader
+vox.vulcan 1 = Vulcan 1
+vox.vulcan 2 = Vulcan 2
+vox.vulcan 3 = Vulcan 3
+vox.vulcan 4 = Vulcan 4
+vox.vulcan flight = Vulcan Flight
+vox.vulcan leader = Vulcan Leader
+vox.watch it! = Watch it!
+vox.wave off - runway is closed = Wave Off - runway is closed
+vox.we're going down! = We're going down!
+vox.wolf 1 = Wolf 1
+vox.wolf 2 = Wolf 2
+vox.wolf 3 = Wolf 3
+vox.wolf 4 = Wolf 4
+vox.wolf flight = Wolf Flight
+vox.wolf leader = Wolf Leader
+vox.you have clearance = You have clearance
+vox.zeta 1 = Zeta 1
+vox.zeta 2 = Zeta 2
+vox.zeta 3 = Zeta 3
+vox.zeta 4 = Zeta 4
+vox.zeta flight = Zeta Flight
+vox.zeta leader = Zeta Leader
+vox.zulu 1 = Zulu 1
+vox.zulu 2 = Zulu 2
+vox.zulu 3 = Zulu 3
+vox.zulu 4 = Zulu 4
+vox.zulu flight = Zulu Flight
+vox.zulu leader = Zulu Leader
+
+# EOF \ No newline at end of file
diff --git a/data/content/Missions/01-Alert.def b/data/content/Missions/01-Alert.def
new file mode 100644
index 0000000..e942e74
--- /dev/null
+++ b/data/content/Missions/01-Alert.def
@@ -0,0 +1,151 @@
+MISSION
+
+name: "msn.s01.name"
+type: PATROL
+system: Ostara
+region: Aram
+
+start: "00/08:00:00"
+degrees: true
+
+sitrep: "msn.s01.sitrep"
+
+objective: "msn.s01.obj"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+ship: {
+ name: Gerson,
+ design: Asher,
+ loc: (-20e3, 7e3, 300),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+ship: {
+ name: Simmons,
+ design: Asher,
+ loc: (16e3, -2e3, 100),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+element: {
+ name: Delta,
+ design: Falcon,
+ squadron: Avengers,
+ loc: (1e3, 2e3, 0),
+ mission: patrol,
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: ( 5e3, -10e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: ( 90e3,-130e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: (150e3, -60e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: (120e3, 0, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: ( 10e3, 30e3, 0), speed: 500 },
+}
+
+optional: {
+ min: 1,
+ max: 3,
+
+ element: {
+ name: Nagal,
+ design: Viper,
+ rloc: { ref: "Delta:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Narom,
+ design: Razor,
+ rloc: { ref: "Delta:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Nardik,
+ design: Viper,
+ rloc: { ref: "Delta:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
+
+element: {
+ name: Orten,
+ design: Cobra,
+ loc: (160e3,-210e3, 0),
+ mission: assault,
+
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: Archon },
+
+ navpt: { cmd: vector, loc: (160e3,-130e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Archon, loc: ( 40e3, -30e3, 0), speed: 500 },
+
+}
+
+event: {
+ id: 1,
+ event: Message,
+ sound: "Vox/Misc/M01-E01.ogg",
+ event_message: "msn.s01.e01",
+ event_source: Archon,
+ event_ship: Delta,
+
+ trigger: Navpoint,
+ trigger_ship: "Orten 1",
+ trigger_param: 1,
+ delay: 2,
+}
+
+event: {
+ id: 2,
+ event: Objective,
+ event_message: "msn.s01.e02",
+ event_source: Archon,
+ event_ship: Delta,
+ event_target: Orten,
+ event_param: 8,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 5,
+}
diff --git a/data/content/Missions/02-Wings.def b/data/content/Missions/02-Wings.def
new file mode 100644
index 0000000..c7604c9
--- /dev/null
+++ b/data/content/Missions/02-Wings.def
@@ -0,0 +1,130 @@
+MISSION
+
+name: "msn.s02.name"
+type: ESCORT_STRIKE
+system: Loris
+region: Loris
+
+start: "01/11:00:00"
+degrees: true
+
+sitrep: "msn.s02.sitrep"
+
+objective: "msn.s02.obj"
+
+ship: {
+ name: Heracles,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0
+}
+
+element: {
+ name: Aces,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ carrier: Heracles,
+ iff: 1,
+}
+
+element: {
+ name: Kings,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Heracles,
+ iff: 1,
+}
+
+element: {
+ name: Condor,
+ design: Thunderbolt,
+ squadron: Kings,
+ loc: (4e3, 5e3, 0),
+ mission: assault,
+
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "Ship Strike" },
+
+
+ objective: { cmd: assault, tgt: Ascentia },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( 40e3, -95e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Ascentia, loc: (-20e3, -120e3, 0), speed: 500 },
+}
+
+element: {
+ name: Ranger,
+ design: Falcon,
+ squadron: Aces,
+ loc: (4e3, 5e3, 0),
+ mission: escort,
+
+ player: 1,
+ alert: false,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: escort, tgt: Condor },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: escort, tgt: Condor, rloc: { ref: "Condor:1", dex: 15e3 }, speed: 500 },
+ navpt: { cmd: escort, tgt: Condor, rloc: { ref: "Condor:2", dex: 15e3 }, speed: 500 },
+}
+
+
+element: {
+ name: Ascentia,
+ design: IM3500
+ skin: Green
+ loc: (-200e3, -120e3, 0),
+ mission: misc,
+ intel: known,
+ count: 1,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: ( 0e3, -120e3, 0), speed: 500 },
+ navpt: { cmd: vector, loc: ( 90e3, -50e3, 0), speed: 500 },
+}
+
+element: {
+ name: Martak,
+ design: Viper,
+ rloc: { ref: Ascentia, dex: 30e3, dex_var: 5e3 },
+ mission: intercept,
+ intel: secret,
+ count: 2,
+ iff: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: intercept, tgt: Condor },
+
+ navpt: { cmd: escort, tgt: Ascentia, rloc: { ref: "Ascentia:1", dex: 25e3 }, speed: 500 },
+ navpt: { cmd: intercept, tgt: Condor, rloc: { ref: "Ascentia:2", dex: 25e3 }, speed: 500 },
+}
+
+element: {
+ name: Malik,
+ design: Razor,
+ loc: (200e3, -120e3, 0),
+ mission: intercept,
+ intel: secret,
+ count: 2,
+ iff: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: intercept, tgt: Condor },
+
+ navpt: { cmd: vector, rloc: { ref: "Condor:1", dex: 25e3 }, speed: 500 },
+ navpt: { cmd: intercept, tgt: Condor, rloc: { ref: "Condor:2", dex: 25e3 }, speed: 500 },
+}
diff --git a/data/content/Missions/03-Honor.def b/data/content/Missions/03-Honor.def
new file mode 100644
index 0000000..e305634
--- /dev/null
+++ b/data/content/Missions/03-Honor.def
@@ -0,0 +1,618 @@
+MISSION
+
+name: "msn.s03.name"
+type: ESCORT_SHUTTLE
+system: Solus
+region: Telmera
+
+start: "02/18:10:00"
+stardate: 1080332000
+degrees: true
+
+sitrep: "msn.s03.sitrep"
+
+objective: "msn.s03.obj"
+
+
+
+element: {
+ name: "Solus-Kalon",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (80e3, 20e3, 0),
+
+ objective: { cmd: Vector, tgt: "Kalon-Solus" },
+}
+
+element: {
+ name: "Solus-Trellis",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (-200e3, -100e3, 0),
+}
+
+element: {
+ name: "Solus-Jalah",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (150e3, -180e3, 0),
+}
+
+element: {
+ name: "Kalon-Solus",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Kalon",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Solus-Kalon" },
+}
+
+element: {
+ name: "Harmony Station",
+ design: "Station2",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Kalon",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Harmony Guest 1",
+ design: "Falcon",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (3168, 25163, 0),
+}
+
+element: {
+ name: "Harmony Guest 2",
+ design: "Stormhawk",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (20097, 3968, 0),
+}
+
+element: {
+ name: "Harmony Guest 3",
+ design: "Zodiac",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (-4211, 17728, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (55e3, -56e3, 0),
+}
+
+element: {
+ name: "Factory 1",
+ design: "Fact04",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (56e3, -55e3, 0),
+}
+
+element: {
+ name: "Factory 2",
+ design: "Fact02",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (58e3, -56e3, 0),
+}
+
+element: {
+ name: "Admin",
+ design: "Bldg00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 30e3, 0),
+}
+
+element: {
+ name: "Office",
+ design: "Bldg01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-54e3, 28e3, 0),
+}
+
+element: {
+ name: "Tower",
+ design: "Bldg02",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 32e3, 0),
+}
+
+element: {
+ name: "Alton",
+ design: "Bldg03",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-56e3, 26e3, 0),
+}
+
+element: {
+ name: "Trade Center",
+ design: "Bldg04",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 27e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-53e3, 28e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-56e3, 30e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-51e3, 31e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (53e3, -52e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (53e3, -55e3, 0),
+}
+
+element: {
+ name: "Factory",
+ design: "Fact03",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-52e3, 32e3, 0),
+}
+
+element: {
+ name: "Factory 2",
+ design: "Fact04",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-50e3, 31e3, 0),
+}
+
+element: {
+ name: "Telmera Starport",
+ design: "Airbase1",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+}
+
+element: {
+ name: "Telmera Guest 1",
+ design: "Falcon",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-34225, 35380, 0),
+}
+
+element: {
+ name: "Telmera Guest 2",
+ design: "Stormhawk",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-36379, 32938, 0),
+}
+
+element: {
+ name: "Telmera Guest 3",
+ design: "Zodiac",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-33760, 10404, 0),
+}
+
+
+// ******* PLAYER STUFF STARTS HERE *******
+
+element: {
+ name: Zodiac,
+ design: Zodiac,
+ loc: (-63e3, 30e3, 3e3),
+
+ count: 1,
+ iff: 0,
+
+ hold: 300,
+ head: 180,
+
+ navpt: { cmd: vector, loc: ( -63e3, 45e3, 33e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( 80e3, 60e3, 0e3), speed: 500, rgn: Solus },
+ navpt: { cmd: vector, loc: ( 90e3, -75e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, loc: ( 30e3, -15e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: dock, loc: ( 30e3, 0e3, 0e3), speed: 500, rgn: Kalon, tgt: "Harmony Station" },
+}
+
+element: {
+ name: Daggers,
+ design: "Stormhawk",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ iff: 1,
+ region: "Telmera",
+ loc: (-35e3, 33e3, 0),
+}
+
+element: {
+ name: Dagger,
+ design: Stormhawk,
+ loc: (0,0,5e3),
+
+ count: 2,
+ iff: 1,
+ player: 1,
+ alert: true,
+ squadron: Daggers,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+
+ objective: { cmd: escort, tgt: Zodiac },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( -60e3, 30e3, 3e3), speed: 500 },
+ navpt: { cmd: escort, loc: ( -60e3, 60e3, 33e3), speed: 500 },
+ navpt: { cmd: escort, loc: ( 78e3, 67e3, 0e3), speed: 500, rgn: Solus },
+ navpt: { cmd: escort, loc: ( 90e3, -75e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, loc: ( 30e3, -15e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: dock, loc: ( 30e3, 0e3, 0e3), speed: 500, rgn: Kalon, tgt: "Harmony Station" },
+}
+
+
+// ******* BAD GUYS *******
+
+
+element: {
+ name: Vectral,
+ design: Viper,
+ loc: (-2e3, -5e3, 0),
+ region: Solus,
+
+ count: 2,
+ iff: 2,
+ hold: 600,
+
+ objective: { cmd: intercept, tgt: Zodiac },
+
+ navpt: { cmd: intercept, tgt: Zodiac, loc: ( 50e3, 65e3, 0e3), speed: 500, rgn: Solus },
+}
+
+element: {
+ name: Ramius,
+ design: Razor,
+ rloc: { ref: "Dagger:4", dex: 120e3 }
+ region: Kalon,
+
+ count: 2,
+ iff: 2,
+ hold: 600,
+
+ objective: { cmd: intercept, tgt: Zodiac },
+
+ navpt: { cmd: intercept, tgt: Zodiac, loc: (20e3, -15e3, 0e3), speed: 750, rgn: Kalon },
+}
+
+
+// ******* EVENT LIST *******
+
+
+event: {
+ id: 1,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Zodiac,
+
+ trigger: Navpoint,
+ trigger_ship: Dagger,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ sound: "Vox/Misc/M03-E02.ogg",
+ event_message: "msn.s03.e02",
+ event_ship: Dagger,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ sound: "Vox/Misc/M03-E03.ogg",
+ event_message: "msn.s03.e03",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Event,
+ trigger_param: 2,
+ delay: 5,
+}
+
+event: {
+ id: 4,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Vectral,
+
+ trigger: Jump,
+ trigger_ship: Dagger,
+ delay: 10,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ sound: "Vox/Misc/M03-E05.ogg",
+ event_message: "msn.s03.e05",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Navpoint,
+ trigger_ship: Zodiac,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ sound: "Vox/Misc/M03-E06.ogg",
+ event_message: "msn.s03.e06",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 1.5,
+}
+
+
+event: {
+ id: 90,
+ event: Message,
+ sound: "Vox/Misc/M03-E90.ogg",
+ event_message: "msn.s03.e90",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Jump,
+ trigger_ship: Dagger,
+ delay: 3,
+}
+
+event: {
+ id: 91,
+ event: Message,
+ sound: "Vox/Misc/M03-E91.ogg",
+ event_message: "msn.s03.e91",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Damage,
+ trigger_ship: Zodiac,
+ trigger_param: 20,
+ delay: 1,
+}
+
+event: {
+ id: 99,
+ event: Message,
+ sound: "Vox/Misc/M03-E99.ogg",
+ event_message: "msn.s03.e99",
+
+ trigger: Navpoint,
+ trigger_ship: Zodiac,
+ trigger_param: 5,
+ delay: 1,
+}
+
diff --git a/data/content/Missions/04-Sand.def b/data/content/Missions/04-Sand.def
new file mode 100644
index 0000000..4b00749
--- /dev/null
+++ b/data/content/Missions/04-Sand.def
@@ -0,0 +1,285 @@
+MISSION
+
+name: "msn.s04.name"
+desc: "Air-to-ground action. Destroy enemy mining operation on Haiche."
+type: Strike
+system: Haiche
+region: Haiche
+
+start: "05/09:05:00"
+stardate: 1079225678
+degrees: true
+
+sitrep: "msn.s04.sitrep"
+
+objective: "msn.s04.obj"
+
+
+element: {
+ name: "Archon",
+ design: "Orion",
+ mission: "FLIGHT_OPS",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Haiche",
+ loc: (-25000, 0, 0),
+ head: 0,
+
+}
+
+element: {
+ name: "Desperados",
+ design: "Stormhawk",
+ carrier: "Archon",
+ mission: "Misc",
+ intel: "Secret",
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ iff: 1,
+ playable: false,
+ region: "Haiche",
+ loc: (0, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+}
+
+element: {
+ name: "Alpha",
+ design: "Stormhawk",
+ squadron: "Desperados",
+ mission: "Strike",
+ intel: "Secret",
+ count: 2,
+ alert: true,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Haiche",
+ loc: (5000, 2500, 0),
+
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ objective: { cmd: Strike, tgt: "Cooling Tower 1" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 2" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 3" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 4" },
+
+ navpt: { cmd: Vector, loc: ( 0, -10e3, 0), speed: 500, rgn: "Haiche" },
+ navpt: { cmd: Vector, loc: (10e3, 5e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: Strike, tgt: "Cooling Tower", loc: (-1e3, 7e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: Vector, loc: (24e3, -5e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: RTB, loc: ( 0, 25e3, 0), speed: 500, rgn: "Haiche" },
+}
+
+element: {
+ name: "SAM-1",
+ design: "SAM 1",
+ mission: "Misc",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (75e3, -72e3, 0),
+ head: 3.142,
+
+}
+
+element: {
+ name: "AAA-1",
+ design: "AAA 2",
+ mission: "Misc",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (65e3, 25e3, 0),
+ head: 1.571,
+
+}
+
+degrees: true
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+element: {
+ name: "Valag",
+ design: "Viper",
+ mission: "Intercept",
+ intel: "Secret",
+ count: 2,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-100e3, -110e3, 2e3),
+ head: 180,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Intercept, tgt: "Alpha" },
+
+ navpt: { cmd: Vector, loc: (-40e3, -41e3, 5e3), speed: 450, rgn: "Tantalus" },
+ navpt: { cmd: Intercept, tgt: "Alpha", loc: (2e3, -21e3, 5e3), speed: 600, rgn: "Tantalus" },
+
+}
+
+// EOF
diff --git a/data/content/Missions/05-Execution.def b/data/content/Missions/05-Execution.def
new file mode 100644
index 0000000..7fd7d95
--- /dev/null
+++ b/data/content/Missions/05-Execution.def
@@ -0,0 +1,168 @@
+MISSION
+
+name: "msn.s05.name"
+type: ASSAULT
+system: Renser
+region: Lornas
+
+start: "04/19:20:00"
+degrees: true
+
+sitrep: "msn.s05.sitrep"
+
+objective: "msn.s05.obj"
+
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 2000),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+ship: {
+ name: Gerson,
+ design: Asher,
+ loc: (-20e3, 7e3, 2300),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+ship: {
+ name: Simmons,
+ design: Asher,
+ loc: (16e3, -2e3, 2100),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+element: {
+ name: Warbirds,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+ship: {
+ name: Mustang,
+ design: Thunderbolt,
+ loc: (2e3, 1e3, 3e3),
+ count: 2,
+ iff: 1,
+ player: 1,
+ squadron: Warbirds,
+ mission: assault,
+ alert: true,
+
+ loadout: { ship: -1, name: "Ship Strike" },
+
+ objective: { cmd: assault, tgt: Vagabond },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( 40e3, -115e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Vagabond, loc: (-20e3, -160e3, 0), speed: 500 },
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Vagabond
+ design: Marauder
+ rloc: { ref: "Mustang:2", dex: 40e3 },
+ iff: 3,
+ intel: Known
+}
+
+ship: {
+ name: Sidus,
+ design: Volnaris,
+ loc: (0, 0, 0),
+ region: Renser,
+ iff: 2,
+ intel: Secret,
+ hold: 250,
+
+ navpt: { cmd: vector, rloc: { ref: Vagabond, dex: 50e3 }, rgn: Lornas, speed: 750 },
+}
+
+ship: {
+ name: Orinoco,
+ design: Tiger,
+ loc: (10e3, 0, 0),
+ region: Renser,
+ iff: 2,
+ intel: Secret,
+ hold: 250,
+
+ navpt: { cmd: vector, rloc: { ref: Vagabond, dex: 70e3 }, rgn: Lornas, speed: 750 },
+}
+
+
+// ***** EVENTS *****
+
+event: {
+ id: 1,
+ event: Message,
+ sound: "Vox/Misc/M05-E01.ogg",
+ event_message: "msn.s05.e01",
+
+ trigger: Jump,
+ trigger_ship: Sidus,
+ delay: 10,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ sound: "Vox/Misc/M05-E02.ogg",
+ event_message: "msn.s05.e02",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 6,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ sound: "Vox/Misc/M05-E10.ogg",
+ event_message: "msn.s05.e10"
+ event_source: Archon,
+ event_ship: Mustang,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 8,
+}
+
+event: {
+ id: 11,
+ event: Message,
+ sound: "Vox/Misc/M05-E11.ogg",
+ event_message: "msn.s05.e11",
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 3,
+}
+
diff --git a/data/content/Missions/06-SEAD.def b/data/content/Missions/06-SEAD.def
new file mode 100644
index 0000000..75dc4af
--- /dev/null
+++ b/data/content/Missions/06-SEAD.def
@@ -0,0 +1,229 @@
+MISSION
+
+name: "msn.s06.name"
+type: STRIKE
+system: Radix
+region: "Shadow Canyon"
+
+start: "05/10:34:00"
+degrees: true
+stardate: 1079221203.0
+
+sitrep: "msn.s06.sitrep"
+
+objective: "msn.s06.obj"
+
+element: {
+ name: Echo,
+ design: Thunderbolt,
+ loc: (5e3, -4e3, 2e3),
+ mission: strike,
+ player: 1,
+ count: 1,
+ iff: 1,
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ navpt: { cmd: vector, loc: ( 4.5e3, -26e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -16e3, -44e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -34e3, -50e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -42e3, -87e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -82e3, -50e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-115e3, -42e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-135e3, -60e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-155e3, -67e3, 2e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-171e3, -93e3, 6e3), speed: 500 },
+ navpt: { cmd: strike, loc: (-180e3, -110e3, 2e3), speed: 500 },
+
+}
+
+
+element: {
+ name: "Jackal",
+ design: "Jackal",
+ mission: "Patrol",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-25e3, -95e3, 50),
+ hold: 600,
+
+ navpt: { cmd: patrol, loc: ( -42e3, -87e3, 1e3), speed: 500 },
+}
+
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -145e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -140e3, 0),
+}
+
+element: {
+ name: "Barracks 1",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-177e3, -148e3, 0),
+}
+
+element: {
+ name: "Barracks 2",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -148e3, 0),
+}
+
+element: {
+ name: "Barracks 3",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-173e3, -148e3, 0),
+}
+
+element: {
+ name: "Cryo Tank",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 2,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-170e3, -138e3, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-170e3, -140e3, 0),
+}
+
+element: {
+ name: "Starbase",
+ design: "Airbase3",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-180e3, -125e3, 0),
+}
+
+element: {
+ name: "SAM 1",
+ design: "SAM 1",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-173e3, -130e3, 0),
+}
+
+element: {
+ name: "AAA 1",
+ design: "AAA 1",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -152e3, 0),
+}
+
+
+// ******* EVENT LIST *******
+
+
+event: {
+ id: 1,
+ event: Hold,
+ event_param: 0,
+ event_ship: Jackal,
+
+ trigger: Navpoint,
+ trigger_ship: Echo,
+ trigger_param: 3,
+}
+
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: "SAM 1",
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: "AAA 1",
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M06-E60.ogg",
+ event_message: "msn.s06.e60",
+ event_ship: Pickup,
+
+ trigger: "Event (ALL)",
+ trigger_param: (25, 26),
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event",
+ trigger_param: 60,
+ delay: 5,
+}
diff --git a/data/content/Missions/07-SLGAM.def b/data/content/Missions/07-SLGAM.def
new file mode 100644
index 0000000..ef9ab72
--- /dev/null
+++ b/data/content/Missions/07-SLGAM.def
@@ -0,0 +1,266 @@
+MISSION
+
+name: "msn.s07.name"
+type: ESCORT_FREIGHT
+
+system: Janus
+system: Jarnell
+system: Loris
+system: Paragon
+system: Silessia
+system: Solus
+
+system: Borova
+region: Tulkas
+
+start: "06/16:21:00"
+degrees: true
+
+sitrep: "msn.s07.sitrep"
+
+
+objective: "msn.s07.obj"
+
+ship: {
+ name: Durham,
+ design: Berents,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1,
+
+ objective: { cmd: escort, tgt: "Golden Hart" },
+ objective: { cmd: escort, tgt: "Silver Stag" },
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 50e3, az: 20, az_var: 60, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 15e3, 140e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-100e3, 180e3, 0), speed: 400 },
+}
+
+ship: {
+ name: Kingston,
+ design: Berents,
+ loc: (8e3, 0, 0),
+ count: 1,
+ iff: 1,
+ commander: Durham,
+
+ objective: { cmd: escort, tgt: "Golden Hart" },
+ objective: { cmd: escort, tgt: "Silver Stag" },
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 20e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 15e3, 140e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-110e3, 180e3, 0), speed: 400 },
+}
+
+
+ship: {
+ name: "Golden Hart",
+ design: IM4300
+ skin: Blue
+ rloc: { ref: Durham, dex: 30e3 },
+ count: 1,
+ iff: 0,
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 30e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 0, 180e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-120e3, 190e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Vesta, loc: ( 90e3, -60e3, 0), speed: 400, farcast: true },
+}
+
+ship: {
+ name: "Silver Stag",
+ design: IM4300
+ skin: Blue
+ rloc: { ref: Durham, dex: 25e3 },
+ count: 1,
+ iff: 0,
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 34e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 0, 160e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-120e3, 175e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Vesta, loc: ( 90e3, -60e3, 0), speed: 400, farcast: true },
+}
+
+
+// *** FARCASTER NETWORK ***
+
+element: {
+ name: "Nero-Vesta",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Nero",
+ loc: (-120e3, 110e3, 0),
+
+ objective: { cmd: Vector, tgt: "Vesta-Nero" },
+}
+
+element: {
+ name: "Nero-Silessia",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Nero",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Vesta-Nero",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Vesta",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Nero-Vesta" },
+}
+
+element: {
+ name: "Silessia-Nero",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Silessia",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Nero-Silessia" },
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Revenge,
+ design: Marauder,
+ region: Nero,
+ rloc: { ref: "Nero-Vesta", dex: 110e3, az: 180, az_var: 75 },
+ iff: 3,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Durham" }
+}
+
+ship: {
+ name: Skull,
+ design: Cutlass,
+ region: Nero,
+ rloc: { ref: Revenge, dex: 90e3 },
+ iff: 3,
+ count: 4,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Golden Hart" }
+}
+
+ship: {
+ name: Black,
+ design: Cutlass,
+ region: Nero,
+ rloc: { ref: Revenge, dex: 115e3 },
+ iff: 3,
+ count: 4,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Silver Stag" }
+}
+
+
+
+// *** EVENT LIST ***
+
+
+event: {
+ id: 5,
+ event: Message,
+ sound: "Vox/Misc/M07-E05.ogg",
+ event_message: "msn.s07.e05",
+ event_ship: Durham,
+ event_source: "Golden Hart",
+
+ trigger: Navpoint,
+ trigger_ship: "Golden Hart",
+ trigger_param: 1,
+}
+
+
+event: {
+ id: 80,
+ event: Message,
+ sound: "Vox/Misc/M07-E80.ogg",
+ event_message: "msn.s07.e80",
+
+ trigger: Destroyed,
+ trigger_ship: "Golden Hart",
+}
+
+event: {
+ id: 90,
+ event: Message,
+ sound: "Vox/Misc/M07-E90.ogg",
+ event_message: "msn.s07.e90",
+
+ trigger: Destroyed,
+ trigger_ship: "Silver Stag",
+}
+
+event: {
+ id: 101,
+ event: Message,
+ event_message: "",
+
+ trigger: Navpoint,
+ trigger_ship: "Golden Hart",
+ trigger_param: 4,
+}
+
+event: {
+ id: 102,
+ event: Message,
+ event_message: "",
+
+ trigger: Navpoint,
+ trigger_ship: "Silver Stag",
+ trigger_param: 4,
+}
+
+event: {
+ id: 110,
+ event: Message,
+ sound: "Vox/Misc/M07-E110.ogg",
+ event_message: "msn.s07.e110",
+
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102),
+ delay: 5,
+}
+
+
+event: {
+ id: 120,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (80, 90, 110),
+ delay: 15,
+}
diff --git a/data/content/Missions/08-Focus.def b/data/content/Missions/08-Focus.def
new file mode 100644
index 0000000..e07d382
--- /dev/null
+++ b/data/content/Missions/08-Focus.def
@@ -0,0 +1,174 @@
+MISSION
+
+name: "msn.s08.name"
+type: PATROL
+system: Solus
+region: Solus
+
+start: "07/23:29:00"
+degrees: true
+
+sitrep: "msn.s08.sitrep"
+
+objective: "msn.s08.obj"
+
+ship: {
+ name: Saratoga,
+ design: Berents,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1
+}
+
+ship: {
+ name: Columbia,
+ design: Berents,
+ loc: (35e3, -20e3, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 1,
+ commander: Saratoga
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Focus,
+ design: Raider,
+ rloc: { ref: Saratoga, dex: 130e3, az: 90, az_var: 75 },
+ iff: 3,
+ intel: known,
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 60e3, az: 90, az_var: 60 }, speed: 400, emcon: 1 },
+ navpt: { cmd: vector, rloc: { ref: "this:1", dex: 60e3, az: 90, az_var: 60 }, speed: 400, emcon: 1 },
+}
+
+ship: {
+ name: Vagrant,
+ design: Raider,
+ rloc: { ref: Focus, dex: 23e3 },
+ iff: 3,
+ intel: known,
+
+ navpt: { cmd: escort, tgt: Focus, rloc: { ref: "Focus:1", dex: 20e3 }, speed: 400, emcon: 1 },
+ navpt: { cmd: escort, tgt: Focus, rloc: { ref: "Focus:2", dex: 20e3 }, speed: 400, emcon: 1 },
+}
+
+ship: {
+ name: Pickup,
+ design: Jackal,
+ rloc: { ref: "Focus:2", dex: 30e3 },
+ iff: 3,
+ intel: secret,
+
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 50e3, az: 90, az_var: 60 }, speed: 800 },
+ navpt: { cmd: vector, loc: (0, 0, 5e3), rgn: Telmera },
+}
+
+
+// ***** EVENT LIST *****
+
+event: {
+ id: 1,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Pickup,
+
+ trigger: Navpoint,
+ trigger_ship: Focus,
+ trigger_param: 2,
+}
+
+event: {
+ id: 20,
+ event: Message,
+ sound: "Vox/Misc/M08-E20.ogg",
+ event_message: "msn.s08.e20",
+ event_ship: Saratoga,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 21,
+ event: Message,
+ sound: "Vox/Misc/M08-E21.ogg",
+ event_message: "msn.s08.e21",
+ event_ship: Saratoga,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 4,
+}
+
+event: {
+ id: 22,
+ event: Message,
+ sound: "Vox/Misc/M08-E22.ogg",
+ event_message: "msn.s08.e22",
+ event_ship: Saratoga,
+
+ trigger: Jump,
+ trigger_ship: Pickup,
+ trigger_param: 0,
+ delay: 1,
+}
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Focus,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Pickup,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M08-E50.ogg",
+ event_message: "msn.s08.e50",
+ event_ship: Saratoga,
+
+ trigger: "Event (ALL)",
+ trigger_param: (-20, -22, 25),
+ delay: 5,
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M08-E60.ogg",
+ event_message: "msn.s08.e60",
+ event_ship: Saratoga,
+
+ trigger: "Event (ALL)",
+ trigger_param: (22, 26),
+ delay: 5,
+}
+
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (22, 50, 60),
+ delay: 10,
+}
diff --git a/data/content/Missions/09-Hounds.def b/data/content/Missions/09-Hounds.def
new file mode 100644
index 0000000..44a18e6
--- /dev/null
+++ b/data/content/Missions/09-Hounds.def
@@ -0,0 +1,201 @@
+MISSION
+
+name: "msn.s09.name"
+type: FLEET
+system: Paragon
+region: Paragon
+
+start: "08/09:34:00"
+degrees: true
+
+sitrep: "msn.s09.sitrep"
+
+objective: "msn.s09.obj"
+
+
+//
+// GOOD GUYS:
+//
+
+element: {
+ name: Wraith,
+ design: Spectre,
+ loc: (-20e3, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1,
+ mission: fleet,
+
+ navpt: { cmd: sweep, rloc: { dex: 200e3, dex_var: 30e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:1", dex: 150e3, dex_var: 30e3, az: 35, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:2", dex: 150e3, dex_var: 30e3, az: 85, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:3", dex: 140e3, dex_var: 30e3, az: 135, az_var: 20, el_var: 0 }, speed: 500 },
+}
+
+element: {
+ name: Nemesis,
+ design: Spectre,
+ loc: (-30e3, 7e3, -500),
+ count: 1,
+ iff: 1,
+ commander: Wraith,
+ mission: fleet,
+
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:1", dex: 20e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:2", dex: 20e3, dex_var: 3e3, az: 45, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:3", dex: 20e3, dex_var: 3e3, az: 135, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:4", dex: 20e3, dex_var: 3e3, az: 200, az_var: 20, el_var: 0 }, speed: 500 },
+}
+
+element: {
+ name: Bosporus,
+ design: Berents,
+ loc: (-5e3, 12e3, 1200),
+ count: 1,
+ iff: 1,
+ commander: Wraith,
+ mission: escort,
+
+ navpt: { cmd: escort, rloc: { ref: "Wraith:1", dex: 30e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:2", dex: 30e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:3", dex: 30e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:4", dex: 30e3, dex_var: 3e3, az: 200, az_var: 30, el_var: 0 }, speed: 500 },
+}
+
+//
+// BAD GUYS:
+//
+
+element: {
+ name: Wolf,
+ design: Wolf,
+ rloc: { ref: "Wraith:4", dex: 80e3 },
+ count: 1,
+ iff: 2,
+ intel: Known,
+
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:4", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:2", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:1", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Jackal,
+ design: Wolf,
+ rloc: { ref: "Wolf", dex: 20e3 },
+ count: 1,
+ iff: 2,
+ intel: Known,
+
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:1", dex: 30e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:2", dex: 30e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:3", dex: 30e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Parthan,
+ design: Baikal,
+ rloc: { ref: "Wolf", dex: 30e3 },
+ count: 1,
+ iff: 2,
+ commander: Wolf,
+ mission: escort,
+ intel: Known,
+
+ navpt: { cmd: escort, rloc: { ref: "Wolf:1", dex: 35e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:2", dex: 35e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:3", dex: 35e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Kyren,
+ design: Baikal,
+ rloc: { ref: "Wolf", dex: 30e3 },
+ count: 1,
+ iff: 2,
+ commander: Jackal,
+ mission: escort,
+ intel: Known,
+
+ navpt: { cmd: escort, rloc: { ref: "Wolf:1", dex: 40e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:2", dex: 40e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:3", dex: 40e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+//
+// CIVILIANS:
+//
+
+element: {
+ name: Finisterre
+ design: IM1912
+ rloc: { ref: "Wraith:4", dex: 120e3, az: 90, az_var: 45 },
+ count: 1,
+ iff: 0,
+ intel: Secret,
+
+ navpt: { cmd: vector, rloc: { ref: "Wraith:1", dex: 120e3, dex_var: 35e3 }, speed: 300 },
+ navpt: { cmd: vector, loc: (0,0,0), rgn: Atlan, speed: 500 }
+}
+
+
+//
+// EVENT LIST:
+//
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Wolf,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Jackal,
+}
+
+event: {
+ id: 27,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Parthan,
+}
+
+event: {
+ id: 28,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Kyren,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M09-E50.ogg",
+ event_message: "msn.s09.e50",
+ event_ship: Drayton,
+
+ trigger: "Event (ALL)",
+ trigger_param: (25, 26, 27, 28),
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: Event,
+ trigger_param: 50,
+ delay: 10,
+}
diff --git a/data/content/Missions/10-Angels.def b/data/content/Missions/10-Angels.def
new file mode 100644
index 0000000..3d04275
--- /dev/null
+++ b/data/content/Missions/10-Angels.def
@@ -0,0 +1,224 @@
+MISSION
+
+name: "msn.s10.name"
+type: FLIGHT_OPS
+system: Korius
+region: Korius
+
+start: "11/17:15:00"
+degrees: true
+
+sitrep: "msn.s10.sitrep"
+
+objective: "msn.s10.obj"
+
+// ***** GOOD GUYS *****
+
+ship: {
+ name: Antares
+ design: Orion
+ loc: (0, 0, 0)
+ count: 1
+ iff: 1
+ player: 1
+ command_ai: 1
+}
+
+element: {
+ name: Bearcats,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Mustangs,
+ design: Stormhawk,
+ count: 24,
+ maint_count: 4,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Lancers,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 2,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Taurus,
+ design: Zodiac,
+ count: 8,
+ maint_count: 2,
+ carrier: Antares,
+ iff: 1,
+}
+
+ship: {
+ name: Ryan,
+ design: Asher,
+ rloc: { ref: Antares, dex: 23e3 },
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Antares,
+}
+
+ship: {
+ name: Card,
+ design: Asher,
+ rloc: { ref: Antares, dex: 25e3 },
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Antares,
+}
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Goliath,
+ design: Goliath,
+ rloc: { ref: Antares, dex: 250e3, dex_var: 40e3 },
+ count: 1,
+ iff: 2,
+}
+
+element: {
+ name: Vampires,
+ design: Viper,
+ count: 16,
+ maint_count: 4,
+ carrier: Goliath,
+ iff: 2,
+}
+
+element: {
+ name: Zombies,
+ design: Razor,
+ count: 16,
+ maint_count: 4,
+ carrier: Goliath,
+ iff: 2,
+}
+
+element: {
+ name: Ghouls,
+ design: Cobra,
+ count: 16,
+ maint_count: 2,
+ carrier: Goliath,
+ iff: 2,
+}
+
+ship: {
+ name: Foxbat,
+ design: Wolf,
+ rloc: { ref: Goliath, dex: 23e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+ship: {
+ name: Hunter,
+ design: Wolf,
+ rloc: { ref: Goliath, dex: 25e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+ship: {
+ name: Kyren,
+ design: Baikal,
+ rloc: { ref: Goliath, dex: 33e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+
+//
+// EVENT LIST:
+//
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Goliath,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Foxbat,
+}
+
+event: {
+ id: 27,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Hunter,
+}
+
+event: {
+ id: 28,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Kyren,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M10-E50.ogg",
+ event_message: "msn.s10.e01",
+ event_ship: Antares,
+
+ trigger: Event,
+ trigger_param: 25,
+ delay: 5,
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M10-E60.ogg",
+ event_message: "msn.s10.e02",
+ event_ship: Antares,
+
+ trigger: Jump,
+ trigger_ship: Goliath,
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (50, 60),
+ delay: 10,
+}
+
+
diff --git a/data/content/Missions/Missions.def b/data/content/Missions/Missions.def
new file mode 100644
index 0000000..966c7ff
--- /dev/null
+++ b/data/content/Missions/Missions.def
@@ -0,0 +1,111 @@
+MISSIONLIST
+
+mission: {
+ id: 1,
+ name: "msn.s01.name",
+ type: PATROL,
+ desc: "msn.s01.desc",
+ start: "00/08:00:00",
+ system: Ostara,
+ region: Aram,
+ script: "01-Alert.def"
+}
+
+mission: {
+ id: 2,
+ name: "msn.s02.name",
+ type: ESCORT_STRIKE,
+ desc: "msn.s02.desc",
+ start: "01/11:00:00",
+ system: Loris,
+ region: Loris,
+ script: "02-Wings.def"
+}
+
+mission: {
+ id: 3,
+ name: "msn.s03.name",
+ type: ESCORT_SHUTTLE,
+ desc: "msn.s03.desc",
+ start: "02/18:10:00",
+ system: Solus,
+ region: Telmera,
+ script: "03-Honor.def"
+}
+
+mission: {
+ id: 4,
+ name: "msn.s04.name",
+ type: STRIKE,
+ desc: "msn.s04.desc",
+ start: "03/09:05:00",
+ system: Haiche,
+ region: Haiche,
+ script: "04-Sand.def"
+}
+
+mission: {
+ id: 5,
+ name: "msn.s05.name",
+ type: ASSAULT,
+ desc: "msn.s05.desc",
+ start: "04/19:20:00",
+ system: Renser,
+ region: Lornas,
+ script: "05-Execution.def"
+}
+
+mission: {
+ id: 6,
+ name: "msn.s06.name",
+ type: STRIKE,
+ desc: "msn.s06.desc",
+ start: "05/10:34:00",
+ system: Radix,
+ region: "Shadow Canyon",
+ script: "06-SEAD.def"
+}
+
+mission: {
+ id: 7,
+ name: "msn.s07.name",
+ type: ESCORT_FREIGHT,
+ desc: "msn.s07.desc",
+ start: "06/16:21:00",
+ system: Borova,
+ region: Tulkas,
+ script: "07-SLGAM.def"
+}
+
+mission: {
+ id: 8,
+ name: "msn.s08.name",
+ type: PATROL,
+ desc: "msn.s08.desc",
+ start: "07/23:29:00",
+ system: Solus,
+ region: Solus,
+ script: "08-Focus.def"
+}
+
+mission: {
+ id: 9,
+ name: "msn.s09.name",
+ type: FLEET,
+ desc: "msn.s09.desc",
+ start: "08/09:34:00",
+ system: Paragon,
+ region: Paragon,
+ script: "09-Hounds.def"
+}
+
+mission: {
+ id: 10,
+ name: "msn.s10.name",
+ type: FLIGHT_OPS,
+ desc: "msn.s10.desc",
+ start: "09/17:15:00",
+ system: Korius,
+ region: Korius,
+ script: "10-Angels.def"
+}
diff --git a/data/content/Multiplayer/D4.DEF b/data/content/Multiplayer/D4.DEF
new file mode 100644
index 0000000..1722cb5
--- /dev/null
+++ b/data/content/Multiplayer/D4.DEF
@@ -0,0 +1,140 @@
+MISSION
+
+id: 3
+name: "msn.m03.name"
+desc: "msn.m03.desc"
+type: "Patrol"
+system: "Janus"
+region: "Dante"
+
+objective: "msn.m03.obj"
+
+sitrep: "msn.m03.sitrep"
+
+start: "82:34:00"
+
+element: {
+ name: "Wraith",
+ design: "Spectre",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Dante",
+ loc: (0, 10000, 0),
+}
+
+element: {
+ name: "Nemesis",
+ design: "Spectre",
+ commander: "Wraith",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (45152, -320, -500),
+}
+
+element: {
+ name: "Bosporus",
+ design: "Berents",
+ commander: "Wraith",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: false,
+ region: "Dante",
+ loc: (-39475, -836, 1200),
+}
+
+element: {
+ name: "Barth",
+ design: "Berents",
+ commander: "Wraith",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: false,
+ region: "Dante",
+ loc: (64000, -13000, 0),
+
+ objective: { cmd: Escort, tgt: "Nemesis" },
+}
+
+element: {
+ name: "Clarke",
+ design: "Asher",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Dante",
+ loc: (-20000, -145000, 1000),
+ head: 3.142,
+}
+
+element: {
+ name: "Jackson",
+ design: "Asher",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Dante",
+ loc: (10000, -135000, 700),
+ head: 3.142,
+}
+
+element: {
+ name: "Parker",
+ design: "Berents",
+ commander: "Clarke",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: false,
+ region: "Dante",
+ loc: (-25000, -135000, 1000),
+ head: 3.142,
+}
+
+element: {
+ name: "Suffolk",
+ design: "Berents",
+ commander: "Clarke",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: false,
+ region: "Dante",
+ loc: (45000, -135000, 0),
+ head: 3.142,
+}
+
+// EOF
diff --git a/data/content/Multiplayer/Thrash.def b/data/content/Multiplayer/Thrash.def
new file mode 100644
index 0000000..f12beb8
--- /dev/null
+++ b/data/content/Multiplayer/Thrash.def
@@ -0,0 +1,93 @@
+MISSION
+
+id: 2
+name: "msn.m02.name"
+type: "Patrol"
+desc: "msn.m02.desc"
+system: "Kolchev"
+region: "Kolchev"
+
+objective: "msn.m02.obj"
+
+sitrep: "msn.m02.sitrep"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: "Alpha",
+ design: "Stormhawk",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 4,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Kolchev",
+ loc: (0, 0, 0),
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Escort, tgt: "Bravo" },
+}
+
+element: {
+ name: "Bravo",
+ design: "Thunderbolt",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 2,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Kolchev",
+ loc: (23000, 4000, 0),
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Narom",
+ design: "Viper",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 4,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Kolchev",
+ loc: (27000, -34000, 0),
+ head: 179,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Escort, tgt: "Nagal" },
+}
+
+element: {
+ name: "Nagal",
+ design: "Avenger",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 2,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Kolchev",
+ loc: (22000, -46000, 0),
+ head: 179,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+// EOF
diff --git a/data/content/Multiplayer/hawkmatch.def b/data/content/Multiplayer/hawkmatch.def
new file mode 100644
index 0000000..7e2426a
--- /dev/null
+++ b/data/content/Multiplayer/hawkmatch.def
@@ -0,0 +1,180 @@
+MISSION
+
+id: 1
+name: "msn.m01.name"
+desc: "msn.m01.desc"
+type: Patrol
+system: Borova
+region: Borova
+
+degrees: true
+
+objective: "msn.m01.obj"
+
+sitrep: "msn.m01.sitrep"
+
+start: "33:00:00"
+
+element: {
+ name: "Hawk",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: Borova,
+ loc: (0, 15000, 0),
+ head: 0,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Falcon",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: Borova,
+ loc: (15000, 0, 0),
+ head: 271,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Raptor",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 3,
+ playable: true,
+ region: Borova,
+ loc: (0, -15000, 0),
+ head: 180,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Condor",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 4,
+ playable: true,
+ region: Borova,
+ loc: (-15000, 0, 0),
+ head: 90,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+// teams dead:
+
+event: {
+ id: 1
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 1)
+}
+
+event: {
+ id: 2
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 2)
+}
+
+event: {
+ id: 3
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 3)
+}
+
+event: {
+ id: 4
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 4)
+}
+
+// victory combinations:
+
+event: {
+ id: 10
+ delay: 1
+ event: Message
+ event_message: "msn.m01.e10"
+ trigger: "Event (ALL)"
+ trigger_param: (2,3,4)
+}
+
+event: {
+ id: 20
+ delay: 1
+ event: Message
+ event_message: "msn.m01.e20"
+ trigger: "Event (ALL)"
+ trigger_param: (1,3,4)
+}
+
+event: {
+ id: 30
+ delay: 1
+ event: Message
+ event_message: "msn.m01.e30"
+ trigger: "Event (ALL)"
+ trigger_param: (1,2,4)
+}
+
+event: {
+ id: 40
+ delay: 1
+ event: Message
+ event_message: "msn.m01.e40"
+ trigger: "Event (ALL)"
+ trigger_param: (1,2,3)
+}
+
+// exit conditions:
+
+
+event: {
+ id: 50
+ event: Exit
+ delay: 10
+ trigger: "Event (ANY)"
+ trigger_param: (10,20,30,40)
+ event_target: "Thrash.def"
+}
+
+event: {
+ id: 90
+ time: 900.0 // fifteen minute time limit
+ event: Exit
+ trigger: "Time"
+ event_target: "Thrash.def"
+}
+
+
+// EOF
diff --git a/data/content/Multiplayer/wargames.def b/data/content/Multiplayer/wargames.def
new file mode 100644
index 0000000..3d6a6d8
--- /dev/null
+++ b/data/content/Multiplayer/wargames.def
@@ -0,0 +1,446 @@
+MISSION
+
+id: 4
+name: "msn.m04.name"
+desc: "msn.m04.desc"
+type: "Patrol"
+system: "Janus"
+region: "Janek"
+
+objective: "msn.m04.obj"
+
+sitrep: "msn.m04.sitrep"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: "Archon",
+ design: "Orion",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Janek",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Stallions",
+ design: "Stormhawk",
+ carrier: "Archon",
+ commander: "Archon",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 20,
+ iff: 1,
+ region: "Janek",
+ loc: (5000, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Stalwart",
+ design: "Courageous",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (22000, 6000, 0),
+}
+
+element: {
+ name: "Gerson",
+ design: "Asher",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Simmons",
+ design: "Asher",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Shadow",
+ design: "Spectre",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Necromancer",
+ design: "Spectre",
+ commander: "Shadow",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Titan",
+ design: "Orion",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Chargers",
+ design: "Stormhawk",
+ carrier: "Titan",
+ commander: "Titan",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 20,
+ iff: 2,
+ region: "Alystra",
+ loc: (5000, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Defender",
+ design: "Courageous",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (22000, 6000, 0),
+}
+
+element: {
+ name: "Reynolds",
+ design: "Asher",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Hawker",
+ design: "Asher",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Warlock",
+ design: "Spectre",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Navara",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Merlin",
+ design: "Spectre",
+ commander: "Warlock",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Navara",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Janek-Ilon",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Janek",
+ loc: (80000, -50000, 0),
+
+ objective: { cmd: Vector, tgt: "Ilon-Janek" },
+}
+
+element: {
+ name: "Ilon-Janek",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Ilon",
+ loc: (50000, -40000, 0),
+
+ objective: { cmd: Vector, tgt: "Janek-Ilon" },
+}
+
+element: {
+ name: "Janek-Alystra",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Janek",
+ loc: (-80000, 60000, 0),
+
+ objective: { cmd: Vector, tgt: "Alystra-Janek" },
+}
+
+element: {
+ name: "Alystra-Janek",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Alystra",
+ loc: (-50000, -40000, 0),
+
+ objective: { cmd: Vector, tgt: "Janek-Alystra" },
+}
+
+event: {
+ id: 1,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "msn.m04.e01",
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 2,
+ time: 0.0,
+ delay: 1.0,
+ event: Damage,
+ event_ship: "Stalwart",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 3,
+ time: 0.0,
+ delay: 2.0,
+ event: Damage,
+ event_ship: "Gerson",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 4,
+ time: 0.0,
+ delay: 3.0,
+ event: Damage,
+ event_ship: "Simmons",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 5,
+ time: 0.0,
+ delay: 4.0,
+ event: Damage,
+ event_ship: "Shadow",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 5.0,
+ event: Damage,
+ event_ship: "Necromancer",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "msn.m04.e07",
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 1.0,
+ event: Damage,
+ event_ship: "Defender",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 2.0,
+ event: Damage,
+ event_ship: "Reynolds",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 10,
+ time: 0.0,
+ delay: 3.0,
+ event: Damage,
+ event_ship: "Hawker",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 11,
+ time: 0.0,
+ delay: 4.0,
+ event: Damage,
+ event_ship: "Warlock",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 12,
+ time: 0.0,
+ delay: 5.0,
+ event: Damage,
+ event_ship: "Merlin",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 13,
+ time: 0.0,
+ delay: 10.0,
+ event: Exit,
+ event_message: "Mission Exit",
+ event_chance: 100,
+ trigger: "Event (ANY)",
+ trigger_param: (1, 7),
+}
+
+// EOF
diff --git a/data/content/Screens/AudDlg.frm b/data/content/Screens/AudDlg.frm
new file mode 100644
index 0000000..cb99410
--- /dev/null
+++ b/data/content/Screens/AudDlg.frm
@@ -0,0 +1,297 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: AudDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.options.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: "form.options.tab.video"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: "form.options.tab.audio"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: "form.options.tab.controls"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: "form.options.tab.gameplay"
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "form.options.tab.mods"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: (0.2, 0.3, 0.3, 0.2, 0.3, 0.3, 0.2)
+
+ y_mins: ( 20, 25, 25, 25, 25, 25, 25, 25, 20)
+ y_weights: (0.3, 0, 0, 0, 0, 0, 0, 0, 0.7)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ text: "form.audio.volume.effects"
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ text: "form.audio.volume.gui"
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: label
+ text: "form.audio.volume.warning"
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: label
+ text: "form.audio.volume.vox"
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 105
+ pid: 300
+ type: label
+ text: "form.audio.music.menu"
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 106
+ pid: 300
+ type: label
+ text: "form.audio.music.game"
+ cells: (1,7,1,1)
+ },
+
+ defctrl: {
+ cell_insets: (0,0,0,16)
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+
+ active_color: (250, 250, 100)
+ back_color: ( 41, 41, 41)
+ border: false
+ active: true
+ },
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: slider
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: slider
+ cells: (2,2,1,1)
+ },
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: slider
+ cells: (2,3,1,1)
+ },
+
+ ctrl: {
+ id: 204
+ pid: 300
+ type: slider
+ cells: (2,4,1,1)
+ },
+
+ ctrl: {
+ id: 205
+ pid: 300
+ type: slider
+ cells: (2,6,1,1)
+ },
+
+ ctrl: {
+ id: 206
+ pid: 300
+ type: slider
+ cells: (2,7,1,1)
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.apply"
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,5,1,1)
+ }
+}
diff --git a/data/content/Screens/AwardDlg.frm b/data/content/Screens/AwardDlg.frm
new file mode 100644
index 0000000..b20dbcb
--- /dev/null
+++ b/data/content/Screens/AwardDlg.frm
@@ -0,0 +1,122 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: AwardDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 50, 512, 50, 10)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: (28, 25, 20, 5, 30, 256, 10, 50, 45)
+ y_weights: ( 0, 0, 0, 1, 0, 0, 0, 2, 0)
+ },
+
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.award.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ },
+
+ // award name:
+
+ ctrl: {
+ id: 203,
+ type: label,
+ cells: (2,4,1,1)
+ align: center
+ transparent: true
+ border: false
+ font: Limerick18
+ fore_color: (255,255,255)
+ back_color: ( 10, 10, 10)
+ style: 0x0040
+ },
+
+ // award insignia:
+
+ ctrl: {
+ id: 202,
+ type: image,
+ cells: (2,5,1,1)
+ align: center
+ transparent: true
+ border: false
+ },
+
+ // award description or info:
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (2,7,1,1)
+ align: left
+ transparent: true
+ border: false
+ font: Verdana
+ fore_color: (0,0,0)
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (50,5,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ pid: 0
+ type: button
+ text: "form.close"
+ cells: (3,8,1,1),
+ },
+
+}
diff --git a/data/content/Screens/CmdDlg.frm b/data/content/Screens/CmdDlg.frm
new file mode 100644
index 0000000..9b0ba52
--- /dev/null
+++ b/data/content/Screens/CmdDlg.frm
@@ -0,0 +1,435 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARSHATTER
+// File: CmdDlg.frm
+//
+// John DiCamillo
+// Copyright © 1997-2001. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 640, 480),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: (160, 160, 150),
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "std_B_640.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: false,
+ transparent: true,
+ align: left,
+ },
+
+ ctrl: {
+ id: 1000,
+ type: label,
+ rect: (7, 6, 600, 20),
+ text: "form.cmd.title",
+ },
+
+ ctrl: {
+ id: 1001,
+ type: label,
+ rect: (20, 50, 600, 50),
+ transparent: false,
+ back_color: (69, 69, 67),
+ border_color: ( 4, 4, 4),
+ text: " ",
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 55, 300, 20),
+ text: " ", // Operation Title Goes Here
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (420, 55, 200, 20),
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 75, 400, 20),
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (440, 75, 180, 20),
+ align: right,
+ },
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (20, 120, 130, 17),
+ text: "form.cmd.orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (20, 145, 130, 17),
+ text: "form.cmd.theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (20, 170, 130, 17),
+ text: "form.cmd.forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (20, 195, 130, 17),
+ text: "form.cmd.intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (20, 220, 130, 17),
+ text: "form.cmd.missions"
+ },
+
+ defctrl: { sticky: false },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (350, 445, 130, 17),
+ text: "Save",
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (490, 445, 130, 17),
+ text: "Cancel",
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 800, 600),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "cmd_800.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 50, 300, 20),
+ text: "Operation Title Goes Here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (575, 50, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 75, 450, 25),
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (575, 75, 200, 25),
+ align: right,
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (25, 130, 130, 17),
+ text: "Orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (25, 155, 130, 17),
+ text: "Theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (25, 180, 130, 17),
+ text: "Forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (25, 205, 130, 17),
+ text: "Intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (25, 230, 130, 17),
+ text: "Missions"
+ },
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: false,
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (500, 558, 130, 17),
+ text: Save,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (640, 558, 130, 17),
+ text: Exit,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 1024, 768),
+ screen_width: 1024,
+ screen_height: 768,
+
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "cmd_1024.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 55, 300, 20),
+ text: "Operation Title Goes Here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (800, 55, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 80, 450, 25),
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (800, 80, 200, 25),
+ align: right,
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (25, 155, 130, 17),
+ text: "Orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (25, 180, 130, 17),
+ text: "Theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (25, 205, 130, 17),
+ text: "Forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (25, 230, 130, 17),
+ text: "Intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (25, 255, 130, 17),
+ text: "Missions"
+ },
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: false,
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (730, 730, 130, 17),
+ text: Save,
+ sticky: false,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (870, 730, 130, 17),
+ text: Exit,
+ sticky: false,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ },
+}
+
diff --git a/data/content/Screens/CmdForceDlg.frm b/data/content/Screens/CmdForceDlg.frm
new file mode 100644
index 0000000..024a0bd
--- /dev/null
+++ b/data/content/Screens/CmdForceDlg.frm
@@ -0,0 +1,358 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdForceDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.cmd.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: " ", // Operation Title Goes Here
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: "form.cmd.orders"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: "form.cmd.theater"
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: "form.cmd.forces"
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: "form.cmd.intel"
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: "form.cmd.missions"
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 100, 100, 25)
+ y_weights: ( 0, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 0
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 400,
+ type: combo,
+ cells: (0,0,1,1)
+ cell_insets: (0,0,0,0)
+ fixed_height: 18
+
+ back_color: ( 61, 61, 59),
+ border_color: (255, 255, 255),
+ active_color: ( 92, 92, 92),
+
+ simple: true,
+ text_align: left,
+ transparent: false,
+ },
+
+ ctrl: {
+ id: 401,
+ type: list,
+ cells: (0,1,1,1)
+ back_color: ( 61, 61, 59),
+ border_color: ( 92, 92, 92),
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: "form.cmd.force.groups",
+ width: 330,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 402,
+ type: list,
+ cells: (0,2,1,1)
+ back_color: ( 61, 61, 59),
+ border_color: ( 92, 92, 92),
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: "form.name",
+ width: 90,
+ align: left,
+ color: (192,192,192),
+ sort: 0 },
+
+ column: {
+ title: "form.value",
+ width: 320,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 403,
+ type: button,
+ cells: (0,3,1,1)
+ text: "form.cmd.force.transfer"
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+ fixed_width: 150
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.exit"
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/content/Screens/CmdIntelDlg.frm b/data/content/Screens/CmdIntelDlg.frm
new file mode 100644
index 0000000..03781a9
--- /dev/null
+++ b/data/content/Screens/CmdIntelDlg.frm
@@ -0,0 +1,364 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdIntelDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 250, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.cmd.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: " ", // Operation Title Goes Here
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: "form.cmd.orders"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: "form.cmd.theater"
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: "form.cmd.forces"
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: "form.cmd.intel"
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: "form.cmd.missions"
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 250, 10, 256)
+ x_weights: ( 1, 0, 0)
+
+ y_mins: ( 20, 80, 256, 10, 20)
+ y_weights: ( 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 441
+ type: label
+ text: "form.cmd.intel.newsfeed"
+ cells: (0,0,3,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 401
+ type: list
+ cells: (0,1,3,1)
+ back_color: ( 69, 69, 67),
+ border_color: ( 4, 4, 4),
+ style: 0x02,
+ scroll_bar: 2,
+ show_headings: true,
+
+ column: { title: "", width: 20, align: center,sort: 0 },
+ column: { title: "form.cmd.intel.date", width: 110, align: left, sort: 0 },
+ column: { title: "form.cmd.intel.title", width: 160, align: left, sort: 0 },
+ column: { title: "form.cmd.intel.location", width: 80, align: left, sort: 0 },
+ column: { title: "form.cmd.intel.source", width: 60, align: left, sort: 0 },
+ },
+
+ ctrl: {
+ id: 402
+ type: text,
+ cells: (0,2,1,3)
+ cell_insets: (0,0,0,0)
+ back_color: ( 69, 69, 67),
+ border_color: ( 4, 4, 4),
+ style: 0x02,
+ scroll_bar: 2,
+ }
+
+ ctrl: {
+ id: 403
+ type: image
+ cells: (2,2,1,1)
+ picture: "def_image.pcx"
+ style: 0x02
+ fixed_width: 256
+ fixed_height: 256
+ }
+
+ ctrl: {
+ id: 404
+ type: label
+ cells: (0,2,3,3)
+ cell_insets: (0,0,0,0)
+ style: 0x02
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 405
+ type: button
+ cells: (2,4,1,1)
+ text: "form.cmd.intel.play"
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.exit"
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/content/Screens/CmdMissionsDlg.frm b/data/content/Screens/CmdMissionsDlg.frm
new file mode 100644
index 0000000..2dd405a
--- /dev/null
+++ b/data/content/Screens/CmdMissionsDlg.frm
@@ -0,0 +1,351 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdMissionsDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.cmd.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: " ", // Operation Title Goes Here
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: "form.cmd.orders"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: "form.cmd.theater"
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: "form.cmd.forces"
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: "form.cmd.intel"
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: "form.cmd.missions"
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 20, 100, 20. 100, 25)
+ y_weights: ( 0, 1, 0, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 441
+ type: label
+ text: "form.cmd.mission.roster"
+ cells: (0,0,1,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 401
+ type: list
+ cells: (0,1,1,1)
+
+ style: 0x02
+ scroll_bar: 2
+ show_headings: true
+
+ column: { title: "form.cmd.mission.mission", width: 150, align: left, sort: 0 }
+ column: { title: "form.cmd.mission.type", width: 150, align: left, sort: 0 }
+ column: { title: "form.cmd.mission.start", width: 130, align: right, sort: 0 }
+ },
+
+ ctrl: {
+ id: 442
+ type: label
+ text: "form.cmd.mission.objectives"
+ cells: (0,2,1,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 402
+ type: text
+ cells: (0,3,1,1)
+ style: 0x02
+ scroll_bar: 2
+ },
+
+ ctrl: {
+ id: 403,
+ type: button,
+ text: "form.accept",
+ cells: (0,4,1,1)
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+ fixed_width: 150
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.exit"
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/content/Screens/CmdMsgDlg.frm b/data/content/Screens/CmdMsgDlg.frm
new file mode 100644
index 0000000..b1f2e85
--- /dev/null
+++ b/data/content/Screens/CmdMsgDlg.frm
@@ -0,0 +1,76 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdMsgDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,240)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 10, 80, 35),
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ text: "form.cmd.msg.title",
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (180, 195, 280, 120),
+ text: "form.cmd.msg.text",
+ align: left
+ font: Verdana
+ cells: (1,3,3,1)
+ cell_insets: (0,0,0,20)
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ cells: (3,4,1,1)
+ text: "form.close"
+ }
+}
+
diff --git a/data/content/Screens/CmdOrdersDlg.frm b/data/content/Screens/CmdOrdersDlg.frm
new file mode 100644
index 0000000..63b73e0
--- /dev/null
+++ b/data/content/Screens/CmdOrdersDlg.frm
@@ -0,0 +1,264 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdOrdersDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.cmd.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: " ", // Operation Title Goes Here
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: "form.cmd.orders"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: "form.cmd.theater"
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: "form.cmd.forces"
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: "form.cmd.intel"
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: "form.cmd.missions"
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 400
+ pid: 0
+ type: text
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ style: 0x02,
+ scroll_bar: 2,
+ text: " ", // Orders and objectives for the campaign go here...
+ fixed_height: 0
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.exit"
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/content/Screens/CmdTheaterDlg.frm b/data/content/Screens/CmdTheaterDlg.frm
new file mode 100644
index 0000000..18427a6
--- /dev/null
+++ b/data/content/Screens/CmdTheaterDlg.frm
@@ -0,0 +1,356 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdTheaterDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.cmd.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: " ", // Operation Title Goes Here
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: " ", // timestamp goes here
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: " ", // player group goes here
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: "form.cmd.orders"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: "form.cmd.theater"
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: "form.cmd.forces"
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: "form.cmd.intel"
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: "form.cmd.missions"
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 100, 100, 100, 100, 25, 25)
+ x_weights: ( 1, 1, 1, 2, 0, 0)
+
+ y_mins: ( 25, 100)
+ y_weights: ( 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 400
+ type: map
+ cells: (0,1,6,1)
+ cell_insets: (0,0,0,0)
+ style: 2
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 6
+ border: false
+ cell_insets: (0,10,0,0)
+ fore_color: (0,0,0)
+ font: Limerick12
+ sticky: true,
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 401,
+ type: button,
+ cells: (0,0,1,1)
+ text: "form.cmd.theater.galaxy"
+ }
+
+ ctrl: {
+ id: 402,
+ type: button,
+ cells: (1,0,1,1)
+ text: "form.cmd.theater.system"
+ }
+
+ ctrl: {
+ id: 403,
+ type: button,
+ cells: (2,0,1,1)
+ text: "form.cmd.theater.sector"
+ }
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ margins: (0,0,0,0)
+ font: Verdana,
+ align: center,
+ sticky: false
+ fixed_height: 19
+ cell_insets: (6,0,0,0)
+ },
+
+ ctrl: {
+ id: 410,
+ type: button,
+ cells: (4,0,1,1)
+ text: "+",
+ },
+
+ ctrl: {
+ id: 411,
+ type: button,
+ cells: (5,0,1,1)
+ text: "-",
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.exit"
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/content/Screens/CmpCompleteDlg.frm b/data/content/Screens/CmpCompleteDlg.frm
new file mode 100644
index 0000000..9f30a49
--- /dev/null
+++ b/data/content/Screens/CmpCompleteDlg.frm
@@ -0,0 +1,85 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmpCompleteDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+ font: Limerick12,
+
+ layout: {
+ x_mins: (0)
+ x_weights: (1)
+
+ y_mins: (0, 0, 0)
+ y_weights: (1, 6, 2)
+ }
+
+ // background images:
+
+ defctrl: {
+ fore_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ }
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: LoadDlg1
+ cells: (0,0,1,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 100
+ type: image
+ cells: (0,1,1,1)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 400
+ type: background
+ texture: LoadDlg2
+ cells: (0,2,1,1)
+ margins: (2,248,48,2)
+ hide_partial: false
+
+ layout: {
+ x_mins: (20, 100, 100, 20)
+ x_weights: ( 0, 1, 0, 0)
+
+ y_mins: (20, 20, 30)
+ y_weights: ( 1, 0, 0)
+ }
+ }
+
+ // close button:
+
+ ctrl: {
+ id: 1
+ pid: 400
+ type: button
+ text: "form.close"
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+
+ cells: (2,1,1,1)
+ }
+}
diff --git a/data/content/Screens/CmpLoadDlg.frm b/data/content/Screens/CmpLoadDlg.frm
new file mode 100644
index 0000000..8662b17
--- /dev/null
+++ b/data/content/Screens/CmpLoadDlg.frm
@@ -0,0 +1,89 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmpLoadDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+ font: Limerick12,
+
+ layout: {
+ x_mins: (0)
+ x_weights: (1)
+
+ y_mins: (0, 0, 0)
+ y_weights: (2, 1, 3)
+ },
+
+ // background images:
+
+ defctrl: {
+ fore_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: LoadDlg1
+ cells: (0,0,1,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 100
+ type: image
+ cells: (0,1,1,1)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 400
+ type: background
+ texture: LoadDlg2
+ cells: (0,2,1,1)
+ margins: (2,248,48,2)
+ hide_partial: false
+
+ layout: {
+ x_mins: (30, 150, 30)
+ x_weights: ( 1, 1, 1)
+
+ y_mins: (20, 20, 20, 20)
+ y_weights: ( 1, 1, 1, 3)
+ }
+ },
+
+
+ ctrl: {
+ id: 101
+ pid: 400
+ type: label,
+ cells: (1,1,1,1)
+ text: "",
+ font: Verdana
+ align: center
+ transparent: true
+ },
+
+ ctrl: {
+ id: 102
+ pid: 400
+ type: slider
+ cells: (1,2,1,1)
+
+ active_color: (255, 255, 160)
+ back_color: ( 21, 21, 21)
+ border: true
+ transparent: false
+ fixed_height: 10
+ },
+}
+
diff --git a/data/content/Screens/CmpSceneDlg.frm b/data/content/Screens/CmpSceneDlg.frm
new file mode 100644
index 0000000..9988307
--- /dev/null
+++ b/data/content/Screens/CmpSceneDlg.frm
@@ -0,0 +1,59 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmpSceneDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: (0,0,0)
+
+ layout: {
+ x_mins: (0,0,0)
+ x_weights: (1,9,1)
+
+ y_mins: (0, 200, 0, 28, 0 )
+ y_weights: (1, 6, 0.3, 0, 0.5)
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (0,1,3,1)
+ hide_partial: false
+ fore_color: (0,0,0)
+ back_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ }
+
+ ctrl: {
+ id: 102
+ type: text
+ text: ""
+ scroll_bar: 0
+ smooth_scroll: false
+ transparent: true
+ align: left
+ cells: (1,3,1,1)
+ hide_partial: false
+ fore_color: (255,255,128)
+ back_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ }
+}
diff --git a/data/content/Screens/CmpSelectDlg.frm b/data/content/Screens/CmpSelectDlg.frm
new file mode 100644
index 0000000..a12562d
--- /dev/null
+++ b/data/content/Screens/CmpSelectDlg.frm
@@ -0,0 +1,214 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnSelectDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 1, 1, 0, 3, 3, 3, 0),
+
+ y_mins: (28, 25, 20, 52, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.select.campaigns",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ cells: (1,3,6,3)
+ cell_insets: (10,10,14,54)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 70, 20, 50, 50, 50)
+ x_weights: ( 0, 0, 0, 0, 1, 1, 1)
+
+ y_mins: (40, 25, 100, 30)
+ y_weights: ( 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ font: Limerick12
+ fixed_width: 0
+ fixed_height: 19
+ cell_insets: (0,5,10,0)
+ margins: (10,10,0,0)
+ fore_color: (0,0,0)
+ transparent: false
+ style: 0
+ pid: 300
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ cells: (0,0,1,1)
+ text: "form.select.new"
+ },
+
+ ctrl: {
+ id: 101
+ type: button
+ cells: (1,0,1,1)
+ text: "form.select.saved"
+ },
+
+ ctrl: {
+ id: 102
+ type: button
+ cells: (0,3,1,1)
+ text: "form.select.delete"
+ },
+
+ defctrl: {
+ fore_color: (255,255,255)
+ back_color: (0,0,0)
+ bevel_width: 0
+ fixed_height: 0
+ align: left
+ transparent: true
+ style: 0x0040
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 901,
+ type: label,
+ cells: (0,1,3,1)
+ text: "form.select.campaign"
+ }
+
+ ctrl: {
+ id: 902,
+ type: label,
+ cells: (4,1,3,1)
+ text: "form.select.description",
+ }
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ font: Verdana,
+ back_color: ( 69, 69, 67),
+ fore_color: (255,255,255),
+ style: 0x02
+ scroll_bar: 2
+
+ texture: Panel
+ margins: (12,12,12,0)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 201
+ type: list
+ cells: (0,2,3,1)
+ line_height: 100,
+
+ column: {
+ title: Campaigns,
+ width: 252,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 200
+ type: text
+ cells: (4,2,3,1)
+ font: Verdana
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ texture: ""
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/content/Screens/ConfirmDlg.frm b/data/content/Screens/ConfirmDlg.frm
new file mode 100644
index 0000000..d04f618
--- /dev/null
+++ b/data/content/Screens/ConfirmDlg.frm
@@ -0,0 +1,79 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ConfirmDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,280)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 30, 80, 35),
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "form.confirm.title"
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ }
+
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "form.confirm.message"
+ align: left
+ font: Verdana
+ cells: (1,2,3,1)
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ cells: (2,4,1,1)
+ text: "form.ok"
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ cells: (3,4,1,1)
+ text: "form.Cancel"
+ }
+}
diff --git a/data/content/Screens/CtlDlg.frm b/data/content/Screens/CtlDlg.frm
new file mode 100644
index 0000000..fc68651
--- /dev/null
+++ b/data/content/Screens/CtlDlg.frm
@@ -0,0 +1,475 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.options.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: "form.options.tab.video"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: "form.options.tab.audio"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: "form.options.tab.controls"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: "form.options.tab.gameplay"
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "form.options.tab.mods"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: (10, 90, 90, 90, 90, 20, 80, 120, 10)
+ x_weights: ( 2, 3, 3, 3, 3, 2, 3, 3, 2)
+
+ y_mins: (20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 20)
+ y_weights: ( 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12,
+ align: left
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ bevel_width: 6
+ margins: (10,10,0,0)
+ cell_insets: (2,3,0,6)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: button
+ text: "form.control.flight"
+ cells: (1,1,1,1)
+ cell_insets: (0,3,0,6)
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: button
+ text: "form.control.weapons"
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: button
+ text: "form.control.view"
+ cells: (3,1,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: button
+ text: "form.control.misc"
+ cells: (4,1,1,1)
+ cell_insets: (2,0,0,6)
+ },
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 41, 41, 41)
+ simple: true
+ bevel_width: 3
+ text_align: left
+ cell_insets: (0,0,0,0)
+
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ sticky: false
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: list
+ cells: (1,2,4,10)
+
+ style: 0x02
+ scroll_bar: 2
+ show_headings: true
+ transparent: false
+
+ column: {
+ title: COMMAND
+ width: 160
+ align: left
+ sort: 0 },
+
+ column: {
+ title: KEY
+ width: 197
+ align: left
+ sort: 0 }
+ }
+
+
+ defctrl: {
+ transparent: true
+ }
+
+ ctrl: {
+ id: 110
+ pid: 300
+ type: label
+ text: "form.control.style"
+ cells: (6,1,1,1)
+ }
+
+ ctrl: {
+ id: 111
+ pid: 300
+ type: label
+ text: "form.control.joystick"
+ cells: (6,2,1,1)
+ }
+
+ ctrl: {
+ id: 112
+ pid: 300
+ type: label
+ text: "form.control.throttle"
+ cells: (6,3,1,1)
+ }
+
+ ctrl: {
+ id: 113
+ pid: 300
+ type: label
+ text: "form.control.rudder"
+ cells: (6,4,1,1)
+ }
+
+ ctrl: {
+ id: 114
+ pid: 300
+ type: label
+ text: "form.control.sensitivity"
+ cells: (6,5,1,1)
+ }
+
+ ctrl: {
+ id: 115
+ pid: 300
+ type: label
+ text: "form.control.joy-axis"
+ cells: (6,6,1,1)
+ }
+
+ ctrl: {
+ id: 411
+ pid: 300
+ type: label
+ text: "form.control.mouse"
+ cells: (6,8,1,1)
+ }
+
+ ctrl: {
+ id: 414
+ pid: 300
+ type: label
+ text: "form.control.sensitivity"
+ cells: (6,9,1,1)
+ }
+
+ ctrl: {
+ id: 415
+ pid: 300
+ type: label
+ text: "form.control.inverted"
+ cells: (6,10,1,1)
+ }
+
+ defctrl: {
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ cell_insets: (0,0,0,5)
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ }
+
+ ctrl: {
+ id: 210
+ pid: 300
+ type: combo
+ cells: (7,1,1,1)
+
+ item: "form.control.aircraft",
+ item: "form.control.spacecraft",
+ }
+
+ ctrl: {
+ id: 211
+ pid: 300
+ type: combo
+ cells: (7,2,1,1)
+
+ item: "form.control.disable"
+ item: "form.control.joy1"
+ item: "form.control.joy2"
+ item: "form.control.both"
+ }
+
+ ctrl: {
+ id: 212
+ pid: 300
+ type: combo
+ cells: (7,3,1,1)
+
+ item: "form.control.disable"
+ item: "form.control.enable"
+ }
+
+ ctrl: {
+ id: 213
+ pid: 300
+ type: combo
+ cells: (7,4,1,1)
+
+ item: "form.control.disable"
+ item: "form.control.enable"
+ }
+
+ ctrl: {
+ id: 214
+ pid: 300
+ type: slider
+ cells: (7,5,1,1)
+ cell_insets: (0,0,6,10)
+
+ active_color: (250, 250, 100)
+ back_color: ( 0, 0, 0)
+ border_color: ( 92, 92, 92)
+ active: true
+ }
+
+ ctrl: {
+ id: 215
+ pid: 300
+ type: button
+ cells: (7,6,1,1)
+ text: "form.control.setup"
+
+ fore_color: (0,0,0)
+ font: Limerick12,
+ align: left
+ sticky: true
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (2,3,0,6)
+ }
+
+ ctrl: {
+ id: 511
+ pid: 300
+ type: combo,
+ cells: (7,8,1,1)
+
+ item: "form.control.disable"
+ item: "form.control.mouse-look",
+ item: "form.control.virtual-stick",
+ }
+
+ ctrl: {
+ id: 514
+ pid: 300
+ type: slider,
+ cells: (7,9,1,1)
+ cell_insets: (0,0,6,10)
+
+ active_color: (250, 250, 100),
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active: true,
+ },
+
+ ctrl: {
+ id: 515
+ pid: 300
+ type: button
+ cells: (7,10,1,1)
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.apply",
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/content/Screens/DebriefDlg.frm b/data/content/Screens/DebriefDlg.frm
new file mode 100644
index 0000000..7d2fd43
--- /dev/null
+++ b/data/content/Screens/DebriefDlg.frm
@@ -0,0 +1,375 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: DebriefDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.debrief.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: " ", // mission title goes here
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "form.debrief.system"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: " " // system name goes here
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "form.debrief.sector"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: " " // sector name goes here
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: " " // timestamp goes here
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 4, 0, 3, 0)
+
+ y_mins: ( 10, 20, 40, 20, 60, 20, 60, 20)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ pid: 800
+ }
+
+ ctrl: {
+ id: 110,
+ type: label
+ cells: (1,1,3,1)
+ text: "form.debrief.objectives"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 210
+ type: label
+ cells: (1,2,3,1)
+ text: " "
+ font: Verdana
+ },
+
+ ctrl: {
+ id: 111
+ type: label
+ cells: (3,1,1,1)
+ text: "form.debrief.score"
+ font: Limerick12
+ }
+
+ ctrl: {
+ id: 211
+ type: label
+ cells: (3,1,1,1)
+ align: right
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ }
+
+
+ ctrl: {
+ id: 120
+ type: label
+ cells: (1,3,1,1)
+ text: "form.debrief.active-units"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 320
+ type: list
+ cells: (1,4,1,1)
+ cell_insets: (0,0,0,10)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 3 },
+
+ column: {
+ title: CALLSIGN,
+ width: 90,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: ROLE,
+ width: 82,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: TYPE,
+ width: 60,
+ align: left,
+ sort: 3 },
+ },
+
+ ctrl: {
+ id: 130
+ type: label
+ cells: (1,5,1,1)
+ text: "form.debrief.mission-summary"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 330
+ type: list
+ cells: (1,6,1,1)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: STAT,
+ width: 141,
+ align: right,
+ sort: 3 },
+
+ column: {
+ title: VALUE,
+ width: 141,
+ align: left,
+ sort: 3 },
+
+ },
+
+
+ ctrl: {
+ id: 130
+ type: label
+ cells: (3,3,1,1)
+ text: "form.debrief.mission-events"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 340
+ type: list
+ cells: (3,4,1,3)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: TIME,
+ width: 50,
+ align: center,
+ sort: 3 },
+
+ column: {
+ title: EVENT,
+ width: 132,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: TARGET,
+ width: 80,
+ align: left,
+ sort: 3 },
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ pid: 0
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.close"
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/content/Screens/EngDlg.frm b/data/content/Screens/EngDlg.frm
new file mode 100644
index 0000000..b0ee8d9
--- /dev/null
+++ b/data/content/Screens/EngDlg.frm
@@ -0,0 +1,606 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: EngDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 100, 10),
+ x_weights: ( 0, 3, 1, 0),
+
+ y_mins: (28, 30, 10, 50, 10, 60, 45),
+ y_weights: ( 0, 0, 0, 1, 0, 2, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,2,2),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (2,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "form.engineering.title"
+ align: left
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // upper panel:
+
+ ctrl: {
+ id: 1100
+ type: panel
+ transparent: true
+
+ cells: (1,3,2,2),
+
+ layout: {
+ x_mins: ( 10, 100, 10, 100, 10, 100, 10, 100, 10)
+ x_weights: ( 0, 1, 0, 1, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 25, 10, 25, 10)
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+ }
+
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1100
+ }
+
+ ctrl: {
+ id: 201
+ type: button
+ cells: (1,1,1,1)
+ text: "form.engineering.reactor-1"
+ },
+
+ ctrl: {
+ id: 202
+ type: button
+ cells: (3,1,1,1)
+ text: "form.engineering.reactor-2"
+ },
+
+ ctrl: {
+ id: 203
+ type: button
+ cells: (5,1,1,1)
+ text: "form.engineering.reactor-3"
+ },
+
+ ctrl: {
+ id: 204
+ type: button
+ cells: (7,1,1,1)
+ text: "form.engineering.reactor-4"
+ },
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ fixed_height: 0
+ active: false
+ active_color: (255,255,128)
+ border: false
+ },
+
+ ctrl: {
+ id: 211
+ type: slider
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 212
+ type: slider
+ cells: (3,2,1,1)
+ },
+
+ ctrl: {
+ id: 213
+ type: slider
+ cells: (5,2,1,1)
+ },
+
+ ctrl: {
+ id: 214
+ type: slider
+ cells: (7,2,1,1)
+ },
+
+ defctrl: {
+ back_color: ( 61, 61, 59),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ leading: 2,
+ multiselect: 1,
+ dragdrop: 1,
+ scroll_bar: 2,
+ show_headings: true,
+ style: 0x20,
+
+ texture: Panel
+ margins: (12,12,12,0)
+ },
+
+ ctrl: {
+ id: 301
+ type: list
+ cells: (1,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 302,
+ type: list
+ cells: (3,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 303,
+ type: list
+ cells: (5,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 304,
+ type: list
+ cells: (7,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+
+ // lower panel:
+
+ ctrl: {
+ id: 1200
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,2,1),
+
+ layout: {
+ x_mins: ( 10, 50, 50, 10, 50, 50, 50, 10, 100, 10)
+ x_weights: ( 0, 3, 3, 0, 2, 2, 2, 0, 6, 0)
+
+ y_mins: ( 30, 20, 30, 30, 20, 30, 20, 30, 23, 18, 5)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ border: false
+ transparent: false
+ pid: 1200
+ },
+
+ ctrl: {
+ id: 401
+ pid: 1200
+ type: label
+ cells: (1,1,2,1)
+ style: 0x0040
+ back_color: (41,41,41)
+ transparent: true
+ },
+
+ defctrl: {
+ bevel_width: 0
+ border: false
+ fore_color: (0,0,0)
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 402
+ pid: 1200
+ type: button
+ cells: (1,2,1,1)
+ cell_insets: (0,3,0,0)
+ text: "form.engineering.power-off"
+ sticky: true
+ }
+
+ ctrl: {
+ id: 403
+ pid: 1200
+ type: button
+ cells: (2,2,1,1)
+ cell_insets: (3,0,0,0)
+ text: "form.engineering.power-on"
+ sticky: true
+ }
+
+ ctrl: {
+ id: 410
+ pid: 1200
+ type: button
+ cells: (1,3,2,1)
+ text: "form.engineering.override"
+ sticky: true
+ }
+
+ ctrl: {
+ id: 700
+ pid: 1200
+ type: button
+ cells: (1,8,2,1)
+ text: "form.engineering.auto-repair"
+ sticky: true
+ }
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 450
+ pid: 1200
+ type: label
+ cells: (1,4,2,1)
+ text: "form.engineering.power-allocation",
+ font: Verdana,
+ transparent: true
+ },
+
+ ctrl: {
+ id: 404
+ pid: 1200
+ type: slider
+ cells: (1,5,2,1)
+ active: true
+ active_color: (255,255,128)
+ border: false
+ fixed_height: 10
+ }
+
+ ctrl: {
+ id: 451
+ pid: 1200
+ type: label
+ cells: (1,6,2,1)
+ text: "form.engineering.capacitor-charge"
+ font: Verdana
+ transparent: true
+ }
+
+ ctrl: {
+ id: 405
+ pid: 1200
+ type: slider
+ cells: (1,7,2,1)
+ active: false
+ active_color: (255,255,128)
+ border: false
+ fixed_height: 10
+ }
+
+
+
+ ctrl: {
+ id: 500
+ pid: 1200
+ type: label
+ cells: (4,1,3,1)
+ style: 0x0040,
+ back_color: (41,41,41),
+ text: "form.engineering.components",
+ transparent: true,
+ font: Limerick12,
+ fore_color: (255,255,255),
+ },
+
+ ctrl: {
+ id: 501
+ pid: 1200
+ type: list
+ cells: (4,2,3,6)
+ cell_insets: (0,0,0,6)
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ leading: 2
+ multiselect: 0
+ dragdrop: 0
+ scroll_bar: 2
+ show_headings: true
+ style: 0x20
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: COMPONENT,
+ width: 155,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: STATUS,
+ width: 82,
+ align: left,
+ sort: -2 },
+
+ column: {
+ title: SPARES,
+ width: 65,
+ align: right,
+ sort: -2 }
+ },
+
+ defctrl: {
+ bevel_width: 0
+ border: false
+ fore_color: (0,0,0)
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 502
+ pid: 1200
+ type: button
+ cells: (4,8,1,1)
+ cell_insets: (0,3,0,0)
+ text: "form.engineering.repair"
+ sticky: false
+ },
+
+ ctrl: {
+ id: 503,
+ pid: 1200
+ type: button
+ cells: (5,8,1,1)
+ cell_insets: (3,0,0,0)
+ text: "form.engineering.replace"
+ sticky: false
+ },
+
+ ctrl: {
+ id: 512
+ pid: 1200
+ type: label
+ cells: (4,9,1,1)
+ cell_insets: (0,3,0,0)
+ text: " " // Repair Time
+ font: Verdana
+ align: right
+ transparent: true
+ },
+
+ ctrl: {
+ id: 513,
+ pid: 1200
+ type: label
+ cells: (5,9,1,1)
+ cell_insets: (3,0,0,0)
+ text: " " // Replace Time
+ font: Verdana
+ align: right
+ transparent: true
+ },
+
+ ctrl: {
+ id: 600
+ pid: 1200
+ type: label
+ cells: (8,1,1,1)
+ style: 0x0040
+ text: "form.engineering.repair-queue"
+ transparent: true
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (41,41,41)
+ }
+
+ ctrl: {
+ id: 601
+ pid: 1200
+ type: list
+ cells: (8,2,1,6)
+ cell_insets: (0,0,0,6)
+ fixed_height: 0
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ leading: 2
+ multiselect: 0
+ dragdrop: 0
+ scroll_bar: 2
+ show_headings: true
+ style: 0x20
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+
+ column: {
+ title: SYSTEM,
+ width: 212,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: ETR,
+ width: 90,
+ align: right,
+ sort: 3 }
+ },
+
+ defctrl: {
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ cell_insets: (0,0,0,0)
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 602
+ pid: 1200
+ type: button
+ cells: (8,8,1,1)
+ text: "^"
+ },
+
+ ctrl: {
+ id: 603
+ pid: 1200
+ type: button
+ cells: (8,8,1,1)
+ cell_insets: (25,0,0,0)
+ text: "v"
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.close"
+ cells: (2,6,1,1)
+ },
+}
diff --git a/data/content/Screens/ExitDlg.frm b/data/content/Screens/ExitDlg.frm
new file mode 100644
index 0000000..0d6ff23
--- /dev/null
+++ b/data/content/Screens/ExitDlg.frm
@@ -0,0 +1,88 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: ExitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,320)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 30, 80, 35)
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ text: "form.exit.title",
+ transparent: true,
+ align: center,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ cells: (1,1,3,1)
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ text: "form.exit.message",
+ transparent: true,
+ align: left,
+ font: Verdana,
+ fore_color: (255,255,255),
+ cells: (1,2,3,1)
+ }
+
+ ctrl: {
+ id: 201,
+ type: text,
+ text: "",
+ scroll_bar: 0,
+ smooth_scroll: true,
+ transparent: true,
+ align: left,
+ font: Verdana,
+ fore_color: (255,255,255),
+ cells: (1,3,3,1)
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.exit",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/content/Screens/FileDlg.frm b/data/content/Screens/FileDlg.frm
new file mode 100644
index 0000000..aeac3fa
--- /dev/null
+++ b/data/content/Screens/FileDlg.frm
@@ -0,0 +1,122 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: CmdMsgDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,380)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 50, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 10, 25, 80, 35)
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ text: "form.file.title",
+ },
+
+ defctrl: {
+ font: Verdana,
+ transparent: false,
+ style: 0,
+ },
+
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (1,3,1,1)
+ text: "form.file.name",
+ transparent: true,
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (1,4,1,1)
+ text: "form.file.files",
+ transparent: true,
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41),
+ style: 0x02,
+ scroll_bar: 0,
+ },
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,3,2,1)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 201
+ type: list
+ cells: (2,4,2,1)
+ cell_insets: (10,0,0,20)
+ scroll_bar: 2,
+
+ column: {
+ title: Files,
+ width: 200,
+ align: left,
+ sort: 0 }
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (2,5,1,1)
+ text: "form.save"
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ cells: (3,5,1,1)
+ text: "form.cancel"
+ },
+}
diff --git a/data/content/Screens/FirstTimeDlg.frm b/data/content/Screens/FirstTimeDlg.frm
new file mode 100644
index 0000000..d3f7cc7
--- /dev/null
+++ b/data/content/Screens/FirstTimeDlg.frm
@@ -0,0 +1,158 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: FirstTimeDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,430)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 90, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 25, 5, 45, 45, 45, 45, 45, 45, 35)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 1, 0, 1, 0)
+ }
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 21, 21, 21),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ align: left,
+ transparent: true,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: (192, 192, 192),
+ style: 0,
+ },
+
+ ctrl: {
+ id: 110
+ type: label
+ cells: (1,1,3,1)
+ font: Limerick18
+ text: "form.first-time.title"
+ align: center
+ },
+
+ ctrl: {
+ id: 100
+ type: label
+ cells: (1,3,3,1)
+ text: "form.first-time.message-1",
+ },
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,4,1,1)
+ text: "form.first-time.player-name",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,5,3,1)
+ text: "form.first-time.message-2",
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,6,1,1)
+ text: "form.first-time.play-style"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (1,7,3,1)
+ align: left
+ transparent: true
+ text: "form.first-time.message-3",
+ },
+
+ ctrl: {
+ id: 105
+ type: label
+ cells: (1,8,1,1)
+ text: "form.first-time.experience",
+ },
+
+ defctrl: {
+ style: 0x02
+ scroll_bar: 0
+
+ active_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ base_color: ( 92, 92, 92)
+ border_color: (192, 192, 192)
+
+ border: true
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+
+ fixed_height: 18
+ }
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,4,2,1)
+ single_line: true
+ }
+
+ ctrl: {
+ id: 201
+ type: combo
+ cells: (2,6,2,1)
+
+ item: "Arcade Style"
+ item: "Standard Model"
+ }
+
+ ctrl: {
+ id: 202
+ type: combo
+ cells: (2,8,2,1)
+
+ item: "Cadet (First timer)"
+ item: "Admiral (Experienced)"
+ }
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (3,9,1,1)
+ text: "form.accept"
+ }
+}
+
diff --git a/data/content/Screens/FltDlg.frm b/data/content/Screens/FltDlg.frm
new file mode 100644
index 0000000..df0f695
--- /dev/null
+++ b/data/content/Screens/FltDlg.frm
@@ -0,0 +1,428 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: FltDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 100, 10),
+ x_weights: ( 0, 3, 1, 0),
+
+ y_mins: (28, 30, 10, 50, 10, 60, 45),
+ y_weights: ( 0, 0, 0, 1, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,2,2),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (2,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "form.flight.title"
+ align: left
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // upper panel:
+
+ ctrl: {
+ id: 1100
+ type: panel
+ transparent: true
+
+ cells: (1,3,2,2),
+
+ layout: {
+ x_mins: ( 10, 100, 100, 20, 100, 10)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 25, 25, 25, 25, 25, 25, 10)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+ }
+
+ ctrl: {
+ id: 11
+ pid: 1100
+ type: label
+ cells: (1,1,1,1)
+ cell_insets: (0,0,0,0)
+ text: "form.flight.squadron"
+ align: left
+ font: Limerick12
+ style: 0x0040
+ back_color: (41,41,41)
+ fore_color: (255,255,255)
+ transparent: true
+ }
+
+ ctrl: {
+ id: 101
+ pid: 1100
+ type: combo
+ cells: (2,1,1,1)
+
+ fore_color: (255, 255, 255)
+ back_color: ( 60, 60, 60)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ fixed_height: 20
+ },
+
+ ctrl: {
+ id: 102
+ pid: 1100
+ type: list
+ cells: (1,2,2,5)
+
+ transparent: false
+ texture: Panel
+ margins: (12,12,12,0)
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ multiselect: 1
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: INDEX,
+ width: 90,
+ align: right,
+ sort: 2,
+ },
+
+ column: {
+ title: NAME,
+ width: 255,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: STATUS,
+ width: 120,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: MISSION,
+ width: 170,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: TIME,
+ width: 97,
+ align: left,
+ sort: 1,
+ },
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ fore_color: (0,0,0),
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1100
+ },
+
+ ctrl: {
+ id: 110
+ type: button
+ cells: (4,2,1,1)
+ text: "form.flight.package"
+ },
+
+ ctrl: {
+ id: 111
+ type: button
+ cells: (4,3,1,1)
+ text: "form.flight.alert"
+ },
+
+ ctrl: {
+ id: 112
+ type: button
+ cells: (4,4,1,1)
+ text: "form.flight.launch"
+ },
+
+ ctrl: {
+ id: 113
+ type: button
+ cells: (4,5,1,1)
+ text: "form.flight.standby"
+ },
+
+ ctrl: {
+ id: 114
+ type: button
+ cells: (4,6,1,1)
+ text: "form.flight.recall"
+ },
+
+
+
+
+ // lower panel:
+
+ ctrl: {
+ id: 1200
+ pid: 0
+ type: panel
+ cells: (1,5,2,1)
+ transparent: true
+ fixed_height: 0
+ fixed_width: 0
+
+
+ layout: {
+ x_mins: ( 10, 100, 20, 200, 20, 200, 10)
+ x_weights: ( 0, 1, 0, 2, 0, 2, 0)
+
+ y_mins: ( 30, 25, 25, 25, 25, 25, 25, 25, 10)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ back_color: (41,41,41)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ border: false
+ transparent: true
+ pid: 1200
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ text: "form.flight.objective"
+ cells: (3,1,1,1)
+ style: 0x0040
+ }
+
+ ctrl: {
+ id: 402
+ type: label
+ text: "form.flight.loadout"
+ cells: (5,1,1,1)
+ style: 0x0040
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1200
+ },
+
+ ctrl: {
+ id: 210
+ type: button
+ cells: (1,2,1,1)
+ text: "form.flight.patrol"
+ },
+
+ ctrl: {
+ id: 211,
+ type: button,
+ cells: (1,3,1,1)
+ text: "form.flight.intercept"
+ },
+
+ ctrl: {
+ id: 212,
+ type: button,
+ cells: (1,4,1,1)
+ text: "form.flight.assault"
+ },
+
+ ctrl: {
+ id: 213,
+ type: button,
+ cells: (1,5,1,1)
+ text: "form.flight.strike"
+ },
+
+ ctrl: {
+ id: 214,
+ type: button,
+ cells: (1,6,1,1)
+ text: "form.flight.escort"
+ },
+
+ ctrl: {
+ id: 215,
+ type: button,
+ cells: (1,7,1,1)
+ text: "form.flight.scout"
+ },
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ transparent: false
+ texture: Panel
+ margins: (12,12,12,0)
+ fixed_height: 0
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+ }
+
+ ctrl: {
+ id: 221
+ type: list
+ cells: (3,2,1,6)
+
+ column: {
+ title: NAME
+ width: 130
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: SECTOR
+ width: 90
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: RANGE
+ width: 82
+ align: right
+ sort: 1
+ }
+ }
+
+ ctrl: {
+ id: 222
+ type: list
+ cells: (5,2,1,6)
+
+ column: {
+ title: NAME
+ width: 190
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: WEIGHT
+ width: 112
+ align: right
+ sort: 1
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.close"
+ cells: (2,6,1,1)
+ },
+}
diff --git a/data/content/Screens/JoyDlg.frm b/data/content/Screens/JoyDlg.frm
new file mode 100644
index 0000000..86e17c7
--- /dev/null
+++ b/data/content/Screens/JoyDlg.frm
@@ -0,0 +1,216 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: KeyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 1, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 30, 75, 10, 35),
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ defctrl: {
+ align: center
+ base_color: ( 92, 92, 92)
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ cells: (1,1,3,1)
+ text: "form.joystick.title",
+ },
+
+
+ ctrl: {
+ id: 501,
+ type: label,
+ cells: (1,2,1,1)
+ text: "form.joystick.axis",
+ },
+
+ ctrl: {
+ id: 502,
+ type: label,
+ cells: (2,2,1,1)
+ text: "form.joystick.select",
+ },
+
+ ctrl: {
+ id: 503,
+ type: label,
+ cells: (3,2,1,1)
+ text: "form.joystick.invert",
+ },
+
+ defctrl: {
+ align: left
+ font: Verdana
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,3,1,1)
+ text: "form.joystick.x-axis"
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,4,1,1)
+ text: "form.joystick.y-axis"
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,5,1,1)
+ text: "form.joystick.rudder"
+ }
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (1,6,1,1)
+ text: "form.joystick.throttle"
+ }
+
+ ctrl: {
+ id: 11
+ type: label
+ cells: (1,8,3,1)
+ text: "form.joystick.message"
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,6)
+ sticky: true
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201
+ type: button
+ cells: (2,3,1,1)
+ text: "form.joystick.select"
+ },
+
+ ctrl: {
+ id: 202
+ type: button
+ cells: (2,4,1,1)
+ text: "form.joystick.select"
+ },
+
+ ctrl: {
+ id: 203
+ type: button
+ cells: (2,5,1,1)
+ text: "form.joystick.select"
+ },
+
+ ctrl: {
+ id: 204
+ type: button
+ cells: (2,6,1,1)
+ text: "form.joystick.select"
+ }
+
+ defctrl: {
+ cell_insets: (55,0,0,0)
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ }
+
+ ctrl: {
+ id: 301
+ type: button
+ cells: (3,3,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ cells: (3,4,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 304
+ type: button
+ cells: (3,6,1,1)
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ fixed_width: 0
+ fixed_height: 0
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.apply",
+ cells: (2,10,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (3,10,1,1),
+ }
+}
diff --git a/data/content/Screens/KeyDlg.frm b/data/content/Screens/KeyDlg.frm
new file mode 100644
index 0000000..27407fe
--- /dev/null
+++ b/data/content/Screens/KeyDlg.frm
@@ -0,0 +1,140 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: KeyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 40, 55, 10, 35),
+ y_weights: ( 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "form.key.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "form.keyboard.command"
+ cells: (1,2,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ text: "form.keyboard.current-key"
+ cells: (1,3,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ text: "form.keyboard.new-key"
+ cells: (1,4,1,1)
+ }
+
+ ctrl: {
+ id: 11
+ type: label
+ cells: (1,8,3,1)
+ text: "form.keyboard.message"
+ }
+
+ defctrl: {
+ cell_insets: (0,0,0,5)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (2,2,2,1)
+ text: "form.keyboard.none-selected",
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ cells: (2,3,2,1)
+ text: "form.keyboard.none-selected",
+ },
+
+
+ ctrl: {
+ id: 203,
+ type: label,
+ cells: (2,4,2,1)
+ text: "",
+ },
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 300,
+ type: button,
+ cells: (2,6,2,1)
+ text: "form.keyboard.clear-binding",
+ cell_insets: (0,0,0,6)
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.apply",
+ cells: (2,10,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (3,10,1,1),
+ }
+}
diff --git a/data/content/Screens/LoadDlg.frm b/data/content/Screens/LoadDlg.frm
new file mode 100644
index 0000000..e1548a4
--- /dev/null
+++ b/data/content/Screens/LoadDlg.frm
@@ -0,0 +1,64 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: ExitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,320)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (40, 40, 100, 100, 40)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 60, 35, 25)
+ y_weights: ( 0, 0, 0, 0, 0)
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ cells: (1,1,3,1)
+ text: "form.load.title"
+
+ align: center
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,3,3,1)
+ text: ""
+
+ align: center
+ font: Verdana
+ fore_color: (255,255,255)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 102,
+ type: slider,
+ cells: (1,4,3,1)
+ fixed_height: 8
+
+ active_color: (250, 250, 100),
+ back_color: ( 21, 21, 21),
+ border: false,
+ transparent: false,
+ },
+}
+
diff --git a/data/content/Screens/MenuDlg.frm b/data/content/Screens/MenuDlg.frm
new file mode 100644
index 0000000..15cb4f4
--- /dev/null
+++ b/data/content/Screens/MenuDlg.frm
@@ -0,0 +1,159 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+ font: Limerick12,
+
+ layout: {
+ x_mins: (20, 20, 28, 180, 20),
+ x_weights: ( 0, 1, 0, 0, 0),
+
+ y_mins: (60, 60, 40, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30),
+ y_weights: ( 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ },
+
+ // background images:
+
+ defctrl: {
+ fore_color: (4,4,4),
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: MenuDlg1
+ cells: (0,0,5,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 301
+ type: background
+ texture: Plasma
+ cells: (0,1,5,1)
+ margins: (0,896,0,0)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 302
+ type: background
+ texture: MenuDlg2
+ cells: (0,2,5,12)
+ margins: (2,248,32,2)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ align: right,
+ font: Verdana,
+ transparent: true,
+ cells: (3,2,1,1)
+ cell_insets: (0,0,30,5)
+ hide_partial: false
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button23_0,
+ activated_image: Button23_1,
+ transition_image: Button23_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (0,0,0,5)
+ },
+
+
+ ctrl: {
+ id: 120,
+ type: button,
+ text: "form.main.start",
+ alt: "form.main.start.alt",
+ cells: (3,3,1,1)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ text: "form.main.campaign",
+ alt: "form.main.campaign.alt",
+ cells: (3,4,1,1),
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ text: "form.main.mission",
+ alt: "form.main.mission.alt",
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ text: "form.main.multiplayer",
+ alt: "form.main.multiplayer.alt",
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ text: "form.main.logbook",
+ alt: "form.main.logbook.alt",
+ cells: (3,7,1,1)
+ },
+
+ ctrl: {
+ id: 111,
+ type: button,
+ text: "form.main.options",
+ alt: "form.main.options.alt",
+ cells: (3,8,1,1)
+ },
+
+ ctrl: {
+ id: 116,
+ type: button,
+ text: "form.main.reference",
+ alt: "form.main.reference.alt",
+ cells: (3,9,1,1)
+ },
+
+ ctrl: {
+ id: 114,
+ type: button,
+ text: "form.main.exit",
+ alt: "form.main.exit.alt",
+ cells: (3,10,1,1)
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ align: center,
+ font: Verdana,
+ transparent: true,
+ cells: (1,11,3,1)
+ }
+
+
+}
diff --git a/data/content/Screens/ModDlg.frm b/data/content/Screens/ModDlg.frm
new file mode 100644
index 0000000..105152f
--- /dev/null
+++ b/data/content/Screens/ModDlg.frm
@@ -0,0 +1,332 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: ModDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ },
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.options.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: "form.options.tab.video"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: "form.options.tab.audio"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: "form.options.tab.controls"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: "form.options.tab.gameplay"
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "form.options.tab.mods"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,10,54)
+
+ layout: {
+ x_mins: (100, 100, 30, 30, 20, 100, 100, 30, 30)
+ x_weights: ( 3, 3, 0, 0, 0, 3, 3, 0, 0)
+
+ y_mins: ( 3, 84, 40, 80, 30, 10)
+ y_weights: ( 0, 0, 0, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: text
+ cells: (0,1,9,1)
+ cell_insets: (0,0,0,0)
+ transparent: false
+ scroll_bar: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ text: "form.mods.instructions"
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ cells: (0,2,4,1)
+ cell_insets: (0,0,20,0)
+ text: "form.mods.disabled-mods"
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ align: center
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ cells: (5,2,4,1)
+ cell_insets: (0,0,20,0)
+ text: "form.mods.enabled-mods"
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ align: center
+ },
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: list,
+ cells: (0,3,4,1)
+ cell_insets: (0,0,0,10)
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: Disabled,
+ width: 248,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: list,
+ cells: (5,3,4,1)
+ cell_insets: (0,0,0,10)
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: Enabled,
+ width: 248,
+ align: left,
+ sort: 0 }
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,11)
+ }
+
+ ctrl: {
+ id: 301
+ pid: 300
+ type: button
+ cells: (0,4,1,1)
+ text: "form.mods.enable"
+ },
+
+ ctrl: {
+ id: 302
+ pid: 300
+ type: button
+ cells: (5,4,1,1)
+ text: "form.mods.disable"
+ },
+
+ defctrl: {
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ cell_insets: (10,0,0,0)
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 303
+ pid: 300
+ type: button
+ cells: (7,4,1,1)
+ text: "^"
+ },
+
+ ctrl: {
+ id: 304
+ pid: 300
+ type: button
+ cells: (8,4,1,1)
+ text: "v"
+ },
+
+
+ // apply and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_width: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.apply"
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/content/Screens/ModInfoDlg.frm b/data/content/Screens/ModInfoDlg.frm
new file mode 100644
index 0000000..e65cd0a
--- /dev/null
+++ b/data/content/Screens/ModInfoDlg.frm
@@ -0,0 +1,111 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: ModInfoDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,340)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 15, 128, 20)
+ x_weights: ( 0, 1, 0, 0, 0)
+
+ y_mins: (44, 25, 5, 30, 128, 10, 45, 35)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ base_color: (160, 160, 150)
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Verdana
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ cells: (1,1,3,1)
+ text: "form.mod-info.title"
+ font: Limerick18
+ align: center
+ },
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,3,3,1)
+ text: " " // mod name goes here
+ font: Limerick12
+ align: left
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,4,1,1)
+ text: " ", // Description goes here
+ font: Verdana,
+ transparent: true
+ },
+
+ ctrl: {
+ id: 200,
+ type: image,
+ cells: (3,4,1,1)
+ back_color: (12,12,12)
+ border: true
+ style: 0x02,
+ picture: "mod_logo.pcx"
+ fixed_width: 128
+ fixed_height: 128
+ transparent: false
+ },
+
+ ctrl: {
+ id: 103,
+ type: label,
+ cells: (1,6,3,1)
+ text: " ", // Copyright Notice goes here
+ font: Verdana,
+ transparent: true
+ },
+
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (3,7,1,1)
+ text: "form.close"
+ }
+}
+
diff --git a/data/content/Screens/MsnEditDlg.frm b/data/content/Screens/MsnEditDlg.frm
new file mode 100644
index 0000000..27d0df1
--- /dev/null
+++ b/data/content/Screens/MsnEditDlg.frm
@@ -0,0 +1,618 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnEditDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 2, 4, 2, 2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 20
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 21
+ type: background
+ texture: Frame2a
+ cells: (1,4,2,3)
+ cell_insets: (0,0,0,10)
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 22
+ type: background
+ texture: Frame2b
+ cells: (3,4,2,3)
+ cell_insets: (0,0,0,10)
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.msn-edit.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 90
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0)
+ cell_insets: (0,4,0,0)
+ pid: 90
+ },
+
+ ctrl: {
+ id: 301
+ type: button
+ text: "form.msn-edit.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ text: "form.msn-edit.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ text: "form.msn-edit.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 70
+ pid: 0
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 20, 20, 10)
+ y_weights: ( 1, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 70
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,1,1,1)
+ text: "form.msn-edit.name"
+ },
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,2,1,1)
+ text: "form.msn-edit.type"
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (3,1,1,1)
+ text: "form.msn-edit.system"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (3,2,1,1)
+ text: "form.msn-edit.sector"
+ },
+
+ defctrl: {
+ style: 2
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ active_color: ( 62, 106, 151)
+ border_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ border: true
+ simple: true
+ bevel_width: 3
+ transparent: false
+ cell_insets: (0,20,0,5)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,1,1,1)
+ single_line: true,
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (2,2,1,1)
+
+ item: "Patrol",
+ item: "Sweep",
+ item: "Intercept",
+ item: "Airborne Patrol",
+ item: "Airborne Sweep",
+ item: "Airborne Intercept",
+ item: "Strike",
+ item: "Assault",
+ item: "Defend",
+ item: "Escort",
+ item: "Freight Escort",
+ item: "Shuttle Escort",
+ item: "Strike Escort",
+ item: "Intel",
+ item: "Scout",
+ item: "Recon",
+ item: "Blockade",
+ item: "Fleet",
+ item: "Attack",
+ item: "Flight Ops",
+ item: "Transport",
+ item: "Cargo",
+ item: "Training",
+ item: "Misc",
+ }
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (4,1,1,1)
+ }
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (4,2,1,1)
+ }
+
+ defctrl: {
+ fixed_height: 0
+ fixed_width: 0
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 400
+ pid: 0
+ type: panel
+ transparent: false
+ style: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 20, 100, 10)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 15, 20, 50, 20, 50, 15)
+ y_weights: ( 0, 0, 1, 0, 2, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Limerick12
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ pid: 400
+
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ transparent: true
+ style: 0x0040
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ cells: (1,1,3,1)
+ text: "form.msn-edit.description"
+ },
+
+ ctrl: {
+ id: 402
+ type: label
+ cells: (1,3,1,1)
+ text: "form.msn-edit.situation"
+ },
+
+ ctrl: {
+ id: 403
+ type: label
+ cells: (3,3,1,1)
+ text: "form.msn-edit.objective"
+ },
+
+ defctrl: {
+ font: Verdana
+ style: 0x02
+ scroll_bar: 0
+ bevel_width: 0
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ fixed_height: 0
+ cell_insets: (0,0,0,5)
+ },
+
+ ctrl: {
+ id: 410
+ type: edit
+ cells: (1,2,3,1)
+ text: "" // Description goes here.
+ },
+
+ ctrl: {
+ id: 411
+ type: edit
+ cells: (1,4,1,1)
+ text: "" // Situation goes here.
+ },
+
+ ctrl: {
+ id: 412
+ type: edit
+ cells: (3,4,1,1)
+ text: "" // Objective goes here.
+ },
+
+ // main panel:
+
+ ctrl: {
+ id: 500
+ pid: 0
+ type: panel
+ transparent: false
+ style: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 110, 110, 110, 10, 25, 25, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0)
+
+ y_mins: ( 15, 20, 50, 20, 20, 50, 20, 15)
+ y_weights: ( 0, 0, 1, 0, 0, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Limerick12
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ pid: 500
+
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+
+ ctrl: {
+ id: 510,
+ type: list,
+ cells: (1,2,6,1)
+ back_color: ( 41, 41, 41),
+
+ font: Verdana
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: IFF,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: CALLSIGN,
+ width: 125,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: TYPE,
+ width: 125,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: ROLE,
+ width: 107,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SECTOR,
+ width: 125,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 520,
+ type: list,
+ cells: (1,5,6,1)
+ back_color: ( 41, 41, 41),
+
+ font: Verdana
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: ID,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: TIME,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: EVENT,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SHIP,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: MESSAGE,
+ width: 232,
+ align: left,
+ sort: 0 },
+ },
+
+
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fore_color: (0,0,0)
+ cell_insets: (0,5,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 501
+ type: button
+ cells: (1,1,1,1)
+ text: "form.msn-edit.add-element"
+ },
+
+ ctrl: {
+ id: 505
+ type: button
+ cells: (2,1,1,1)
+ text: "form.msn-edit.edit-element"
+ },
+
+ ctrl: {
+ id: 502
+ type: button
+ cells: (3,1,1,1)
+ text: "form.msn-edit.del-element"
+ },
+
+ ctrl: {
+ id: 511
+ type: button
+ cells: (1,4,1,1)
+ text: "form.msn-edit.add-event"
+ },
+
+ ctrl: {
+ id: 515
+ type: button
+ cells: (2,4,1,1)
+ text: "form.msn-edit.edit-event"
+ },
+
+ ctrl: {
+ id: 512
+ type: button
+ cells: (3,4,1,1)
+ text: "form.msn-edit.del-event"
+ },
+
+ defctrl: {
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ fore_color: (0,0,0)
+ align: center
+ fixed_height: 19
+ fixed_width: 19
+ },
+
+ ctrl: {
+ id: 503,
+ type: button,
+ cells: (5,3,1,1)
+ text: "^",
+ },
+
+ ctrl: {
+ id: 504,
+ type: button,
+ cells: (6,3,1,1)
+ text: "V",
+ },
+
+ ctrl: {
+ id: 513,
+ type: button,
+ cells: (5,6,1,1)
+ text: "^",
+ },
+
+ ctrl: {
+ id: 514,
+ type: button,
+ cells: (6,6,1,1)
+ text: "V",
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/content/Screens/MsnEditNavDlg.frm b/data/content/Screens/MsnEditNavDlg.frm
new file mode 100644
index 0000000..350484c
--- /dev/null
+++ b/data/content/Screens/MsnEditNavDlg.frm
@@ -0,0 +1,519 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnEditNavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 2, 4, 2, 2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 20
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 21
+ type: background
+ texture: Frame2a
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 22
+ type: background
+ texture: Frame2b
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.msn-edit.nav.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 90
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0)
+ cell_insets: (0,4,0,0)
+ pid: 90
+ },
+
+ ctrl: {
+ id: 301
+ type: button
+ text: "form.msn-edit.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ text: "form.msn-edit.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ text: "form.msn-edit.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 70
+ pid: 0
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 20, 20, 10)
+ y_weights: ( 1, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 70
+ },
+
+ ctrl: {
+ id: 71
+ type: label
+ cells: (1,1,1,1)
+ text: "form.msn-edit.name"
+ },
+
+ ctrl: {
+ id: 72
+ type: label
+ cells: (1,2,1,1)
+ text: "form.msn-edit.type"
+ },
+
+ ctrl: {
+ id: 73
+ type: label
+ cells: (3,1,1,1)
+ text: "form.msn-edit.system"
+ },
+
+ ctrl: {
+ id: 74
+ type: label
+ cells: (3,2,1,1)
+ text: "form.msn-edit.sector"
+ },
+
+ defctrl: {
+ style: 2
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ active_color: ( 62, 106, 151)
+ border_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ border: true
+ simple: true
+ bevel_width: 3
+ transparent: false
+ cell_insets: (0,20,0,5)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,1,1,1)
+ single_line: true,
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (2,2,1,1)
+
+ item: "Patrol",
+ item: "Sweep",
+ item: "Intercept",
+ item: "Airborne Patrol",
+ item: "Airborne Sweep",
+ item: "Airborne Intercept",
+ item: "Strike",
+ item: "Assault",
+ item: "Defend",
+ item: "Escort",
+ item: "Freight Escort",
+ item: "Shuttle Escort",
+ item: "Strike Escort",
+ item: "Intel",
+ item: "Scout",
+ item: "Recon",
+ item: "Blockade",
+ item: "Fleet",
+ item: "Attack",
+ item: "Flight Ops",
+ item: "Transport",
+ item: "Cargo",
+ item: "Training",
+ item: "Misc",
+ }
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (4,1,1,1)
+ }
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (4,2,1,1)
+ }
+
+ defctrl: {
+ fixed_height: 0
+ fixed_width: 0
+ pid: 0
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 100, 100, 10, 24, 24, 15, 95, 90, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
+
+ y_mins: ( 15, 25, 25, 25, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 1, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,2,6,4)
+ cell_insets: (0,0,0,0)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+ style: 2
+ font: Limerick12
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (1,1,1,1)
+ text: "form.msn-edit.nav.galaxy"
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (2,1,1,1)
+ text: "form.msn-edit.nav.system"
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (3,1,1,1)
+ text: "form.msn-edit.nav.sector"
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ //font: Verdana,
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (5,1,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (6,1,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 0
+ cell_insets: (0,2,0,6)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: button
+ cells: (8,1,1,1)
+ text: "form.msn-edit.nav.system"
+ }
+
+ ctrl: {
+ id: 403
+ pid: 800
+ type: button
+ cells: (8,2,1,1)
+ text: "form.msn-edit.nav.sector"
+ }
+
+ ctrl: {
+ id: 405
+ pid: 800
+ type: button
+ cells: (8,3,1,1)
+ text: "form.msn-edit.nav.starship"
+ }
+
+ defctrl: {
+ cell_insets: (2,0,0,6)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 800
+ type: button
+ cells: (9,1,1,1)
+ text: "form.msn-edit.nav.planet"
+ }
+
+ ctrl: {
+ id: 404
+ pid: 800
+ type: button
+ cells: (9,2,1,1)
+ text: "form.msn-edit.nav.station"
+ }
+
+ ctrl: {
+ id: 406
+ pid: 800
+ type: button
+ cells: (9,3,1,1)
+ text: "form.msn-edit.nav.fighter"
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+
+ scroll_bar: 2
+ style: 0x02
+ transparent: false
+
+ cell_insets: (0,0,5,0)
+ },
+
+ ctrl: {
+ id: 801
+ pid: 800
+ type: list
+ cells: (8,4,2,1)
+ show_headings: true
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 800
+ type: list
+ cells: (8,5,2,1)
+ show_headings: false
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ }
+}
diff --git a/data/content/Screens/MsnElemDlg.frm b/data/content/Screens/MsnElemDlg.frm
new file mode 100644
index 0000000..d8434ce
--- /dev/null
+++ b/data/content/Screens/MsnElemDlg.frm
@@ -0,0 +1,494 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnElemDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,600,450)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 100, 100, 20)
+ x_weights: ( 0, 1, 1, 1, 0)
+
+ y_mins: (44, 30, 100, 10, 35)
+ y_weights: ( 0, 0, 1, 0, 0)
+ }
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "form.msn-elem.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 100
+ type: panel
+ cells: (1,2,3,1)
+ transparent: true
+
+ layout: {
+ x_mins: (80, 100, 20, 90, 100)
+ x_weights: ( 0, 1, 0, 0, 1)
+
+ y_mins: (25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ pid: 100
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (0,0,1,1)
+ text: "form.msn-elem.name",
+ },
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (0,1,1,1)
+ text: "form.msn-elem.class",
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (0,2,1,1)
+ text: "form.msn-elem.design"
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ cells: (0,3,1,1)
+ text: "form.msn-elem.skin"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (0,4,1,1)
+ text: "form.msn-elem.size"
+ },
+
+ ctrl: {
+ id: 105,
+ type: label,
+ cells: (0,5,1,1)
+ text: "form.msn-elem.iff",
+ },
+
+ ctrl: {
+ id: 107,
+ type: label,
+ cells: (0,6,1,1)
+ text: "form.msn-elem.role",
+ },
+
+ ctrl: {
+ id: 108,
+ type: label,
+ cells: (0,7,1,1)
+ text: "form.msn-elem.sector",
+ },
+
+ ctrl: {
+ id: 109,
+ type: label,
+ cells: (0,8,1,1)
+ text: "form.msn-elem.location",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (0,9,1,1)
+ text: "form.msn-elem.heading",
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (0,10,1,1)
+ text: "form.msn-elem.hold-time",
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (0,11,1,1)
+ text: "form.msn-elem.intel",
+ },
+
+
+ // right column:
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,0,1,1)
+ text: "form.msn-elem.player",
+ },
+
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,1,1,1)
+ text: "form.msn-elem.alert",
+ },
+
+ ctrl: {
+ id: 122,
+ type: label,
+ cells: (3,2,1,1)
+ text: "form.msn-elem.playable",
+ },
+
+ ctrl: {
+ id: 123,
+ type: label,
+ cells: (3,3,1,1)
+ text: "form.msn-elem.command-ai",
+ },
+
+ ctrl: {
+ id: 124,
+ type: label,
+ cells: (3,4,1,1)
+ text: "form.msn-elem.respawns",
+ },
+
+ ctrl: {
+ id: 125,
+ type: label,
+ cells: (3,5,1,1)
+ text: "form.msn-elem.commander",
+ },
+
+ ctrl: {
+ id: 126,
+ type: label,
+ cells: (3,6,1,1)
+ text: "form.msn-elem.carrier",
+ },
+
+ ctrl: {
+ id: 127,
+ type: label,
+ cells: (3,7,1,1)
+ text: "form.msn-elem.squadron",
+ },
+
+ ctrl: {
+ id: 129,
+ type: label,
+ cells: (3,8,1,1)
+ text: "form.msn-elem.loadout",
+ },
+
+ ctrl: {
+ id: 130,
+ type: label,
+ cells: (3,9,1,1)
+ text: "form.msn-elem.objective",
+ },
+
+ ctrl: {
+ id: 131,
+ type: label,
+ cells: (3,10,1,1)
+ text: "form.msn-elem.target",
+ },
+
+ defctrl: {
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 0,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41),
+ border_color: (192, 192, 192),
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (1,0,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 213,
+ type: combo,
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: edit,
+ cells: (1,4,1,1)
+ text: "1",
+ },
+
+ ctrl: {
+ id: 205,
+ type: edit,
+ cells: (1,5,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 206,
+ type: combo,
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 207,
+ type: combo,
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 28
+ type: panel
+ transparent: true
+ cells: (1,8,1,1)
+ layout: {
+ x_mins: (20, 5, 20, 5, 20)
+ x_weights: ( 1, 0, 1, 0, 1)
+
+ y_mins: (25)
+ y_weights: ( 1)
+ }
+ }
+
+ ctrl: {
+ id: 208
+ pid: 28
+ type: edit,
+ cells: (0,0,1,1)
+ text: "0", // X
+ },
+
+ ctrl: {
+ id: 209
+ pid: 28
+ type: edit,
+ cells: (2,0,1,1)
+ text: "0", // Y
+ },
+
+ ctrl: {
+ id: 210
+ pid: 28
+ type: edit,
+ cells: (4,0,1,1)
+ text: "0", // Z
+ },
+
+ ctrl: {
+ id: 211,
+ type: combo,
+ cells: (1,9,1,1)
+
+ item: "form.msn-elem.north",
+ item: "form.msn-elem.east",
+ item: "form.msn-elem.south",
+ item: "form.msn-elem.west",
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (1,10,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 229,
+ type: combo,
+ cells: (1,11,1,1)
+ },
+
+ // right column:
+ defctrl: {
+ active_color: (250, 250, 100),
+ back_color: ( 92, 92, 92),
+ active: true,
+ border: false,
+
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ }
+
+ ctrl: {
+ id: 221,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,0,1,1)
+ },
+
+ ctrl: {
+ id: 222,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 223,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,2,1,1)
+ },
+
+ ctrl: {
+ id: 224,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,3,1,1)
+ },
+
+ defctrl: {
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41),
+ border_color: (192, 192, 192),
+ border: true,
+ fixed_width: 0
+ fixed_height: 18
+
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ sticky: false
+ },
+
+ ctrl: {
+ id: 225,
+ type: edit,
+ cells: (4,4,1,1)
+ text: "0",
+ },
+
+ ctrl: {
+ id: 226,
+ type: combo,
+ cells: (4,5,1,1)
+ },
+
+ ctrl: {
+ id: 227,
+ type: combo,
+ cells: (4,6,1,1)
+ },
+
+ ctrl: {
+ id: 228,
+ type: combo,
+ cells: (4,7,1,1)
+ },
+
+ ctrl: {
+ id: 230,
+ type: combo,
+ cells: (4,8,1,1)
+ },
+
+ ctrl: {
+ id: 231,
+ type: combo,
+ cells: (4,9,1,1)
+ },
+
+ ctrl: {
+ id: 232,
+ type: combo,
+ cells: (4,10,1,1)
+ },
+
+
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.apply",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/content/Screens/MsnEventDlg.frm b/data/content/Screens/MsnEventDlg.frm
new file mode 100644
index 0000000..3485bcd
--- /dev/null
+++ b/data/content/Screens/MsnEventDlg.frm
@@ -0,0 +1,326 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnElemDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,600,450)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 100, 100, 20)
+ x_weights: ( 0, 1, 1, 1, 0)
+
+ y_mins: (44, 30, 100, 10, 35)
+ y_weights: ( 0, 0, 1, 0, 0)
+ }
+
+ defctrl: {
+ active_color: ( 62, 106, 151)
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "form.msn-event.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 100
+ type: panel
+ cells: (1,2,3,1)
+ transparent: true
+
+ layout: {
+ x_mins: (80, 100, 30, 90, 100)
+ x_weights: ( 0, 1, 0, 0, 1)
+
+ y_mins: (25, 25, 25, 25, 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ pid: 100
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (0,0,1,1)
+ text: "form.msn-event.identifier",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (0,1,1,1)
+ text: "form.msn-event.time",
+ },
+
+ ctrl: {
+ id: 103,
+ type: label,
+ cells: (0,2,1,1)
+ text: "form.msn-event.delay",
+ },
+
+ ctrl: {
+ id: 104,
+ type: label,
+ cells: (0,3,1,1)
+ text: "form.msn-event.action",
+ },
+
+ ctrl: {
+ id: 105,
+ type: label,
+ cells: (0,4,1,1)
+ text: "form.msn-event.ship",
+ },
+
+ ctrl: {
+ id: 106,
+ type: label,
+ cells: (0,5,1,1)
+ text: "form.msn-event.source",
+ },
+
+ ctrl: {
+ id: 107,
+ type: label,
+ cells: (0,6,1,1)
+ text: "form.msn-event.target",
+ },
+
+ ctrl: {
+ id: 108,
+ type: label,
+ cells: (0,7,1,1)
+ text: "form.msn-event.parameter",
+ },
+
+ ctrl: {
+ id: 109,
+ type: label,
+ cells: (0,8,1,1)
+ text: "form.msn-event.sound",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (0,9,1,1)
+ text: "form.msn-event.message",
+ },
+
+
+ // right column:
+ ctrl: {
+ id: 120,
+ type: label,
+ cells: (3,1,1,1)
+ text: "form.msn-event.chance",
+ },
+
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,3,1,1)
+ text: "form.msn-event.trigger",
+ },
+
+ ctrl: {
+ id: 122,
+ type: label,
+ cells: (3,4,1,1)
+ text: "form.msn-event.ship",
+ },
+
+ ctrl: {
+ id: 123,
+ type: label,
+ cells: (3,5,1,1)
+ text: "form.msn-event.target",
+ },
+
+ ctrl: {
+ id: 124,
+ type: label,
+ cells: (3,6,1,1)
+ text: "form.msn-event.parameter",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (1,0,1,1)
+ text: "",
+ },
+
+ defctrl: {
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 0,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 205,
+ type: combo,
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 206,
+ type: combo,
+ cells: (1,5,1,1)
+ },
+
+ ctrl: {
+ id: 207,
+ type: combo,
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 208,
+ type: edit,
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 209,
+ type: edit,
+ cells: (1,8,1,1)
+ },
+
+ ctrl: {
+ id: 210,
+ type: edit,
+ cells: (1,9,4,1)
+ cell_insets: (0,0,0,15)
+ fixed_height: 0
+ },
+
+ defctrl: {
+ active: true,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ border: true,
+ sticky: true,
+ },
+
+ // right column:
+ ctrl: {
+ id: 220,
+ type: edit,
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 221,
+ type: combo,
+ cells: (4,3,1,1)
+ },
+
+ ctrl: {
+ id: 222,
+ type: combo,
+ cells: (4,4,1,1)
+ },
+
+ ctrl: {
+ id: 223,
+ type: combo,
+ cells: (4,5,1,1)
+ },
+
+ ctrl: {
+ id: 224,
+ type: edit,
+ cells: (4,6,1,1)
+ },
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.apply",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/content/Screens/MsnNavDlg.frm b/data/content/Screens/MsnNavDlg.frm
new file mode 100644
index 0000000..37cf2e9
--- /dev/null
+++ b/data/content/Screens/MsnNavDlg.frm
@@ -0,0 +1,477 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnNavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.mission.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: "form.mission.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: "form.mission.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: "form.mission.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: "form.mission.tab.loadout"
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "", // title goes here
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "form.mission.system"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "" // system goes here
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "form.mission.sector"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "" // sector goes here
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "" // timestamp
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 100, 100, 10, 24, 24, 15, 95, 90, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
+
+ y_mins: ( 15, 25, 25, 20, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 1, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,2,6,4)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+ style: 2
+ font: Limerick12
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (1,1,1,1)
+ text: "form.mission.nav.galaxy"
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (2,1,1,1)
+ text: "form.mission.nav.system"
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (3,1,1,1)
+ text: "form.mission.nav.sector"
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ //font: Verdana,
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (5,1,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (6,1,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 0
+ cell_insets: (0,2,0,6)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: button
+ cells: (8,1,1,1)
+ text: "form.mission.nav.system"
+ }
+
+ ctrl: {
+ id: 403
+ pid: 800
+ type: button
+ cells: (8,2,1,1)
+ text: "form.mission.nav.sector"
+ }
+
+ ctrl: {
+ id: 405
+ pid: 800
+ type: button
+ cells: (8,3,1,1)
+ text: "form.mission.nav.starship"
+ }
+
+ defctrl: {
+ cell_insets: (2,0,0,6)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 800
+ type: button
+ cells: (9,1,1,1)
+ text: "form.mission.nav.planet"
+ }
+
+ ctrl: {
+ id: 404
+ pid: 800
+ type: button
+ cells: (9,2,1,1)
+ text: "form.mission.nav.station"
+ }
+
+ ctrl: {
+ id: 406
+ pid: 800
+ type: button
+ cells: (9,3,1,1)
+ text: "form.mission.nav.fighter"
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+
+ scroll_bar: 2
+ style: 0x02
+ transparent: false
+
+ cell_insets: (0,0,5,0)
+ },
+
+ ctrl: {
+ id: 801
+ pid: 800
+ type: list
+ cells: (8,4,2,1)
+ show_headings: true
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 800
+ type: list
+ cells: (8,5,2,1)
+ show_headings: false
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/content/Screens/MsnObjDlg.frm b/data/content/Screens/MsnObjDlg.frm
new file mode 100644
index 0000000..f76c713
--- /dev/null
+++ b/data/content/Screens/MsnObjDlg.frm
@@ -0,0 +1,352 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnObjDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.mission.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: "form.mission.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: "form.mission.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: "form.mission.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: "form.mission.tab.loadout"
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "", // title goes here
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "form.mission.system"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "" // system goes here
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "form.mission.sector"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "" // sector goes here
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "" // timestamp
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 3, 0, 2, 0)
+
+ y_mins: ( 10, 20, 100, 20, 60, 20)
+ y_weights: ( 0, 0, 2, 0, 1, 0)
+ }
+ }
+
+ ctrl: {
+ id: 300
+ pid: 800
+ type: label
+ cells: (3,2,1,2)
+ font: Limerick12
+ transparent: true
+ },
+
+ ctrl: {
+ id: 301
+ pid: 800
+ type: label
+ cells: (3,4,1,1)
+ text: "" // Player Description
+ align: center
+ single_line: true
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 302
+ pid: 800
+ type: combo
+ cells: (3,4,1,1)
+ cell_insets: (20,20,24,0)
+
+ style: 0x02
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ }
+
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,3,1,1)
+ text: "form.mission.objectives"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 400
+ pid: 800
+ type: label
+ cells: (1,4,1,1)
+ text: "" // objective goes here
+ font: Verdana
+ },
+
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: label
+ cells: (1,1,1,1)
+ text: "form.mission.situation"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: label
+ cells: (1,2,1,1)
+ text: "" // sitrep goes here
+ font: Verdana
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/content/Screens/MsnPkgDlg.frm b/data/content/Screens/MsnPkgDlg.frm
new file mode 100644
index 0000000..fa015d5
--- /dev/null
+++ b/data/content/Screens/MsnPkgDlg.frm
@@ -0,0 +1,466 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnPkgDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.mission.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: "form.mission.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: "form.mission.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: "form.mission.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: "form.mission.tab.loadout"
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "", // title goes here
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "form.mission.system"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "" // system goes here
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "form.mission.sector"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "" // sector goes here
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "" // timestamp
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 2, 0, 1, 0)
+
+ y_mins: ( 10, 20, 60, 10, 20, 60, 20)
+ y_weights: ( 0, 0, 1, 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255),
+ font: Limerick12,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0),
+ transparent: true
+ },
+
+ ctrl: {
+ id: 120
+ pid: 800
+ type: label,
+ cells: (1,1,1,1)
+ text: "form.mission.element"
+ },
+
+ ctrl: {
+ id: 320
+ pid: 800
+ type: list,
+ cells: (1,2,1,1)
+ font: Verdana
+
+ back_color: (41,41,41),
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: CALLSIGN,
+ width: 90,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: ROLE,
+ width: 82,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: TYPE,
+ width: 60,
+ align: left,
+ sort: 0 },
+ }
+
+ ctrl: {
+ id: 130
+ pid: 800
+ type: label
+ cells: (1,4,1,1)
+ text: "form.mission.nav-plan"
+ },
+
+ ctrl: {
+ id: 330
+ pid: 800
+ type: list,
+ cells: (1,5,1,1)
+ font: Verdana
+ back_color: (41,41,41),
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: "NO.",
+ width: 40,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: ACTION,
+ width: 70,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SECTOR,
+ width: 62,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: DIST,
+ width: 60,
+ align: right,
+ sort: 0 },
+
+ column: {
+ title: SPEED,
+ width: 50,
+ align: right,
+ sort: 0 },
+ },
+
+
+ ctrl: {
+ id: 150
+ pid: 800
+ type: label
+ cells: (3,1,1,1)
+ text: "form.mission.threats"
+ },
+
+ defctrl: {
+ font: Verdana
+ }
+
+ ctrl: {
+ id: 9999
+ pid: 800
+ type: panel
+ transparent: true
+
+ cells: (3,2,1,3),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 0)
+ x_weights: ( 1)
+
+ y_mins: ( 20, 20, 20, 20, 20, 20, 20, 20)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0)
+ }
+ }
+
+
+ ctrl: {
+ id: 250
+ pid: 9999
+ type: label
+ cells: (0,0,1,1)
+ text: "form.mission.suspected"
+ },
+
+ ctrl: {
+ id: 251,
+ pid: 9999
+ type: label
+ cells: (0,2,1,1)
+ },
+
+ ctrl: {
+ id: 252,
+ pid: 9999
+ type: label
+ cells: (0,3,1,1)
+ },
+
+ ctrl: {
+ id: 253,
+ pid: 9999
+ type: label
+ cells: (0,4,1,1)
+ },
+
+ ctrl: {
+ id: 254,
+ pid: 9999
+ type: label
+ cells: (0,5,1,1)
+ },
+
+ ctrl: {
+ id: 255,
+ pid: 9999
+ type: label
+ cells: (0,6,1,1)
+ }
+
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ }
+}
diff --git a/data/content/Screens/MsnSelectDlg.frm b/data/content/Screens/MsnSelectDlg.frm
new file mode 100644
index 0000000..7dc53a9
--- /dev/null
+++ b/data/content/Screens/MsnSelectDlg.frm
@@ -0,0 +1,241 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnSelectDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 1, 1, 0, 3, 3, 3, 0),
+
+ y_mins: (28, 25, 20, 52, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.msn-select.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ cells: (1,3,6,3)
+ cell_insets: (10,10,14,54)
+ hide_partial: false
+
+ layout: {
+ x_mins: (50, 50, 50, 20, 50, 50, 50)
+ x_weights: ( 1, 1, 1, 0, 1, 1, 1)
+
+ y_mins: (25, 100, 5, 25, 100, 10, 25)
+ y_weights: ( 0, 1, 0, 0, 2, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ fore_color: (255,255,255)
+ back_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ cells: (0,0,3,1)
+ text: "form.msn-select.campaign"
+ style: 0x0040,
+ },
+
+ ctrl: {
+ id: 102,
+ pid: 300
+ type: label
+ cells: (0,3,3,1)
+ text: "form.msn-select.mission",
+ style: 0x0040,
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ cells: (4,3,3,1)
+ text: "form.msn-select.description"
+ style: 0x0040
+ },
+
+ defctrl: {
+ active_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 61)
+ bevel_width: 0
+ texture: Panel
+ margins: (12,12,12,0)
+
+ align: left
+
+ font: Verdana
+ simple: true
+ text_align: left
+ transparent: false
+ style: 0x02
+ scroll_bar: 2
+ },
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: list,
+ cells: (0,1,3,1)
+
+ column: {
+ title: Campaigns,
+ width: 202,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: list
+ cells: (0,4,3,1)
+
+ column: {
+ title: Missions,
+ width: 202,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: text
+ cells: (4,4,3,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ fixed_height: 19
+ cell_insets: (5,5,0,0)
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 301
+ pid: 300
+ type: button
+ cells: (0,6,1,1)
+ text: "form.msn-select.new"
+ },
+
+ ctrl: {
+ id: 302
+ pid: 300
+ type: button
+ cells: (1,6,1,1)
+ text: "form.msn-select.edit"
+ },
+
+ ctrl: {
+ id: 303
+ pid: 300
+ type: button
+ cells: (2,6,1,1)
+ text: "form.msn-select.delete"
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/content/Screens/MsnWepDlg.frm b/data/content/Screens/MsnWepDlg.frm
new file mode 100644
index 0000000..1e4c695
--- /dev/null
+++ b/data/content/Screens/MsnWepDlg.frm
@@ -0,0 +1,486 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MsnWepDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.mission.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: "form.mission.tab.situation"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: "form.mission.tab.package"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: "form.mission.tab.navigation"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: "form.mission.tab.loadout"
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "", // title goes here
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "form.mission.system"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "" // system goes here
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "form.mission.sector"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "" // sector goes here
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "" // timestamp
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 80, 120, 30, 30, 30, 30, 5, 30, 30, 30, 30, 10, 20)
+ x_weights: ( 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 2, 0)
+
+ y_mins: ( 15, 20, 20, 20, 30, 15, 20, 20,20,20,20, 20,20,20,20, 20)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ pid: 800
+ transparent: true
+ font: Limerick12
+ }
+
+ ctrl: {
+ id: 604
+ type: list
+ cells: (3,2,9,3)
+ font: Verdana
+
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: "form.mission.loadout.name",
+ width: 160,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: "form.mission.loadout.weight",
+ width: 72,
+ align: right,
+ sort: 1,
+ },
+ },
+
+ ctrl: { id: 90 type: label cells: (3,1,9,1) text: "form.mission.standard-loads" }
+ ctrl: { id: 91 type: label cells: (1,1,1,1) text: "form.mission.element" }
+ ctrl: { id: 601 type: label cells: (2,1,1,1) }
+ ctrl: { id: 92 type: label cells: (1,2,1,1) text: "form.mission.type" }
+ ctrl: { id: 602 type: label cells: (2,2,1,1) }
+ ctrl: { id: 93 type: label cells: (1,3,1,1) text: "form.mission.weight" }
+ ctrl: { id: 603 type: label cells: (2,3,1,1) }
+ ctrl: { id: 94 type: label cells: (1,6,2,1) text: "form.mission.custom-loads" }
+
+ defctrl: { font: Verdana align: left },
+
+ ctrl: { id: 401 type: label cells: ( 3,6,1,1) }
+ ctrl: { id: 402 type: label cells: ( 4,6,1,1) }
+ ctrl: { id: 403 type: label cells: ( 5,6,1,1) }
+ ctrl: { id: 404 type: label cells: ( 6,6,1,1) }
+
+ ctrl: { id: 405 type: label cells: ( 8,6,1,1) }
+ ctrl: { id: 406 type: label cells: ( 9,6,1,1) }
+ ctrl: { id: 407 type: label cells: (10,6,1,1) }
+ ctrl: { id: 408 type: label cells: (11,6,1,1) }
+
+ defctrl: { transparent: true align: left },
+
+ ctrl: {
+ id: 500
+ type: label
+ cells: (1,7,2,1)
+ text: "Weapon 1"
+ }
+
+ ctrl: {
+ id: 510
+ type: label
+ cells: (1,8,2,1)
+ text: "Weapon 2"
+ }
+
+ ctrl: {
+ id: 520
+ type: label
+ cells: (1,9,2,1)
+ text: "Weapon 3"
+ }
+
+ ctrl: {
+ id: 530
+ type: label
+ cells: (1,10,2,1)
+ text: "Weapon 4"
+ }
+
+ ctrl: {
+ id: 540
+ type: label
+ cells: (1,11,2,1)
+ text: "Weapon 5"
+ }
+
+ ctrl: {
+ id: 550
+ type: label
+ cells: (1,12,2,1)
+ text: "Weapon 6"
+ }
+
+ ctrl: {
+ id: 560
+ type: label
+ cells: (1,13,2,1)
+ text: "Weapon 7"
+ }
+
+ ctrl: {
+ id: 570
+ type: label
+ cells: (1,14,2,1)
+ text: "Weapon 8"
+ }
+
+ defctrl: {
+ transparent: false
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: { id: 501 type: button cells: ( 3,7,1,1) picture: "LED0.pcx" }
+ ctrl: { id: 502 type: button cells: ( 4,7,1,1) picture: "LED1.pcx" }
+ ctrl: { id: 503 type: button cells: ( 5,7,1,1) }
+ ctrl: { id: 504 type: button cells: ( 6,7,1,1) }
+
+ ctrl: { id: 505 type: button cells: ( 8,7,1,1) }
+ ctrl: { id: 506 type: button cells: ( 9,7,1,1) }
+ ctrl: { id: 507 type: button cells: (10,7,1,1) }
+ ctrl: { id: 508 type: button cells: (11,7,1,1) }
+
+ ctrl: { id: 511 type: button cells: ( 3,8,1,1) }
+ ctrl: { id: 512 type: button cells: ( 4,8,1,1) }
+ ctrl: { id: 513 type: button cells: ( 5,8,1,1) }
+ ctrl: { id: 514 type: button cells: ( 6,8,1,1) }
+
+ ctrl: { id: 515 type: button cells: ( 8,8,1,1) }
+ ctrl: { id: 516 type: button cells: ( 9,8,1,1) }
+ ctrl: { id: 517 type: button cells: (10,8,1,1) }
+ ctrl: { id: 518 type: button cells: (11,8,1,1) }
+
+ ctrl: { id: 521 type: button cells: ( 3,9,1,1) }
+ ctrl: { id: 522 type: button cells: ( 4,9,1,1) }
+ ctrl: { id: 523 type: button cells: ( 5,9,1,1) }
+ ctrl: { id: 524 type: button cells: ( 6,9,1,1) }
+
+ ctrl: { id: 525 type: button cells: ( 8,9,1,1) }
+ ctrl: { id: 526 type: button cells: ( 9,9,1,1) }
+ ctrl: { id: 527 type: button cells: (10,9,1,1) }
+ ctrl: { id: 528 type: button cells: (11,9,1,1) }
+
+ ctrl: { id: 531 type: button cells: ( 3,10,1,1) }
+ ctrl: { id: 532 type: button cells: ( 4,10,1,1) }
+ ctrl: { id: 533 type: button cells: ( 5,10,1,1) }
+ ctrl: { id: 534 type: button cells: ( 6,10,1,1) }
+
+ ctrl: { id: 535 type: button cells: ( 8,10,1,1) }
+ ctrl: { id: 536 type: button cells: ( 9,10,1,1) }
+ ctrl: { id: 537 type: button cells: (10,10,1,1) }
+ ctrl: { id: 538 type: button cells: (11,10,1,1) }
+
+ ctrl: { id: 541 type: button cells: ( 3,11,1,1) }
+ ctrl: { id: 542 type: button cells: ( 4,11,1,1) }
+ ctrl: { id: 543 type: button cells: ( 5,11,1,1) }
+ ctrl: { id: 544 type: button cells: ( 6,11,1,1) }
+
+ ctrl: { id: 545 type: button cells: ( 8,11,1,1) }
+ ctrl: { id: 546 type: button cells: ( 9,11,1,1) }
+ ctrl: { id: 547 type: button cells: (10,11,1,1) }
+ ctrl: { id: 548 type: button cells: (11,11,1,1) }
+
+ ctrl: { id: 551 type: button cells: ( 3,12,1,1) }
+ ctrl: { id: 552 type: button cells: ( 4,12,1,1) }
+ ctrl: { id: 553 type: button cells: ( 5,12,1,1) }
+ ctrl: { id: 554 type: button cells: ( 6,12,1,1) }
+
+ ctrl: { id: 555 type: button cells: ( 8,12,1,1) }
+ ctrl: { id: 556 type: button cells: ( 9,12,1,1) }
+ ctrl: { id: 557 type: button cells: (10,12,1,1) }
+ ctrl: { id: 558 type: button cells: (11,12,1,1) }
+
+ ctrl: { id: 561 type: button cells: ( 3,13,1,1) }
+ ctrl: { id: 562 type: button cells: ( 4,13,1,1) }
+ ctrl: { id: 563 type: button cells: ( 5,13,1,1) }
+ ctrl: { id: 564 type: button cells: ( 6,13,1,1) }
+
+ ctrl: { id: 565 type: button cells: ( 8,13,1,1) }
+ ctrl: { id: 566 type: button cells: ( 9,13,1,1) }
+ ctrl: { id: 567 type: button cells: (10,13,1,1) }
+ ctrl: { id: 568 type: button cells: (11,13,1,1) }
+
+ ctrl: { id: 571 type: button cells: ( 3,14,1,1) }
+ ctrl: { id: 572 type: button cells: ( 4,14,1,1) }
+ ctrl: { id: 573 type: button cells: ( 5,14,1,1) }
+ ctrl: { id: 574 type: button cells: ( 6,14,1,1) }
+
+ ctrl: { id: 575 type: button cells: ( 8,14,1,1) }
+ ctrl: { id: 576 type: button cells: ( 9,14,1,1) }
+ ctrl: { id: 577 type: button cells: (10,14,1,1) }
+ ctrl: { id: 578 type: button cells: (11,14,1,1) }
+
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ pid: 0
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_width: 0
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (3,6,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,6,1,1),
+ }
+}
diff --git a/data/content/Screens/NavDlg.frm b/data/content/Screens/NavDlg.frm
new file mode 100644
index 0000000..87ffb36
--- /dev/null
+++ b/data/content/Screens/NavDlg.frm
@@ -0,0 +1,396 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 400, 20, 200, 10)
+ x_weights: ( 0, 1, 0, 0, 0)
+
+ y_mins: (28, 30, 10, 100, 25, 15)
+ y_weights: ( 0, 0, 0, 1, 0, 0)
+ },
+
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.nav.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panels:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: true
+
+ cells: (1,3,1,2)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 10, 24, 24)
+ x_weights: ( 0, 0, 0, 1, 0, 0)
+
+ y_mins: (25, 325, 15, 75)
+ y_weights: ( 0, 1, 0, 0)
+ }
+ }
+
+ ctrl: {
+ id: 600
+ pid: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (0,3,6,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (10, 90, 90, 90, 90, 10)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: (70)
+ y_weights: ( 1)
+ }
+ }
+
+ ctrl: {
+ id: 850
+ type: panel
+ transparent: false
+
+ texture: Frame2
+ margins: (60,40,40,40),
+
+ cells: (3,3,1,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100)
+ x_weights: ( 0, 0)
+
+ y_mins: (30, 23, 23, 23, 15, 50, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (0,1,6,1)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+
+ texture: Panel
+ margins: (12,12,12,0),
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (0,0,1,1)
+ text: "form.nav.galaxy"
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (1,0,1,1)
+ text: "form.nav.system"
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (2,0,1,1)
+ text: "form.nav.sector"
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (4,0,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (5,0,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 19
+ cell_insets: (5,2,0,0)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 850
+ type: button
+ cells: (0,1,1,1)
+ text: "form.nav.system"
+ }
+
+ ctrl: {
+ id: 403
+ pid: 850
+ type: button
+ cells: (0,2,1,1)
+ text: "form.nav.sector"
+ }
+
+ ctrl: {
+ id: 405
+ pid: 850
+ type: button
+ cells: (0,3,1,1)
+ text: "form.nav.starship"
+ }
+
+ defctrl: {
+ cell_insets: (2,5,0,0)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 850
+ type: button
+ cells: (1,1,1,1)
+ text: "form.nav.planet"
+ }
+
+ ctrl: {
+ id: 404
+ pid: 850
+ type: button
+ cells: (1,2,1,1)
+ text: "form.nav.station"
+ }
+
+ ctrl: {
+ id: 406
+ pid: 850
+ type: button
+ cells: (1,3,1,1)
+ text: "form.nav.fighter"
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+ fixed_width: 0
+ fixed_height: 0
+
+ scroll_bar: 2
+ style: 0
+ transparent: false
+
+ cell_insets: (5,5,10,0)
+ },
+
+
+ defctrl: {
+ back_color: ( 41, 41, 41),
+ fore_color: ( 53, 159, 67),
+ font: "Verdana",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 601
+ pid: 600
+ type: label
+ cells: (1,0,1,1)
+ text: "form.nav.location"
+ },
+
+ ctrl: {
+ id: 602
+ pid: 600
+ type: label
+ cells: (3,0,1,1)
+ text: "form.nav.destination"
+ },
+
+ defctrl: {
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ fore_color: (255, 255, 255)
+ },
+
+ ctrl: {
+ id: 701
+ pid: 600
+ type: label
+ cells: (2,0,1,1)
+ },
+
+ ctrl: {
+ id: 702
+ pid: 600
+ type: label
+ cells: (4,0,1,1)
+ },
+
+ defctrl: {
+ transparent: false
+ },
+
+ ctrl: {
+ id: 801
+ pid: 850
+ type: list
+ cells: (0,5,2,1)
+ show_headings: true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 850
+ type: list
+ cells: (0,6,2,1)
+ show_headings: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,5,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ pid: 850
+ type: button
+ text: "form.commit"
+ cells: (0,7,2,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.close"
+ cells: (3,4,1,1),
+ },
+
+}
diff --git a/data/content/Screens/NetAddrDlg.frm b/data/content/Screens/NetAddrDlg.frm
new file mode 100644
index 0000000..46ec9f4
--- /dev/null
+++ b/data/content/Screens/NetAddrDlg.frm
@@ -0,0 +1,145 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetAddrDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,280),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "form.net.addr.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+
+
+ ctrl: {
+ id: 110
+ type: label
+ cells: (1,2,1,1)
+ text: "form.net.name"
+ },
+
+ ctrl: {
+ id: 111
+ type: label
+ cells: (1,3,1,1)
+ text: "form.net.server"
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (1,4,1,1)
+ text: "form.net.port"
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ cells: (1,5,1,1)
+ text: "form.net.password"
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41)
+ style: 0x02
+ scroll_bar: 0
+ transparent: false
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,2,2,1)
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,3,2,1)
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (2,4,2,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (2,5,2,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.ok"
+ cells: (2,7,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel"
+ cells: (3,7,1,1),
+ }
+}
diff --git a/data/content/Screens/NetClientDlg.frm b/data/content/Screens/NetClientDlg.frm
new file mode 100644
index 0000000..8e3a617
--- /dev/null
+++ b/data/content/Screens/NetClientDlg.frm
@@ -0,0 +1,205 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetClientDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 50, 100, 100, 100, 100, 100, 50, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 42, 5, 30, 60, 50, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,6),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,3,6),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.net.client.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 101
+ type: button
+ cells: (2,5,1,1)
+ text: "form.net.client.add"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (3,5,1,1)
+ text: "form.net.client.delete",
+ },
+
+ ctrl: {
+ id: 210,
+ type: label,
+ cells: (4,5,3,1)
+ transparent: true,
+ font: Verdana
+ },
+
+ ctrl: {
+ id: 301,
+ type: button,
+ cells: (2,7,2,1)
+ text: "form.net.client.local"
+ },
+
+ ctrl: {
+ id: 302,
+ type: button,
+ cells: (5,7,1,1)
+ cell_insets: (10,0,0,0)
+ text: "form.net.client.host"
+ },
+
+ ctrl: {
+ id: 303,
+ type: button,
+ cells: (6,7,1,1)
+ cell_insets: (10,0,0,0)
+ text: "form.net.client.join"
+ },
+
+ ctrl: {
+ id: 200,
+ type: list,
+ cells: (2,6,5,1)
+ cell_insets: (0,0,0,10)
+
+ fore_color: (255,255,255)
+ back_color: ( 61, 61, 61)
+ bevel_width: 0
+ fixed_height: 0
+ texture: Panel
+ margins: (12,12,12,0)
+
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 2,
+ show_headings: true,
+
+ column: {
+ title: "form.net.client.server",
+ width: 177,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: "form.net.client.type",
+ width: 85,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: "form.net.client.password",
+ width: 85,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: "form.net.client.status",
+ width: 65,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: "form.net.client.players",
+ width: 65,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: "form.net.client.ping",
+ width: 65,
+ align: center,
+ sort: 0 },
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (50,5,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 2
+ pid: 0
+ type: button
+ text: "form.close"
+ cells: (6,8,2,1),
+ },
+
+}
diff --git a/data/content/Screens/NetLobbyDlg.frm b/data/content/Screens/NetLobbyDlg.frm
new file mode 100644
index 0000000..accc2b7
--- /dev/null
+++ b/data/content/Screens/NetLobbyDlg.frm
@@ -0,0 +1,218 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetLobbyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 150, 100, 50, 100, 100, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 20, 20, 25, 50, 25, 50, 25, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,3,8),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (4,3,2,8),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.net.lobby.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: ( 41, 41, 41)
+ cell_insets: (10,10,0,0)
+ transparent: true
+ style: 0x40
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,4,2,1)
+ text: "form.net.lobby.missions"
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,7,1,1)
+ text: "form.net.lobby.players"
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (2,7,3,1)
+ text: "form.net.lobby.chat"
+ }
+
+
+ defctrl: {
+ font: Verdana
+ transparent: false
+ style: 0x02
+ cell_insets: (10,10,0,5)
+ texture: Panel
+ margins: (12,12,12,0)
+
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+ show_headings: true
+ simple: true
+ text_align: left
+ fixed_height: 0
+ scroll_bar: 2
+ }
+
+ ctrl: {
+ id: 200,
+ type: combo,
+ cells: (1,5,2,1)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: list,
+ cells: (1,6,2,1)
+
+ column: {
+ title: "form.net.lobby.missions",
+ width: 100,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ cells: (3,5,3,2)
+ scroll_bar: 0,
+ text: "" // description
+ },
+
+ ctrl: {
+ id: 210,
+ type: list,
+ cells: (1,8,1,2)
+
+ column: {
+ title: "form.net.lobby.host",
+ width: 40,
+ align: center,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "form.net.lobby.player",
+ width: 100,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 211,
+ type: list,
+ cells: (2,8,4,1)
+
+ column: {
+ title: "form.net.lobby.name",
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: "form.net.lobby.message",
+ width: 250,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (2,9,4,1)
+ scroll_bar: 0
+ fixed_height: 18
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (4,10,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (5,10,1,1)
+ },
+
+}
diff --git a/data/content/Screens/NetPassDlg.frm b/data/content/Screens/NetPassDlg.frm
new file mode 100644
index 0000000..1efd130
--- /dev/null
+++ b/data/content/Screens/NetPassDlg.frm
@@ -0,0 +1,118 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetPassDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,280),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "form.net.pass.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,3,1,1)
+ text: "form.net.server",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,4,1,1)
+ text: "form.net.password",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (2,3,2,1)
+ text: ""
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41)
+ style: 0x02
+ scroll_bar: 0
+ transparent: false
+ },
+
+ ctrl: {
+ id: 200,
+ type: edit,
+ cells: (2,4,2,1)
+ fixed_height: 18
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.ok"
+ cells: (2,7,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel"
+ cells: (3,7,1,1),
+ }
+}
diff --git a/data/content/Screens/NetServerDlg.frm b/data/content/Screens/NetServerDlg.frm
new file mode 100644
index 0000000..b376989
--- /dev/null
+++ b/data/content/Screens/NetServerDlg.frm
@@ -0,0 +1,198 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetAddrDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 150, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "form.net.server.title"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (1,2,1,1)
+ text: "form.net.server.name",
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (1,3,1,1)
+ text: "form.net.server.type",
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (1,4,1,1)
+ text: "form.net.server.game-port",
+ },
+
+ ctrl: {
+ id: 113,
+ type: label,
+ cells: (1,5,1,1)
+ text: "form.net.server.admin-port",
+ },
+
+ ctrl: {
+ id: 114,
+ type: label,
+ cells: (1,7,1,1)
+ text: "form.net.server.game-pass",
+ },
+
+ ctrl: {
+ id: 115,
+ type: label,
+ cells: (1,8,1,1)
+ text: "form.net.server.admin-name",
+ },
+
+ ctrl: {
+ id: 116,
+ type: label,
+ cells: (1,9,1,1)
+ text: "form.net.server.admin-pass",
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41),
+ style: 0x02,
+ scroll_bar: 0,
+
+ active_color: ( 92, 92, 92),
+ back_color: ( 41, 41, 41),
+ base_color: ( 92, 92, 92),
+ border_color: (192, 192, 192),
+
+ border: true
+ simple: true
+ transparent: false
+ bevel_width: 3
+ text_align: left
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 200,
+ type: edit,
+ cells: (2,2,2,1)
+ },
+
+ ctrl: {
+ id: 201,
+ type: combo,
+ cells: (2,3,2,1)
+
+ item: "form.net.server.lan",
+ item: "form.net.server.private",
+ item: "form.net.server.public",
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (2,4,2,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (2,5,2,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: edit,
+ cells: (2,7,2,1)
+ },
+
+ ctrl: {
+ id: 205,
+ type: edit,
+ cells: (2,8,2,1)
+ },
+
+ ctrl: {
+ id: 206,
+ type: edit,
+ cells: (2,9,2,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "form.accept"
+ cells: (2,11,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "form.cancel"
+ cells: (3,11,1,1),
+ }
+}
diff --git a/data/content/Screens/NetUnitDlg.frm b/data/content/Screens/NetUnitDlg.frm
new file mode 100644
index 0000000..d62db1d
--- /dev/null
+++ b/data/content/Screens/NetUnitDlg.frm
@@ -0,0 +1,286 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: NetUnitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 150, 60, 90, 100, 100, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 20, 20, 15, 25, 25, 20, 25, 50, 25, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 2, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,3,10),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (4,3,2,10),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.net.unit.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: ( 41, 41, 41)
+ cell_insets: (10,10,0,0)
+ transparent: true
+ style: 0x40
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,4,1,1)
+ text: "form.net.unit.players"
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (3,4,3,1)
+ text: "form.net.unit.unit-mapping"
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,9,3,1)
+ text: "form.net.unit.chat"
+ }
+
+
+ defctrl: {
+ font: Verdana
+ transparent: false
+ style: 0x02
+ cell_insets: (10,10,0,5)
+ texture: Panel
+ margins: (12,12,12,0)
+
+ fore_color: (255,255,255),
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+ show_headings: true
+ simple: true
+ text_align: left
+ fixed_height: 0
+ scroll_bar: 2
+ }
+
+ ctrl: {
+ id: 201,
+ type: list,
+ cells: (1,5,1,4)
+ show_headings: true
+
+ column: {
+ title: PLAYER,
+ width: 132,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 202,
+ type: list,
+ cells: (3,5,3,4)
+ show_headings: true,
+
+ column: {
+ title: "PLAYER",
+ width: 120,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "UNIT",
+ width: 115,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "SHIP TYPE",
+ width: 115,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "ROLE",
+ width: 120,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "TEAM",
+ width: 51,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 211,
+ type: list,
+ cells: (1,10,5,1)
+ show_headings: true,
+
+ column: {
+ title: NAME,
+ width: 130,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: "CHAT MESSAGE",
+ width: 629,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (1,11,5,1)
+ scroll_bar: 0,
+ transparent: false,
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ cell_insets: (5,5,0,0)
+ },
+
+ ctrl: {
+ id: 206,
+ type: button,
+ cells: (2,5,1,1)
+ text: "form.net.unit.select-unit"
+ cell_insets: (5,5,20,0)
+ },
+
+ ctrl: {
+ id: 203,
+ type: button,
+ cells: (2,6,1,1)
+ text: "form.net.unit.map-unit",
+ },
+
+ ctrl: {
+ id: 204,
+ type: button,
+ cells: (2,7,1,1)
+ text: "form.net.unit.unmap-unit",
+ },
+
+ ctrl: {
+ id: 205,
+ type: button,
+ cells: (2,8,1,1)
+ cell_insets: (5,5,20,0)
+ text: "form.net.unit.ban-player",
+ },
+
+ defctrl: {
+ font: Verdana,
+ fore_color: (255, 255, 255),
+ back_color: ( 61, 61, 59),
+ transparent: true,
+ style: 0x02,
+ scroll_bar: 2,
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ },
+
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.accept"
+ cells: (4,12,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (5,12,1,1)
+ },
+
+}
+
+
diff --git a/data/content/Screens/OptDlg.frm b/data/content/Screens/OptDlg.frm
new file mode 100644
index 0000000..1500663
--- /dev/null
+++ b/data/content/Screens/OptDlg.frm
@@ -0,0 +1,400 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ },
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.options.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: "form.options.tab.video"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: "form.options.tab.audio"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: "form.options.tab.controls"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: "form.options.tab.gameplay"
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "form.options.tab.mods"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: (0.2, 0.3, 0.3, 0.2, 0.3, 0.3, 0.2)
+
+ y_mins: ( 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 20)
+ y_weights: (0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+
+ standard_image: ""
+ activated_image: ""
+ sticky: false
+
+ active_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ base_color: ( 92, 92, 92)
+ border_color: (192, 192, 192)
+
+ border: true
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: true
+ }
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ text: "form.gameplay.flight-model"
+ cells: (1,1,1,1)
+ }
+
+ ctrl: {
+ id: 111
+ pid: 300
+ type: label
+ text: "form.gameplay.flying-start"
+ cells: (1,2,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ text: "form.gameplay.landings"
+ cells: (1,3,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: label
+ text: "form.gameplay.ai-difficulty"
+ cells: (1,4,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: label
+ text: "form.gameplay.hud-mode"
+ cells: (1,5,1,1)
+ }
+
+ ctrl: {
+ id: 105
+ pid: 300
+ type: label
+ text: "form.gameplay.hud-color"
+ cells: (1,6,1,1)
+ }
+
+ ctrl: {
+ id: 106
+ pid: 300
+ type: label
+ text: "form.gameplay.friendly-fire"
+ cells: (1,7,1,1)
+ }
+
+ ctrl: {
+ id: 107
+ pid: 300
+ type: label
+ text: "form.gameplay.ref-grid"
+ cells: (1,8,1,1)
+ }
+
+ ctrl: {
+ id: 108
+ pid: 300
+ type: label
+ text: "form.gameplay.gunsight"
+ cells: (1,9,1,1)
+ }
+
+ ctrl: {
+ id: 500
+ pid: 300
+ type: label
+ cells: (4,1,2,8)
+ }
+
+ defctrl: {
+ cell_insets: (0,0,0,10)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: combo
+ cells: (2,1,1,1)
+
+ item: "form.gameplay.standard"
+ item: "form.gameplay.relaxed"
+ item: "form.gameplay.arcade"
+
+ alt: "form.gameplay.flight-model.alt"
+ }
+
+ ctrl: {
+ id: 211
+ pid: 300
+ type: combo
+ cells: (2,2,1,1)
+
+ item: "form.gameplay.disabled"
+ item: "form.gameplay.enabled"
+
+ alt: "form.gameplay.flying-start.alt"
+ }
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: combo
+ cells: (2,3,1,1)
+
+ item: "form.gameplay.standard"
+ item: "form.gameplay.easier"
+
+ alt: "form.gameplay.landings.alt"
+ }
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: combo
+ cells: (2,4,1,1)
+
+ item: "form.gameplay.ace"
+ item: "form.gameplay.veteran"
+ item: "form.gameplay.rookie"
+
+ alt: "form.gameplay.ai-difficulty.alt"
+ }
+
+ ctrl: {
+ id: 204
+ pid: 300
+ type: combo
+ cells: (2,5,1,1)
+
+ item: "form.gameplay.standard"
+ item: "form.gameplay.simplified"
+
+ alt: "form.gameplay.hud-mode.alt"
+ }
+
+ ctrl: {
+ id: 205
+ pid: 300
+ type: combo
+ cells: (2,6,1,1)
+
+ item: "form.gameplay.green"
+ item: "form.gameplay.blue"
+ item: "form.gameplay.orange"
+ item: "form.gameplay.black"
+
+ alt: "form.gameplay.hud-color.alt"
+ }
+
+ ctrl: {
+ id: 206
+ pid: 300
+ type: combo
+ cells: (2,7,1,1)
+
+ item: "form.gameplay.none"
+ item: "form.gameplay.25"
+ item: "form.gameplay.50"
+ item: "form.gameplay.75"
+ item: "form.gameplay.full"
+
+ alt: "form.gameplay.friendly-fire.alt"
+ }
+
+ ctrl: {
+ id: 207
+ pid: 300
+ type: combo
+ cells: (2,8,1,1)
+
+ item: "form.gameplay.disabled"
+ item: "form.gameplay.enabled"
+
+ alt: "form.gameplay.ref-grid.alt"
+ }
+
+ ctrl: {
+ id: 208
+ pid: 300
+ type: combo
+ cells: (2,9,1,1)
+
+ item: "form.gameplay.standard-lcos",
+ item: "form.gameplay.lead-diamond",
+
+ alt: "form.gameplay.gunsight.alt"
+ }
+
+ // buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.apply"
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,5,1,1)
+ }
+}
diff --git a/data/content/Screens/PlayerDlg.frm b/data/content/Screens/PlayerDlg.frm
new file mode 100644
index 0000000..6324053
--- /dev/null
+++ b/data/content/Screens/PlayerDlg.frm
@@ -0,0 +1,690 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: PlayerDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 0.1, 0.1, 0, 0.3, 0.3, 0.3, 0),
+
+ y_mins: (28, 25, 20, 42, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.logbook.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ defctrl: {
+ base_color: (191, 191, 184)
+ back_color: ( 88, 88, 88)
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ cells: (1,3,1,1)
+ cell_insets: (10,3,17,6)
+ text: "form.logbook.create-player"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (2,3,1,1)
+ cell_insets: (3,10,17,6)
+ text: "form.logbook.delete-player",
+ }
+
+ ctrl: {
+ id: 601,
+ type: label,
+ cells: (4,3,1,1)
+ cell_insets: (2,10,17,0)
+ text: "form.logbook.player-stats"
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ }
+
+ defctrl: {
+ font: Verdana,
+ fore_color: (255,255,255),
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ transparent: true,
+ },
+
+ ctrl: {
+ id: 200
+ type: list
+ cells: (1,4,2,2)
+ cell_insets: (10,10,0,54)
+ font: Verdana
+ style: 0
+ scroll_bar: 2
+ show_headings: false
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,16,4)
+
+ column: {
+ title: "Name",
+ width: 182,
+ align: left,
+ sort: 0 },
+ }
+
+ ctrl: {
+ id: 600
+ type: background
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,54)
+ transparent: false
+ texture: Panel
+ margins: (12,12,16,4)
+
+ layout: {
+ x_mins: ( 8, 80, 100, 20, 30, 100, 15)
+ x_weights: ( 0, 0, 3, 1, 0, 3, 0)
+
+ y_mins: (20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 65, 75)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ ctrl: {
+ id: 103
+ pid: 600
+ type: label
+ cells: (1,1,1,1)
+ text: "form.logbook.name"
+ },
+
+ ctrl: {
+ id: 104,
+ pid: 600
+ type: label,
+ cells: (1,2,1,1)
+ text: "form.logbook.password"
+ },
+
+ ctrl: {
+ id: 105
+ pid: 600
+ type: label
+ cells: (1,3,1,1)
+ text: "form.logbook.squadron"
+ },
+
+ ctrl: {
+ id: 106
+ pid: 600
+ type: label
+ cells: (1,4,1,1)
+ text: "form.logbook.signature"
+ },
+
+ ctrl: {
+ id: 107
+ pid: 600
+ type: label
+ cells: (1,5,1,1)
+ text: "form.logbook.created"
+ }
+
+ ctrl: {
+ id: 109
+ pid: 600
+ type: label
+ cells: (1,6,1,1)
+ text: "form.logbook.flight-time"
+ },
+
+ ctrl: {
+ id: 110
+ pid: 600
+ type: label
+ cells: (1,7,1,1)
+ text: "form.logbook.missions"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 600
+ type: label
+ cells: (1,8,1,1)
+ text: "form.logbook.kills"
+ }
+
+ ctrl: {
+ id: 112
+ pid: 600
+ type: label
+ cells: (1,9,1,1)
+ text: "form.logbook.losses"
+ }
+
+ ctrl: {
+ id: 113
+ pid: 600
+ type: label
+ cells: (1,10,1,1)
+ text: "form.logbook.points"
+ }
+
+ ctrl: {
+ id: 108
+ pid: 600
+ type: label
+ cells: (1,11,1,1)
+ text: "form.logbook.rank"
+ }
+
+ ctrl: {
+ id: 125
+ pid: 600
+ type: label
+ cells: (1,13,1,1)
+ cell_insets: (0,0,0,5)
+ text: "form.logbook.medals"
+ }
+
+ defctrl: {
+ style: 0x02,
+ scroll_bar: 0,
+ single_line: true,
+ back_color: ( 41, 41, 41),
+ border_color: ( 92, 92, 92),
+ single_line: true,
+ transparent: false
+ cell_insets: (0,0,0,5)
+ },
+
+ ctrl: {
+ id: 201,
+ pid: 600
+ type: edit,
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 202,
+ pid: 600
+ type: edit,
+ cells: (2,2,1,1)
+ password: "*",
+ },
+
+ ctrl: {
+ id: 203, // squad
+ pid: 600
+ type: edit,
+ cells: (2,3,1,1)
+ },
+
+ ctrl: {
+ id: 204, // sig
+ pid: 600
+ type: edit,
+ cells: (2,4,1,1)
+ },
+
+ ctrl: {
+ id: 205, // create date
+ pid: 600
+ type: label,
+ cells: (2,5,1,1)
+ },
+
+ ctrl: {
+ id: 207, // flight time
+ pid: 600
+ type: label,
+ cells: (2,6,1,1)
+ },
+
+ ctrl: {
+ id: 208, // missions
+ pid: 600
+ type: label,
+ cells: (2,7,1,1)
+ },
+
+ ctrl: {
+ id: 209, // kills
+ pid: 600
+ type: label,
+ cells: (2,8,1,1)
+ },
+
+ ctrl: {
+ id: 210, // losses
+ pid: 600
+ type: label,
+ cells: (2,9,1,1)
+ },
+
+ ctrl: {
+ id: 211, // points
+ pid: 600
+ type: label,
+ cells: (2,10,1,1)
+ },
+
+ // rank name and insignia:
+
+ ctrl: {
+ id: 206,
+ pid: 600
+ type: label,
+ cells: (2,11,1,1)
+ align: center,
+ transparent: true,
+ border: false,
+ },
+
+ ctrl: {
+ id: 220,
+ pid: 600
+ type: image,
+ cells: (2,12,1,1)
+ align: center
+ transparent: true
+ border: false
+ style: 0
+ },
+
+ // medal ribbon insignia:
+
+ ctrl: {
+ id: 330
+ pid: 600
+ type: label
+ transparent: true
+ cells: (2,13,4,1)
+
+ layout: {
+ x_mins: (85, 85, 85, 85, 85, 0),
+ x_weights: ( 1, 1, 1, 1, 1, 5),
+
+ y_mins: (24, 24, 24, 0),
+ y_weights: ( 1, 1, 1, 5)
+ }
+ }
+
+ defctrl: {
+ align: center
+ transparent: true
+ border: false
+ style: 0
+ fixed_width: 82
+ fixed_height: 21
+ }
+
+ ctrl: {
+ id: 230,
+ pid: 330
+ type: image,
+ cells: (0,0,1,1)
+ },
+
+ ctrl: {
+ id: 231
+ pid: 330
+ type: image
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 232,
+ pid: 330
+ type: image
+ cells: (2,0,1,1)
+ },
+
+ ctrl: {
+ id: 233,
+ pid: 330
+ type: image
+ cells: (3,0,1,1)
+ },
+
+ ctrl: {
+ id: 234,
+ pid: 330
+ type: image
+ cells: (4,0,1,1)
+ },
+
+ ctrl: {
+ id: 235,
+ pid: 330
+ type: image
+ cells: (0,1,1,1)
+ },
+
+ ctrl: {
+ id: 236,
+ pid: 330
+ type: image
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 237,
+ pid: 330
+ type: image
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 238,
+ pid: 330
+ type: image
+ cells: (3,1,1,1)
+ },
+
+ ctrl: {
+ id: 239,
+ pid: 330
+ type: image
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 240,
+ pid: 330
+ type: image
+ cells: (0,2,1,1)
+ },
+
+ ctrl: {
+ id: 241,
+ pid: 330
+ type: image
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 242,
+ pid: 330
+ type: image
+ cells: (2,2,1,1)
+ },
+
+ ctrl: {
+ id: 243,
+ pid: 330
+ type: image
+ cells: (3,2,1,1)
+ },
+
+ ctrl: {
+ id: 244,
+ pid: 330
+ type: image
+ cells: (4,2,1,1)
+ },
+
+ // chat macro entries:
+
+ defctrl: {
+ align: left
+ transparent: false
+ border: true
+ style: 2 // white frame
+ fixed_width: 0
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 301,
+ pid: 600
+ type: edit,
+ cells: (5,2,1,1)
+ },
+
+ ctrl: {
+ id: 302,
+ pid: 600
+ type: edit,
+ cells: (5,3,1,1)
+ },
+
+ ctrl: {
+ id: 303,
+ pid: 600
+ type: edit,
+ cells: (5,4,1,1)
+ },
+
+ ctrl: {
+ id: 304,
+ pid: 600
+ type: edit,
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 305,
+ pid: 600
+ type: edit,
+ cells: (5,6,1,1)
+ },
+
+ ctrl: {
+ id: 306,
+ pid: 600
+ type: edit,
+ cells: (5,7,1,1)
+ },
+
+ ctrl: {
+ id: 307,
+ pid: 600
+ type: edit,
+ cells: (5,8,1,1)
+ },
+
+ ctrl: {
+ id: 308,
+ pid: 600
+ type: edit,
+ cells: (5,9,1,1)
+ },
+
+ ctrl: {
+ id: 309,
+ pid: 600
+ type: edit,
+ cells: (5,10,1,1)
+ },
+
+ ctrl: {
+ id: 300,
+ pid: 600
+ type: edit,
+ cells: (5,11,1,1)
+ },
+
+ defctrl: { transparent: true },
+
+ ctrl: {
+ id: 444
+ pid: 600
+ type: label
+ cells: (4,1,2,1)
+ text: "form.logbook.chat-macros",
+ },
+
+ ctrl: {
+ id: 401,
+ pid: 600
+ type: label,
+ cells: (4,2,1,1)
+ text: "1",
+ },
+
+ ctrl: {
+ id: 402,
+ pid: 600
+ type: label,
+ cells: (4,3,1,1)
+ text: "2",
+ },
+
+ ctrl: {
+ id: 403,
+ pid: 600
+ type: label,
+ cells: (4,4,1,1)
+ text: "3",
+ },
+
+ ctrl: {
+ id: 404,
+ pid: 600
+ type: label,
+ cells: (4,5,1,1)
+ text: "4",
+ },
+
+ ctrl: {
+ id: 405,
+ pid: 600
+ type: label,
+ cells: (4,6,1,1)
+ text: "5",
+ },
+
+ ctrl: {
+ id: 406,
+ pid: 600
+ type: label,
+ cells: (4,7,1,1)
+ text: "6",
+ },
+
+ ctrl: {
+ id: 407,
+ pid: 600
+ type: label,
+ cells: (4,8,1,1)
+ text: "7",
+ },
+
+ ctrl: {
+ id: 408,
+ pid: 600
+ type: label,
+ cells: (4,9,1,1)
+ text: "8",
+ },
+
+ ctrl: {
+ id: 409,
+ pid: 600
+ type: label,
+ cells: (4,10,1,1)
+ text: "9",
+ },
+
+ ctrl: {
+ id: 400,
+ pid: 600
+ type: label,
+ cells: (4,11,1,1)
+ text: "0",
+ },
+
+ // apply and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.save"
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/content/Screens/TacRefDlg.frm b/data/content/Screens/TacRefDlg.frm
new file mode 100644
index 0000000..0e3a47a
--- /dev/null
+++ b/data/content/Screens/TacRefDlg.frm
@@ -0,0 +1,211 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: TacRefDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 30, 100, 10)
+ x_weights: ( 0, 1, 1, 0, 3, 0, 3, 0)
+
+ y_mins: (28, 25, 20, 42, 90, 10, 90, 45)
+ y_weights: ( 0, 0, 0, 0, 3, 1, 2, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,5),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,5),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.tac-ref.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ base_color: (191, 191, 184)
+ back_color: ( 88, 88, 88)
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ cells: (1,3,1,1)
+ cell_insets: (10,3,17,6)
+ text: "form.tac-ref.ships"
+ sticky: true
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (2,3,1,1)
+ cell_insets: (3,10,17,6)
+ text: "form.tac-ref.weapons",
+ sticky: true
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (4,3,1,1)
+ cell_insets: (2,10,17,0)
+ text: "form.tac-ref.name"
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ }
+
+
+ defctrl: {
+ fore_color: (255,255,255),
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+
+ font: Verdana
+ style: 0
+ scroll_bar: 0
+ show_headings: false
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,16,4)
+ },
+
+ ctrl: {
+ id: 200
+ type: list
+ cells: (1,4,2,3)
+ cell_insets: (10,10,0,10)
+ scroll_bar: 2
+ selected_style: 2
+
+ column: {
+ title: "Name",
+ width: 182,
+ align: left,
+ sort: 0 },
+ }
+
+
+ ctrl: {
+ id: 400
+ type: label
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,10)
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,10)
+ transparent: true
+ }
+
+ ctrl: {
+ id: 410
+ type: label
+ cells: (4,6,3,1)
+ cell_insets: (0,10,0,10)
+ }
+
+ ctrl: {
+ id: 402
+ type: text
+ cells: (4,6,1,1)
+ cell_insets: (0,10,0,10)
+ transparent: true
+
+ text: "Item stats go here..."
+ }
+
+ ctrl: {
+ id: 403
+ type: text
+ cells: (5,6,2,1)
+ cell_insets: (0,10,0,10)
+ transparent: true
+
+ text: "Item description goes here..."
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.close"
+ cells: (6,7,1,1)
+ }
+}
diff --git a/data/content/Screens/VidDlg.frm b/data/content/Screens/VidDlg.frm
new file mode 100644
index 0000000..62530d5
--- /dev/null
+++ b/data/content/Screens/VidDlg.frm
@@ -0,0 +1,423 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 5.0
+// File: VidDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2007. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "form.options.title",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: "form.options.tab.video"
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: "form.options.tab.audio"
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: "form.options.tab.controls"
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: "form.options.tab.gameplay"
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "form.options.tab.mods"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: ( 2, 3, 3, 2, 3, 3, 2)
+
+ y_mins: ( 20, 25, 25, 25, 25, 25, 25, 25, 25, 20)
+ y_weights: ( 3, 0, 0, 0, 0, 0, 0, 0, 0, 7)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ pid: 300
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "form.video.mode"
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ text: "form.video.max-texture"
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 122
+ type: label
+ text: "form.video.shadows"
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 123
+ type: label
+ text: "form.video.specular-maps"
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 124
+ type: label
+ text: "form.video.bump-maps"
+ cells: (1,5,1,1)
+ },
+
+ ctrl: {
+ id: 105
+ type: label
+ text: "form.video.terrain-detail"
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 106
+ type: label
+ text: "form.video.terrain-texture"
+ cells: (1,8,1,1)
+ },
+
+
+ ctrl: {
+ id: 111
+ type: label
+ text: "form.video.lens-flare"
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 112
+ type: label
+ text: "form.video.corona"
+ cells: (4,2,1,1)
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ text: "form.video.nebula"
+ cells: (4,3,1,1)
+ },
+
+ ctrl: {
+ id: 114
+ type: label
+ text: "form.video.space-dust"
+ cells: (4,4,1,1)
+ },
+
+ ctrl: {
+ id: 115
+ type: label
+ text: "form.video.gamma-level"
+ cells: (4,7,1,1)
+ },
+
+
+ defctrl: {
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ cell_insets: (0,0,0,5)
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 203
+ type: combo
+ cells: (2,1,1,1)
+
+ item: "800 x 600 x 8"
+ item: "800 x 600 x 16"
+ item: "800 x 600 x 32"
+ }
+
+ ctrl: {
+ id: 204
+ type: combo
+ cells: (2,2,1,1)
+
+ item: "64 x 64"
+ item: "128 x 128"
+ item: "256 x 256"
+ item: "512 x 512"
+ item: "1024 x 1024"
+ item: "2048 x 2048"
+ item: "4096 x 4096"
+ }
+
+ ctrl: {
+ id: 222
+ type: combo
+ cells: (2,3,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 223
+ type: combo
+ cells: (2,4,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 224
+ type: combo
+ cells: (2,5,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 205
+ type: combo
+ cells: (2,7,1,1)
+
+ item: "form.video.low"
+ item: "form.video.medium"
+ item: "form.video.high"
+ }
+
+ ctrl: {
+ id: 206
+ type: combo
+ cells: (2,8,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 211
+ type: combo
+ cells: (5,1,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 212
+ type: combo
+ cells: (5,2,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 213
+ type: combo
+ cells: (5,3,1,1)
+
+ item: "form.disable"
+ item: "form.enable"
+ }
+
+ ctrl: {
+ id: 214
+ type: combo
+ cells: (5,4,1,1)
+
+ item: "form.video.none"
+ item: "form.video.some"
+ item: "form.video.lots"
+ }
+
+ ctrl: {
+ id: 215
+ type: slider
+ cells: (5,7,1,1)
+ cell_insets: (0,0,0,16)
+
+ active_color: (250, 250, 100)
+ back_color: ( 41, 41, 41)
+ border: false
+ active: true
+ }
+
+ ctrl: {
+ id: 315
+ type: label
+ cells: (5,8,1,1)
+ cell_insets: (0,0,0,0)
+
+ texture: gamma_test
+ margins: (0,0,0,0)
+ }
+
+ // buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ pid: 0
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: "form.apply"
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: "form.cancel"
+ cells: (4,5,1,1)
+ }
+}
diff --git a/data/content/Ships/Alliance_Fighters/Eagle.def b/data/content/Ships/Alliance_Fighters/Eagle.def
new file mode 100644
index 0000000..72b2460
--- /dev/null
+++ b/data/content/Ships/Alliance_Fighters/Eagle.def
@@ -0,0 +1,366 @@
+SHIP
+
+name: Eagle
+display_name: Eagle
+class: Fighter
+abrv: "F-34D"
+
+hud_icon: "EagleHud.pcx"
+description: "ship.eagle"
+
+detail_0: "Eagle_0.mag"
+feature_0: 25
+detail_1: "Eagle_1b.mag"
+feature_1: 1
+
+cockpit_model: "EaglePit2t.mag"
+cockpit_scale: 0.02
+
+mass: 17.3
+integrity: 6e3
+scuttle: 2e3
+vlimit: 300
+agility: 130
+air_factor: 0.25
+roll_rate: 1700
+scale: 0.25
+acs: 1.1
+detet: 50e3
+
+trans_x: 3e3
+trans_y: 3e3
+trans_z: 3e3
+
+arcade_drag: 0.13
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.8e-2 //1.1e-2
+CD: 5.1e-2 //1.1e-1
+stall: 0.45
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -770, 80)
+bridge: (0, 102, 23)
+
+power: {
+ type: Fusion,
+ max_output: 75,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 60,
+ scale: 0.35,
+ port: (-8, 1, -188),
+ port: ( 8, 1, -188),
+
+ loc: (0, 0, -150),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon",
+ abrv: Cannon,
+ muzzle: (-19, -3, 177),
+ muzzle: ( 19, -3, 177),
+
+ loc: ( 0, 0, 32),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-1",
+ muzzle: (-69, -22, -75)
+
+ loc: (-69, -22, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-2",
+ muzzle: (-48, -17, -75)
+
+ loc: (-48, -17, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: (-20, -13, -25)
+
+ loc: (-20, -13, -15)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (-14, -14, 52)
+
+ loc: (-14, -14, 60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-5",
+ muzzle: ( 15, -14, 52)
+
+ loc: ( 15, -14, 60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-6",
+ muzzle: ( 20, -13, -25)
+
+ loc: ( 20, -13, -15)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-7",
+ muzzle: ( 48, -17, -75)
+
+ loc: ( 48, -17, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-8",
+ muzzle: ( 70, -22, -75)
+
+ loc: ( 70, -22, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -18, 100),
+ end: (0, -38, 130)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -20, -74),
+ end: (-40, -50, -70)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -20, -74),
+ end: ( 40, -50, -70)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ scale: 0.12,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+
+ port_fore: {loc:( -40, 5, 28), fire: 0x0044},
+ port_fore: {loc:( -40, -9, 28), fire: 0x0044},
+ port_fore: {loc:( 40, -9, 28), fire: 0x0084},
+ port_fore: {loc:( 40, 5, 28), fire: 0x0084},
+
+ port_aft: {loc:( -3, -8,-188), fire: 0x0008},
+ port_aft: {loc:( 3, -8,-188), fire: 0x0008},
+
+ port_top: {loc:( -3, 17,-145), fire: 0x0210},
+ port_top: {loc:( 3, 17,-145), fire: 0x0210},
+
+ port_bottom: {loc:( -3, -17,-145), fire: 0x0120},
+ port_bottom: {loc:( 3, -17,-145), fire: 0x0120},
+
+ port_top: {loc:( -19, 6, 98), fire: 0x0510},
+ port_top: {loc:( 19, 6, 98), fire: 0x0910},
+
+ port_bottom: {loc:( -19, -9, 98), fire: 0x0A20},
+ port_bottom: {loc:( 19, -9, 98), fire: 0x0620},
+}
+
+/*
+0x0001 = Translate Right
+0x0002 = "" Left
+0x0004 = "" Backwards
+0x0008 = "" Forewards
+0x0010 = "" Down
+0x0020 = "" Up
+0x0040 = Yaw Left
+0x0080 = Yaw Right
+0x0100 = Pitch Up
+0x0200 = Pitch Down
+0x0400 = Roll Left
+0x0800 = Roll Right
+*/
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, -1, 0, 0, 0, 0, -1, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 1, 1, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 3, 3, 0, 1, 1, 0, 3, 3) }
+loadout: { name: "Ship Strike", stations: ( 2, 2, 0, 1, 1, 0, 2, 2) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 0, 1, 1, 0, 2, 2) }
+loadout: { name: "Rockets", stations: ( 0, 4, 1, 1, 1, 1, 4, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, -1, 0, 0, 0, 0, -1, -1) }
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.9,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.2
+ debris_speed: 160
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.25
+ debris_speed: 180
+}
+
+map: {
+ sprite: "e_map0.pcx",
+ sprite: "e_map1.pcx",
+ sprite: "e_map2.pcx",
+ sprite: "e_map3.pcx",
+ sprite: "e_map4.pcx",
+ sprite: "e_map5.pcx",
+ sprite: "e_map6.pcx",
+ sprite: "e_map7.pcx"
+}
+
diff --git a/data/content/Ships/Alliance_Fighters/Falcon.def b/data/content/Ships/Alliance_Fighters/Falcon.def
new file mode 100644
index 0000000..81847d6
--- /dev/null
+++ b/data/content/Ships/Alliance_Fighters/Falcon.def
@@ -0,0 +1,309 @@
+SHIP
+
+name: Falcon
+display_name: Falcon
+class: Fighter
+abrv: "F-32"
+
+hud_icon: "FalconHud.pcx"
+description: "ship.falcon"
+
+detail_0: "falcon6_0.mag"
+feature_0: 25
+detail_1: "Falcon6_1.mag"
+feature_1: 1
+
+cockpit_model: "FalconPit.mag"
+cockpit_scale: 0.02
+
+mass: 14.5
+integrity: 4e3
+scuttle: 1e3
+vlimit: 290
+agility: 170
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.27
+acs: 1.1
+detet: 50e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.1
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.3e-2
+CD: 0.7e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 80)
+bridge: (0, 131, 23)
+
+power: {
+ type: Fusion,
+ max_output: 65,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 50,
+ scale: 0.32,
+ port: ( 33, 12, -175),
+ port: (-33, 12, -175),
+
+ loc: (0, 0, -130),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon",
+ abrv: Cannon,
+ muzzle: (-21, 0, 130),
+ muzzle: ( 21, 0, 130),
+
+ loc: (0, 0, -32),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-110, -7, -145),
+
+ loc: (-110, -7, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-2",
+ muzzle: (-93, -5, -145),
+
+ loc: (-93, -5, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: ( 93, -5, -145),
+
+ loc: ( 93, -5, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (110, -7, -145),
+
+ loc: (110, -7, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 1, 3, 3, 1) }
+loadout: { name: "Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Hvy Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Rockets", stations: ( 0, 3, 3, 0) }
+loadout: { name: "Scout/Recon", stations: ( 0, -1, -1, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -8, 90),
+ end: (0, -28, 120)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -17, -79),
+ end: (-40, -37, -75)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -17, -79),
+ end: ( 40, -37, -75)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:( -31, 8, 5), fire: 0x0044},
+ port_fore: {loc:( -27, 14, 5), fire: 0x0044},
+ port_fore: {loc:( 27, 14, 5), fire: 0x0084},
+ port_fore: {loc:( 31, 8, 5), fire: 0x0084},
+
+ port_aft: {loc:( -8, 2,-172), fire: 0x0088},
+ port_aft: {loc:( 8, 2,-172), fire: 0x0048},
+
+ port_top: {loc:( -2, 12,-162), fire: 0x0110},
+ port_top: {loc:( 2, 12,-162), fire: 0x0110},
+
+ port_bottom: {loc:( -2, -12,-162), fire: 0x0220},
+ port_bottom: {loc:( 2, -12,-162), fire: 0x0220},
+
+ port_top: {loc:(-124, -4, -96), fire: 0x0410},
+ port_top: {loc:(-124, -4,-115), fire: 0x0410},
+
+ port_top: {loc:( 124, -4, -96), fire: 0x0810},
+ port_top: {loc:( 124, -4,-115), fire: 0x0810},
+
+ port_bottom: {loc:(-123, -5, -96), fire: 0x0820},
+ port_bottom: {loc:(-123, -5,-115), fire: 0x0820},
+
+ port_bottom: {loc:( 123, -5, -96), fire: 0x0420},
+ port_bottom: {loc:( 123, -5,-115), fire: 0x0420},
+
+ port_bottom: {loc:( -2, -6, 141), fire: 0x0120},
+ port_bottom: {loc:( 2, -6, 141), fire: 0x0120},
+
+}
+
+
+death_spiral: {
+ time: 3,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.8,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (1,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+map: {
+ sprite: "f_map0.pcx",
+ sprite: "f_map1.pcx",
+ sprite: "f_map2.pcx",
+ sprite: "f_map3.pcx",
+ sprite: "f_map4.pcx",
+ sprite: "f_map5.pcx",
+ sprite: "f_map6.pcx",
+ sprite: "f_map7.pcx"
+}
+
diff --git a/data/content/Ships/Alliance_Fighters/Stormhawk.def b/data/content/Ships/Alliance_Fighters/Stormhawk.def
new file mode 100644
index 0000000..73d546c
--- /dev/null
+++ b/data/content/Ships/Alliance_Fighters/Stormhawk.def
@@ -0,0 +1,335 @@
+SHIP
+
+name: Stormhawk
+display_name: Stormhawk
+class: Fighter
+abrv: "F-36C"
+
+hud_icon: "StormhawkHud.pcx"
+description: "ship.stormhawk"
+
+detail_0: "Storm6_0.mag"
+feature_0: 25
+detail_1: "Storm6_1.mag"
+feature_1: 1
+
+cockpit_model: "StormPit2b.mag"
+cockpit_scale: 0.02
+
+mass: 15.1
+integrity: 5e3
+scuttle: 1e3
+vlimit: 290
+agility: 140
+air_factor: 0.3
+roll_rate: 1700
+scale: 0.25
+acs: 1.1
+detet: 50e3
+
+trans_x: 3e3
+trans_y: 2e3
+trans_z: 3e3
+
+arcade_drag: 0.13
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.8e-2 //1.1e-2
+CD: 5.1e-2 //1.1e-1
+stall: 0.45
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -790, 90)
+bridge: (0, 102, 23)
+
+power: {
+ type: Fusion,
+ max_output: 75,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 60,
+ scale: 0.35,
+ port: (0, 0, -178),
+
+ loc: (0, 0, -100),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon"
+ abrv: Cannon
+ muzzle: (-28, 2, 77)
+ muzzle: ( 28, 2, 77)
+
+ loc: (0, 0, 32)
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-78, -10, -120),
+
+ loc: (-78, -10, -120),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: (-50, -5, -110),
+
+ loc: (-50, -5, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: (-16, -18, -110),
+
+ loc: (-16, -18, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ type: "Recon Pod",
+ abrv: "STA-4",
+ muzzle: ( 16, -18, -110),
+
+ loc: ( 16, -18, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: ( 50, -5, -110),
+
+ loc: ( 50, -5, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-6",
+ muzzle: ( 78, -10, -120),
+
+ loc: ( 78, -10, -120),
+ size: 16,
+ hull_factor: 0.2
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -18, 100),
+ end: (0, -38, 130)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -20, -74),
+ end: (-40, -50, -70)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -20, -74),
+ end: ( 40, -50, -70)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ scale: 0.12,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+
+ port_fore: {loc:(-104, -5, -40), fire: 0x0044},
+ port_fore: {loc:( -95, -4, -31), fire: 0x0044},
+ port_fore: {loc:( 95, -4, -31), fire: 0x0084},
+ port_fore: {loc:( 104, -5, -40), fire: 0x0084},
+
+ port_aft: {loc:(-104, -5,-119), fire: 0x0088},
+ port_aft: {loc:( -95, -4,-121), fire: 0x0088},
+ port_aft: {loc:( 95, -4,-121), fire: 0x0048},
+ port_aft: {loc:( 104, -5,-119), fire: 0x0048},
+
+ port_top: {loc:( -6, 13, 120), fire: 0x0210},
+ port_top: {loc:( -6, 13, 113), fire: 0x0210},
+ port_top: {loc:( 6, 13, 113), fire: 0x0210},
+ port_top: {loc:( 6, 13, 120), fire: 0x0210},
+
+ port_bottom: {loc:( -6, -15, 120), fire: 0x0120},
+ port_bottom: {loc:( -6, -15, 113), fire: 0x0120},
+ port_bottom: {loc:( 6, -15, 113), fire: 0x0120},
+ port_bottom: {loc:( 6, -15, 120), fire: 0x0120},
+
+ port_top: {loc:( -83, 0,-100), fire: 0x0510},
+ port_top: {loc:( -83, 0,-107), fire: 0x0510},
+ port_top: {loc:( 83, 0,-100), fire: 0x0910},
+ port_top: {loc:( 83, 0,-107), fire: 0x0910},
+
+ port_bottom: {loc:( -96, -9, -96), fire: 0x0A20},
+ port_bottom: {loc:( -96, -9,-115), fire: 0x0A20},
+ port_bottom: {loc:( 96, -9, -96), fire: 0x0620},
+ port_bottom: {loc:( 96, -9,-115), fire: 0x0620},
+}
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, -1, -1, 0, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 1, 1, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 3, 3, 3, 3, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 1, 4, 4, 1, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, -1, 5, 0, -1) }
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.9,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.9
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.7
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+map: {
+ sprite: "s_map0.pcx",
+ sprite: "s_map1.pcx",
+ sprite: "s_map2.pcx",
+ sprite: "s_map3.pcx",
+ sprite: "s_map4.pcx",
+ sprite: "s_map5.pcx",
+ sprite: "s_map6.pcx",
+ sprite: "s_map7.pcx"
+}
+
diff --git a/data/content/Ships/Alliance_Fighters/Thunderbolt.def b/data/content/Ships/Alliance_Fighters/Thunderbolt.def
new file mode 100644
index 0000000..0990ee1
--- /dev/null
+++ b/data/content/Ships/Alliance_Fighters/Thunderbolt.def
@@ -0,0 +1,356 @@
+SHIP
+
+name: Thunderbolt
+display_name: Thunderbolt
+class: attack
+abrv: "F/A-38D"
+
+hud_icon: "ThunderboltHud.pcx"
+description: "ship.thunderbolt"
+
+detail_0: "Thunderbolt_0a.mag"
+feature_0: 25
+detail_1: "Thunderbolt_1a.mag"
+feature_1: 1
+
+cockpit_model: "BoltPit2a.mag"
+cockpit_scale: 0.02
+
+mass: 29.7
+integrity: 7.5e3
+vlimit: 230
+agility: 40
+air_factor: 0.25
+roll_rate: 500
+scale: 0.27
+acs: 1.0
+detet: 50e3
+
+trans_x: 2500
+trans_y: 2500
+trans_z: 2500
+
+arcade_drag: 0.17
+drag: 3.6e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 1.6e-2
+CD: 0.7e-1
+stall: 0.38
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1000, 130)
+bridge: (0, 180, 20)
+
+power: {
+ type: Fusion
+ name: "Fusion Reactor"
+ design: "Fusion Reactor"
+ max_output: 75
+
+ loc: (0, 0, 0)
+ size: 10
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Plasma
+ design: "Plasma Drive"
+ thrust: 19
+ augmenter: 30
+ scale: 0.35
+ port: ( 83, -8, -94)
+ port: (-83, -8, -94)
+
+ loc: ( 0, 0, -90)
+ size: 24
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Heavy Cannon"
+ abrv: Cannon
+ muzzle: (-22, -1, 200)
+ muzzle: ( 21, -1, 200)
+
+ loc: (0, 0, 160)
+ size: 32
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Fighter Turret"
+ abrv: Turret
+ muzzle: (0, 0, 24)
+ loc: (0, 0, -195)
+ azimuth: 3.1416
+ size: 32
+ hull_factor: 0.3
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-1",
+ muzzle: (-116, -25, -82),
+
+ loc: (-116, -25, -70),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: (-60, -16, -72),
+
+ loc: (-60, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: (-40, -16, -72),
+
+ loc: (-40, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( 40, -16, -72),
+
+ loc: ( 40, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: ( 60, -16, -72),
+
+ loc: ( 60, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: (116, -25, -82),
+
+ loc: (116, -25, -70),
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1,) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, -1, -1, 0,) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 1, 1, 0, 0,) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 0,) }
+loadout: { name: "Ground Strike", stations: ( 1, 3, 3, 3, 3, 1,) }
+loadout: { name: "Ship Strike", stations: ( 1, 2, 2, 2, 2, 1,) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 2, 2, 2, 2,) }
+loadout: { name: "Rockets", stations: ( 0, 1, 4, 4, 1, 0,) }
+loadout: { name: "Scout/Recon", stations: ( 0, 1, -1, -1, 1, 0,) }
+
+decoy: {
+ type: "Fighter Decoy"
+ abrv: Decoy
+ muzzle: ( 0, -32, 0)
+
+ loc: (0, 0, 0)
+ size: 16
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor
+ pcs: 20
+ active_efficiency: 1e6
+ passive_efficiency: 10e3
+ range: 25e3
+ range: 50e3
+ range: 75e3
+
+ loc: (0, 0, 30)
+ size: 16
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package"
+ abrv: "HUD"
+ type: 1
+ design: Computer
+
+ loc: (0, 0, 40)
+ size: 16
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer"
+ abrv: "Flight"
+ type: 2
+ design: Computer
+ loc: (0, 0, 90)
+ size: 16
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10)
+ design: Computer
+ size: 16
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage"
+ abrv: Gear
+ loc: (0, 0, 0)
+ size: 16
+ hull_factor: 0.5
+
+ gear: {
+ model: "GearNose1.mag"
+ start: (0, -15, 144)
+ end: (0, -35, 158)
+ }
+
+ gear: {
+ model: "GearLeft1.mag"
+ start: (-20, -22, -64)
+ end: (-42, -48, -64)
+ }
+
+ gear: {
+ model: "GearRight1.mag"
+ start: ( 20, -22, -64)
+ end: ( 42, -48, -64)
+ }
+}
+
+thruster: {
+ design: Thruster
+ type: Plasma
+ scale: 0.12
+ loc: (0, -52,0)
+ size: 32
+ hull_factor: 0.5
+
+ port_fore: {loc:( -48, -2, 61), fire: 0x0044}
+ port_fore: {loc:( -36, -1, 61), fire: 0x0044}
+ port_fore: {loc:( 36, -1, 61), fire: 0x0084}
+ port_fore: {loc:( 48, -2, 61), fire: 0x0084}
+
+ port_aft: {loc:( -48, -2, -84), fire: 0x0088}
+ port_aft: {loc:( -36, -1, -90), fire: 0x0088}
+ port_aft: {loc:( 36, -1, -90), fire: 0x0048}
+ port_aft: {loc:( 48, -2, -84), fire: 0x0048}
+
+ port_left: {loc:( -26, 0, 127), fire: 0x0080}
+ port_left: {loc:( -38, 0,-144), fire: 0x0040}
+ port_right: {loc:( 26, 0, 127), fire: 0x0040}
+ port_right: {loc:( 38, 0,-144), fire: 0x0080}
+
+ port_top: {loc:( -86, 10, 29), fire: 0x0610}
+ port_top: {loc:( 86, 10, 29), fire: 0x0A10}
+ port_top: {loc:( -86, 10, -60), fire: 0x0410}
+ port_top: {loc:( 86, 10, -60), fire: 0x0810}
+
+ port_top: {loc:( -9, 22,-125), fire: 0x0110}
+ port_top: {loc:( -9, 22,-164), fire: 0x0110}
+ port_top: {loc:( 9, 22,-125), fire: 0x0110}
+ port_top: {loc:( 9, 22,-164), fire: 0x0110}
+
+ port_bottom: {loc:( -86, -24, 29), fire: 0x0920}
+ port_bottom: {loc:( 86, -24, 29), fire: 0x0520}
+ port_bottom: {loc:( -86, -24, -60), fire: 0x0820}
+ port_bottom: {loc:( 86, -24, -60), fire: 0x0420}
+
+ port_bottom: {loc:( -9, -20,-125), fire: 0x0220}
+ port_bottom: {loc:( -9, -20,-164), fire: 0x0220}
+ port_bottom: {loc:( 9, -20,-125), fire: 0x0220}
+ port_bottom: {loc:( 9, -20,-164), fire: 0x0220}
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "b_map0.pcx"
+ sprite: "b_map1.pcx"
+ sprite: "b_map2.pcx"
+ sprite: "b_map3.pcx"
+ sprite: "b_map4.pcx"
+ sprite: "b_map5.pcx"
+ sprite: "b_map6.pcx"
+ sprite: "b_map7.pcx"
+}
diff --git a/data/content/Ships/Alliance_Fighters/Zodiac.def b/data/content/Ships/Alliance_Fighters/Zodiac.def
new file mode 100644
index 0000000..ff0517b
--- /dev/null
+++ b/data/content/Ships/Alliance_Fighters/Zodiac.def
@@ -0,0 +1,243 @@
+SHIP
+
+name: Zodiac
+display_name: Zodiac
+class: LCA
+abrv: LCA
+description: "ship.zodiac"
+
+degrees: true
+
+hud_icon: "ZodiacHud.pcx"
+
+detail_0: "Zodiac_1a.mag"
+feature_0: 100
+detail_1: "Zodiac_2k.mag"
+feature_1: 4
+
+
+mass: 87
+integrity: 5250
+vlimit: 250
+agility: 25
+roll_rate: 350
+scale: 0.45
+acs: 1
+
+trans_x: 2800
+trans_y: 2800
+trans_z: 2800
+
+arcade_drag: 0.2
+drag: 4e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 5e-3
+CD: 1e-4
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1500, 150)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 80,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 45,
+ scale: 0.75,
+ port: (-20, 10, -318),
+ port: ( 20, 10, -318),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+thruster: {
+ design: Thruster,
+ scale: 0.5,
+ port: (-44, -28, 8),
+ port: ( 44, -28, 8),
+ port: (-44, -28, -165),
+ port: ( 44, -28, -165),
+
+ port_fore: {loc:(-193, -11, 8), fire: 0x0044},
+ port_fore: {loc:(-191, -27, 8), fire: 0x0044},
+ port_fore: {loc:( 191, -27, 8), fire: 0x0084},
+ port_fore: {loc:( 193, -11, 8), fire: 0x0084},
+
+ port_aft: {loc:(-193, -11,-159), fire: 0x0088},
+ port_aft: {loc:(-191, -27,-159), fire: 0x0088},
+ port_aft: {loc:( 191, -27,-159), fire: 0x0048},
+ port_aft: {loc:( 193, -11,-159), fire: 0x0048},
+
+ loc: (0, -20, 128),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "ZGearRight.mag",
+ start: (44, -25, -10),
+ end: (74, -60, -10)
+ },
+
+ gear: {
+ model: "ZGearLeft.mag",
+ start: (-44, -25, -10),
+ end: (-74, -60, -10)
+ },
+
+ gear: {
+ model: "ZGearRight.mag",
+ start: (44, -25, -128),
+ end: (74, -60, -128)
+ },
+
+ gear: {
+ model: "ZGearLeft.mag",
+ start: (-44, -25, -128),
+ end: (-74, -60, -128)
+ },
+}
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Main Cannon",
+ abrv: "Guns",
+ muzzle: (-38, -21, 191),
+ muzzle: (-30, -22, 203),
+ muzzle: ( 30, -22, 203),
+ muzzle: ( 38, -21, 191),
+
+ loc: (0, -10, 110),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+
+weapon: {
+ type: "LCA Turret",
+ design: "Bolt Weapon",
+ name: "Turret",
+ abrv: "Turret",
+
+ azimuth: 180
+
+ muzzle: (-16, 0, 148)
+ muzzle: ( 16, 0, 148)
+ loc: ( 0, 74, -189)
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 1.2,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1.0,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+ }
+
+map: {
+ sprite: "z_map0.pcx",
+ sprite: "z_map1.pcx",
+ sprite: "z_map2.pcx",
+ sprite: "z_map3.pcx",
+ sprite: "z_map4.pcx",
+ sprite: "z_map5.pcx",
+ sprite: "z_map6.pcx",
+ sprite: "z_map7.pcx",
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Main
+ Ka: (0.5, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (0.8, 0.8, 0.8)
+ Ke: (0.0, 0.0, 0.0)
+ power: 20
+ bump: 2
+ tex_d: "Zodiac_D2.jpg"
+ tex_s: "Zodiac_S.jpg"
+ tex_b: "Zodiac_B.jpg"
+ }
+}
diff --git a/data/content/Ships/Alliance_Ships/Asher.def b/data/content/Ships/Alliance_Ships/Asher.def
new file mode 100644
index 0000000..ca4e8c6
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Asher.def
@@ -0,0 +1,398 @@
+SHIP
+
+name: Asher
+display_name: Asher
+class: Destroyer
+description: "ship.asher"
+
+degrees: true
+beauty: (-15, 6, 1.2)
+hud_icon: "AsherHud.pcx"
+
+detail_0: "Destroyer_0opt.mag"
+feature_0: 1000
+detail_1: "Destroyer_1opt.mag"
+feature_1: 40
+detail_2: "Destroyer_2opt.mag"
+feature_2: 20
+
+mass: 15.5e3
+agility: 3.5
+vlimit: 300
+roll_rate: 7
+integrity: 22e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ name: "Reactor One",
+ max_output: 7500,
+
+ loc: (0, -20, -220),
+ size: 48,
+ hull_factor: 0.75,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 2500,
+ scale: 4,
+ port: (-23, -6, -595),
+ port: (-23, -31, -595),
+ port: ( 23, -6, -595),
+ port: ( 23, -31, -595),
+
+ loc: (0, -20, -480),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -74, 0,-363), fire: 0x0041}
+ port_left: {loc:( -74, 0,-323), fire: 0x0041}
+ port_left: {loc:( -35, 34, 349), fire: 0x0081}
+ port_left: {loc:( -35, 34, 362), fire: 0x0081}
+
+ port_right: {loc:( 74, 0,-363), fire: 0x0082}
+ port_right: {loc:( 74, 0,-323), fire: 0x0082}
+ port_right: {loc:( 35, 34, 349), fire: 0x0042}
+ port_right: {loc:( 35, 34, 362), fire: 0x0042}
+
+ port_fore: {loc:(-116, -9, 37), fire: 0x0044}
+ port_fore: {loc:(-100, -9, 37), fire: 0x0044}
+ port_fore: {loc:( 100, -9, 37), fire: 0x0084}
+ port_fore: {loc:( 116, -9, 37), fire: 0x0084}
+
+ port_aft: {loc:(-116, -9,-280), fire: 0x0088}
+ port_aft: {loc:(-100, -9,-280), fire: 0x0088}
+ port_aft: {loc:( 100, -9,-280), fire: 0x0048}
+ port_aft: {loc:( 116, -9,-280), fire: 0x0048}
+
+ port_top: {loc:( -20, 32,-458), fire: 0x0110}
+ port_top: {loc:( 20, 32,-458), fire: 0x0110}
+
+ port_bottom: {loc:( -20,-104,-458), fire: 0x0220}
+ port_bottom: {loc:( 20,-104,-458), fire: 0x0220}
+
+ port_top: {loc:(-108, 20, -35), fire: 0x0410}
+ port_top: {loc:(-108, 20,-207), fire: 0x0410}
+ port_top: {loc:( 107, 20, -35), fire: 0x0810}
+ port_top: {loc:( 107, 20,-207), fire: 0x0810}
+
+ port_bottom: {loc:(-108, -32, -35), fire: 0x0820}
+ port_bottom: {loc:(-108, -32,-207), fire: 0x0820}
+ port_bottom: {loc:( 107, -32, -35), fire: 0x0420}
+ port_bottom: {loc:( 107, -32,-207), fire: 0x0420}
+
+ port_top: {loc:( -18, 62, 341), fire: 0x0210}
+ port_top: {loc:( 16, 62, 341), fire: 0x0210}
+
+ port_bottom: {loc:( -18 -71, 341), fire: 0x0120}
+ port_bottom: {loc:( 16, -71, 341), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "Destroyer_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -20, 0),
+ size: 48,
+ hull_factor: 0.7
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ name: "Reactor Two",
+ max_output: 1000,
+
+ loc: (0, 0, -180),
+ size: 20,
+ hull_factor: 0.8
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-22, -9, 425),
+
+ loc: (-22, -9, 400),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 0, -22, 425),
+
+ loc: ( 0, -22, 420),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: ( 22, -9, 425),
+
+ loc: ( 22, -9, 420),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Starboard Torpedo",
+ abrv: "Torp-1",
+ muzzle: ( 106, -12, 60),
+
+ loc: ( 100, -12, 0),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Port Torpedo",
+ abrv: "Torp-2",
+ muzzle: (-106, -12, 60),
+
+ loc: (-100, -12, 0),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB-1",
+ group: "PDB",
+ loc: (-110, 15, -128),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Phalanx",
+ abrv: "PDB-2",
+ group: "PDB",
+
+ loc: ( 110, 15, -128),
+ azimuth: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Phalanx",
+ abrv: "PDB-3",
+ group: "PDB",
+
+ loc: ( 0, 56, -190)
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 20,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.3,
+ period: 2.2,
+
+ light: { loc: ( 140,-10, -80), pattern: 0x11000000, type: 3 },
+ light: { loc: (-140,-10, -80), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0, 55,-320), pattern: 0x00001100, type: 1 },
+ light: { loc: ( 0,-94,-320), pattern: 0x00001100, type: 1 },
+ light: { loc: ( 0, 64, 320), pattern: 0x00001100, type: 1 },
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-450),
+ debris_mass: 15e3,
+ debris_count: 1,
+ debris_life: 150,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 22,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 25,
+
+}
+
+map: {
+ sprite: "AsherMap0.pcx",
+ sprite: "AsherMap1.pcx",
+ sprite: "AsherMap2.pcx",
+ sprite: "AsherMap3.pcx",
+ sprite: "AsherMap4.pcx",
+ sprite: "AsherMap5.pcx",
+ sprite: "AsherMap6.pcx",
+ sprite: "AsherMap7.pcx"
+}
+
+
+
+
+
diff --git a/data/content/Ships/Alliance_Ships/Berents.def b/data/content/Ships/Alliance_Ships/Berents.def
new file mode 100644
index 0000000..950c2f4
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Berents.def
@@ -0,0 +1,333 @@
+SHIP
+
+name: Berents
+display_name: Berents
+class: Frigate
+description: "ship.berents"
+
+hud_icon: "BerentsHud.pcx"
+
+detail_0: "Frigate_1opt.mag"
+feature_0: 1000
+detail_1: "Frigate_3opt.mag"
+feature_1: 40
+
+
+mass: 8.2e3
+agility: 4
+vlimit: 320
+roll_rate: 8
+integrity: 20e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 2,
+ port: (-19,19,-400),
+ port: ( 19,19,-400),
+ port: (-19, 4,-400),
+ port: ( 19, 4,-400),
+
+ loc: (0, 0, -100),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -37, 24,-268), fire: 0x0041}
+ port_left: {loc:( -44, 13, 268), fire: 0x0081}
+
+ port_right: {loc:( 37, 24,-268), fire: 0x0082}
+ port_right: {loc:( 44, 13, 268), fire: 0x0042}
+
+ port_fore: {loc:( -94, 20, 70), fire: 0x0044}
+ port_fore: {loc:( -84, 20, 70), fire: 0x0044}
+ port_fore: {loc:( 84, 20, 70), fire: 0x0084}
+ port_fore: {loc:( 94, 20, 70), fire: 0x0084}
+
+ port_aft: {loc:( -94, 20,-124), fire: 0x0088}
+ port_aft: {loc:( -84, 20,-124), fire: 0x0088}
+ port_aft: {loc:( 84, 20,-124), fire: 0x0048}
+ port_aft: {loc:( 94, 20,-124), fire: 0x0048}
+
+ port_top: {loc:( -21, 35,-335), fire: 0x0110}
+ port_top: {loc:( 23, 35,-335), fire: 0x0110}
+
+ port_bottom: {loc:( -21, -23,-335), fire: 0x0220}
+ port_bottom: {loc:( 23, -23,-335), fire: 0x0220}
+
+ port_top: {loc:( -89, 38, 36), fire: 0x0410}
+ port_top: {loc:( -89, 38, -90), fire: 0x0410}
+
+ port_top: {loc:( 89, 38, 36), fire: 0x0810}
+ port_top: {loc:( 89, 38, -90), fire: 0x0810}
+
+ port_top: {loc:( -29, 33, 255), fire: 0x0210}
+ port_top: {loc:( 29, 33, 255), fire: 0x0210}
+
+ port_bottom: {loc:( -89, 6, 36), fire: 0x0820}
+ port_bottom: {loc:( -89, 6, -90), fire: 0x0820}
+
+ port_bottom: {loc:( 89, 6, 36), fire: 0x0420}
+ port_bottom: {loc:( 89, 6, -90), fire: 0x0420}
+
+ port_bottom: {loc:( -29, -32, 255), fire: 0x0120}
+ port_bottom: {loc:( 29, -32, 255), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.05,
+ consumption: 2000,
+ model: "Frigate_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Bolt Weapon",
+ name: "Plasma Cannon",
+ abrv: "Plasma",
+ group: "Main",
+
+ loc: ( 0, 0, 300),
+ muzzle: ( 0, 4, 333),
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7-1",
+ muzzle: (-33, 33, 233),
+ azimuth: -0.15,
+
+ loc: (-33, 0, 220),
+ size: 16,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 2",
+ abrv: "MK7-2",
+ muzzle: ( 33, 33, 233),
+ azimuth: 0.15,
+
+ loc: ( 33, 0, 220),
+ size: 16,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ abrv: "Phalanx",
+ group: "FWD PDB",
+
+ loc: ( 88,36, -22),
+
+ size: 24,
+ hull_factor: 0.3
+}
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ abrv: "Phalanx",
+ group: "FWD PDB",
+
+ loc: (-88,36, -22),
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Cannon",
+ abrv: "Phalanx",
+ group: "AFT PDB",
+
+ loc: ( 0,-26,-190),
+ azimuth: 3.1415927,
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+}
+
+map: {
+ sprite: "BerentsMap0.pcx",
+ sprite: "BerentsMap1.pcx",
+ sprite: "BerentsMap2.pcx",
+ sprite: "BerentsMap3.pcx",
+ sprite: "BerentsMap4.pcx",
+ sprite: "BerentsMap5.pcx",
+ sprite: "BerentsMap6.pcx",
+ sprite: "BerentsMap7.pcx"
+}
+
+
diff --git a/data/content/Ships/Alliance_Ships/Cruiser.def b/data/content/Ships/Alliance_Ships/Cruiser.def
new file mode 100644
index 0000000..b916078
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Cruiser.def
@@ -0,0 +1,437 @@
+SHIP
+
+name: Courageous
+display_name: Courageous
+class: Cruiser
+description: "ship.courageous"
+
+degrees: true
+beauty: (-9, 3.5, 1.27)
+hud_icon: "CourageousHud.pcx"
+
+detail_0: "Courageous_1opt.mag"
+feature_0: 1000
+detail_1: "Courageous_2opt.mag"
+feature_1: 20
+
+
+mass: 45.3e3
+agility: 1.3
+vlimit: 300
+roll_rate: 7
+integrity: 50e3
+scale: 2.2
+acs: 1.2
+
+trans_x: 500e3
+trans_y: 300e3
+trans_z: 500e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+
+chase: (0, -1300, 300)
+bridge: (0, 520, 120)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 20e3,
+
+ loc: (0, 0, -92),
+ size: 64,
+ hull_factor: 0.9
+}
+
+drive: {
+ type: Plasma
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 15e3,
+ scale: 5.5,
+ port: ( 21, -10, -760),
+ port: ( 21, -30, -760),
+ port: (-21, -10, -760),
+ port: (-21, -30, -760),
+
+ loc: (0, 0, -320),
+ size: 64,
+ hull_factor: 0.5
+}
+
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 2
+
+ port_left: {loc:( -90, -7,-545), fire: 0x0041}
+ port_left: {loc:( -90, -7,-499), fire: 0x0041}
+ port_left: {loc:( -77, -12, 436), fire: 0x0081}
+ port_left: {loc:( -77, -12, 457), fire: 0x0081}
+
+ port_right: {loc:( 90, -7,-545), fire: 0x0082}
+ port_right: {loc:( 90, -7,-499), fire: 0x0082}
+ port_right: {loc:( 77, -12, 436), fire: 0x0042}
+ port_right: {loc:( 77, -12, 457), fire: 0x0042}
+
+ port_fore: {loc:(-185, 45, -37), fire: 0x0044}
+ port_fore: {loc:(-167, 45, -37), fire: 0x0044}
+ port_fore: {loc:( 167, 45, -37), fire: 0x0084}
+ port_fore: {loc:( 185, 45, -37), fire: 0x0084}
+
+ port_aft: {loc:(-185, 45,-432), fire: 0x0088}
+ port_aft: {loc:(-167, 45,-432), fire: 0x0088}
+ port_aft: {loc:( 167, 45,-432), fire: 0x0048}
+ port_aft: {loc:( 185, 45,-432), fire: 0x0048}
+
+ port_top: {loc:(-175, 79, -84), fire: 0x0410}
+ port_top: {loc:(-175, 79,-385), fire: 0x0410}
+ port_top: {loc:( 175, 79, -84), fire: 0x0810}
+ port_top: {loc:( 175, 79,-385), fire: 0x0810}
+
+ port_bottom: {loc:(-175, 21, -84), fire: 0x0820}
+ port_bottom: {loc:(-175, 21,-385), fire: 0x0820}
+ port_bottom: {loc:( 175, 21, -84), fire: 0x0420}
+ port_bottom: {loc:( 175, 21,-385), fire: 0x0420}
+
+ port_top: {loc:( -18, 58, 660), fire: 0x0210}
+ port_top: {loc:( 18, 58, 660), fire: 0x0210}
+
+ port_bottom: {loc:( -18, -51, 660), fire: 0x0120}
+ port_bottom: {loc:( 18, -51, 660), fire: 0x0120}
+
+ port_top: {loc:( -17, 26,-617), fire: 0x0110}
+ port_top: {loc:( 17, 26,-617), fire: 0x0110}
+
+ port_bottom: {loc:( -17,-111,-617), fire: 0x0220}
+ port_bottom: {loc:( 17,-111,-617), fire: 0x0220}
+}
+
+
+quantum: {
+ design: "Quantum Drive"
+ abrv: "Q-Drive"
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield"
+ abrv: "Shield"
+ pcs: 100,
+ model: "CourageousShield.mag",
+ bolt_hit_sound: "shield_hit4.wav"
+ beam_hit_sound: "shield_hit5.wav"
+
+ loc: (0, 0, 40),
+ size: 42,
+ hull_factor: 0.7
+}
+
+power: {
+ type: Auxilliary,
+ design: "Auxilliary Reactor"
+ abrv: "Aux Reac"
+ max_output: 3e3,
+
+ loc: (0, -32, -64),
+ size: 64,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-51, -12, 641),
+
+ loc: (-40, -12, 600),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 51, -12, 641),
+
+ loc: ( 40, -12, 600),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-37, -45, 623),
+
+ loc: (-30, -45, 580),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 37, -45, 623),
+
+ loc: ( 30, -45, 580),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Starboard Missile",
+ abrv: "Nike-1",
+ muzzle: ( 70, 55, 355),
+ muzzle: ( 80, 45, 355),
+ azimuth: 15,
+
+ loc: ( 100, 22, 250),
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Port Missile",
+ abrv: "Nike-2",
+ muzzle: (-70, 55, 355),
+ muzzle: (-80, 45, 355),
+ azimuth: -15,
+
+ loc: (-100, 22, 250),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor",
+ abrv: "MK7-1",
+ muzzle: ( 35, 75, 355),
+ muzzle: ( 50, 70, 355),
+ muzzle: (-35, 75, 355),
+ muzzle: (-50, 70, 355),
+
+ loc: ( 0, 30, 250),
+ size: 16,
+ hull_factor: 0.3
+}
+
+
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-1",
+ abrv: "PDB 1"
+ group: "PDB"
+ loc: ( 0, 87, 400),
+
+ size: 32,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-2",
+ abrv: "PDB 2"
+ group: "PDB"
+ loc: ( 0, 130, -15),
+
+ azimuth: 180,
+ size: 32,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx 1",
+ abrv: "PDB 3",
+ group: "PDB"
+ loc: (-176, 78, -250),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Phalanx 1",
+ abrv: "PDB 4",
+ group: "PDB"
+ loc: ( 176, 78, -250),
+ azimuth: 90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx 2",
+ abrv: "PDB 5",
+ group: "PDB"
+ loc: (-176, 18, -220),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Phalanx 2",
+ abrv: "PDB 6",
+ group: "PDB"
+ loc: ( 176, 18, -220),
+ azimuth: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, 32, 380),
+ size: 24,
+ hull_factor: 0.2
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, -32, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -32, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 32, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.66,
+ period: 2.5,
+
+ light: { loc: ( 208,-10,-320), pattern: 0x11000000, type: 3 },
+ light: { loc: (-208,-10,-320), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0,-93, 175), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0,100, 175), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0,100,-115), pattern: 0x00000120, type: 1 },
+}
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.1, loc: ( 20, 80, -190) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "Debris1A.mag", loc: (0,0,-550), mass: 17e3, count: 1, life: 350 }
+ debris: { model: "Debris1B.mag", loc: (320,0,10), mass: 4e3, count: 1, life: 380 }
+ debris: { model: "CourageousDebris2.mag", loc: (0,0,400), mass: 18e3, count: 1, life: 380
+ fire: (60,60,20), fire: (-60,-30,-10) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 44, count: 25, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 33, count: 20, life: 25 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 22, count: 25, life: 30 }
+}
+
+
+map: {
+ sprite: "CourageousMap0.pcx",
+ sprite: "CourageousMap1.pcx",
+ sprite: "CourageousMap2.pcx",
+ sprite: "CourageousMap3.pcx",
+ sprite: "CourageousMap4.pcx",
+ sprite: "CourageousMap5.pcx",
+ sprite: "CourageousMap6.pcx",
+ sprite: "CourageousMap7.pcx"
+}
+
+
+
+
+
+
diff --git a/data/content/Ships/Alliance_Ships/Devastator.def b/data/content/Ships/Alliance_Ships/Devastator.def
new file mode 100644
index 0000000..3dca1d0
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Devastator.def
@@ -0,0 +1,450 @@
+SHIP
+
+name: Devastator
+display_name: Devastator
+class: Cruiser
+description: "ship.devastator"
+
+degrees: true
+beauty: (-9, 3.5, 1.27)
+hud_icon: "DevastatorHud.pcx"
+
+detail_0: "Devastator_0.mag"
+feature_0: 1000
+detail_1: "Devastator_1.mag"
+feature_1: 32
+detail_2: "Devastator_2.mag"
+feature_2: 20
+
+mass: 98.1e3
+agility: 2
+vlimit: 220
+roll_rate: 7
+integrity: 55e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 500e3
+trans_y: 300e3
+trans_z: 500e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1300, 300)
+bridge: (0, 520, 50)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 35e3,
+
+ loc: (0, 0, -92),
+ size: 64,
+ hull_factor: 0.9
+}
+
+drive: {
+ type: Plasma
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 17.5e3,
+ scale: 10,
+ port: ( 0, -18, -795),
+ port: ( 0, -40, -795),
+ port: ( -36, -18, -788),
+ port: ( -36, -40, -788),
+ port: ( 36, -18, -788),
+ port: ( 36, -40, -788),
+
+ loc: (0, 0, -320),
+ size: 64,
+ hull_factor: 0.5
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 2.5
+
+ port_left: {loc:(-106, -13,-574), fire: 0x0041}
+ port_left: {loc:(-106, -13,-555), fire: 0x0041}
+ port_left: {loc:( -90, -22, 444), fire: 0x0081}
+ port_left: {loc:( -90, -22, 466), fire: 0x0081}
+
+ port_right: {loc:( 104, -13,-574), fire: 0x0082}
+ port_right: {loc:( 104, -13,-555), fire: 0x0082}
+ port_right: {loc:( 89, -22, 444), fire: 0x0042}
+ port_right: {loc:( 89, -22, 466), fire: 0x0042}
+
+ port_fore: {loc:(-198, 36, -70), fire: 0x0044}
+ port_fore: {loc:(-180, 36, -70), fire: 0x0044}
+ port_fore: {loc:( 180, 36, -70), fire: 0x0084}
+ port_fore: {loc:( 198, 36, -70), fire: 0x0084}
+ port_fore: {loc:(-211, -24, -70), fire: 0x0044}
+ port_fore: {loc:(-193, -24, -70), fire: 0x0044}
+ port_fore: {loc:( 193, -24, -70), fire: 0x0084}
+ port_fore: {loc:( 211, -24, -70), fire: 0x0084}
+
+ port_aft: {loc:(-198, 36,-466), fire: 0x0088}
+ port_aft: {loc:(-180, 36,-466), fire: 0x0088}
+ port_aft: {loc:( 180, 36,-466), fire: 0x0048}
+ port_aft: {loc:( 198, 36,-466), fire: 0x0048}
+ port_aft: {loc:(-211, -24,-466), fire: 0x0088}
+ port_aft: {loc:(-193, -24,-466), fire: 0x0088}
+ port_aft: {loc:( 193, -24,-466), fire: 0x0048}
+ port_aft: {loc:( 211, -24,-466), fire: 0x0048}
+
+ port_top: {loc:(-189, 70,-118), fire: 0x0410}
+ port_top: {loc:(-189, 70,-418), fire: 0x0410}
+ port_top: {loc:( 189, 70,-118), fire: 0x0810}
+ port_top: {loc:( 189, 70,-418), fire: 0x0810}
+
+ port_bottom: {loc:(-202, -49,-118), fire: 0x0820}
+ port_bottom: {loc:(-202, -49,-418), fire: 0x0820}
+ port_bottom: {loc:( 202, -49,-118), fire: 0x0420}
+ port_bottom: {loc:( 202, -49,-418), fire: 0x0420}
+
+ port_top: {loc:( -32, 49, 781), fire: 0x0210}
+ port_top: {loc:( 31, 49, 781), fire: 0x0210}
+
+ port_bottom: {loc:( -32, -60, 781), fire: 0x0120}
+ port_bottom: {loc:( 31, -60, 781), fire: 0x0120}
+
+ port_top: {loc:( -32, 17,-650), fire: 0x0110}
+ port_top: {loc:( 32, 17,-650), fire: 0x0110}
+
+ port_bottom: {loc:( -32,-120,-650), fire: 0x0220}
+ port_bottom: {loc:( 32,-120,-650), fire: 0x0220}
+}
+
+quantum: {
+ design: "Quantum Drive"
+ abrv: "Q-Drive"
+ loc: (0, 0, -200),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield"
+ abrv: Shield
+ pcs: 100,
+ model: "DevastatorShield.mag",
+ bolt_hit_sound: "shield_hit4.wav"
+ beam_hit_sound: "shield_hit5.wav"
+
+ loc: (0, 0, -60),
+ size: 48
+ hull_factor: 0.7
+}
+
+power: {
+ type: Auxilliary
+ design: "Auxilliary Reactor"
+ abrv: "Aux Reac"
+ max_output: 3e3,
+
+ loc: (0, -32, -64),
+ size: 64,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-65, -22, 760),
+
+ loc: (-65, -22, 730),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 65, -22, 760),
+
+ loc: ( 65, -22, 730),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 33",
+ abrv: "Graser-3",
+ muzzle: (-52, -54, 740),
+
+ loc: (-52, -54, 710),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 4",
+ abrv: "Graser-4",
+ muzzle: ( 52, -54, 740),
+
+ loc: ( 52, -54, 710),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Athena1",
+ design: "Missile Weapon",
+ name: "Starboard Missile",
+ abrv: "Athena-1",
+ muzzle: ( 75, 13, 600),
+ muzzle: ( 65, 13, 600),
+ azimuth: 15,
+
+ loc: ( 60, 0, 400),
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Athena2",
+ design: "Missile Weapon",
+ name: "Port Missile",
+ abrv: "Athena-2",
+ muzzle: (-75, 13, 600),
+ muzzle: (-65, 13, 600),
+ azimuth: -15,
+
+ loc: (-60, 0, 400),
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-1",
+ abrv: "PDB 1",
+ loc: ( 0, 80, 575),
+
+ azimuth: 0,
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-2",
+ abrv: "PDB 2",
+ loc: ( 0, 110,-550),
+
+ azimuth: 180,
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-3",
+ abrv: "PDB 3",
+ loc: (190, 72, -275),
+
+ azimuth: 90,
+ aim_az_max: 95,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-4",
+ abrv: "PDB 4",
+ loc: (-190, 72, -275),
+
+ azimuth: 270,
+ aim_az_max: 75,
+ aim_az_min: -95,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.5
+}
+
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, 32, 380),
+ size: 24,
+ hull_factor: 0.1
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: (0, -64, 400),
+
+ loc: (0, -40, 400),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, -32, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -32, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 32, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.66,
+ period: 2.5,
+
+ light: { loc: ( 235, 0,-190), pattern: 0x11000000, type: 3 },
+ light: { loc: (-235, 0,-190), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0, 150,-285), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0, 108, 192), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0, -60, 192), pattern: 0x00000120, type: 1 },
+}
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-550),
+ debris_mass: 17e3,
+ debris_count: 1,
+ debris_life: 350,
+
+ debris: "Debris1B.mag",
+ debris_loc: (320,0,10),
+ debris_mass: 13e3,
+ debris_count: 1,
+ debris_life: 380,
+
+ debris: "CourageousDebris2.mag",
+ debris_loc: (0,0,500),
+ debris_mass: 18e3,
+ debris_count: 1,
+ debris_life: 380,
+
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 55,
+ debris_count: 35,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 44,
+ debris_count: 30,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 33,
+ debris_count: 22,
+ debris_life: 35,
+}
+
+
+map: {
+ sprite: "DevastatorMap0.pcx",
+ sprite: "DevastatorMap1.pcx",
+ sprite: "DevastatorMap2.pcx",
+ sprite: "DevastatorMap3.pcx",
+ sprite: "DevastatorMap4.pcx",
+ sprite: "DevastatorMap5.pcx",
+ sprite: "DevastatorMap6.pcx",
+ sprite: "DevastatorMap7.pcx"
+}
+
+
+
+
+
+
diff --git a/data/content/Ships/Alliance_Ships/Orion.def b/data/content/Ships/Alliance_Ships/Orion.def
new file mode 100644
index 0000000..1077c71
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Orion.def
@@ -0,0 +1,515 @@
+SHIP
+
+name: Orion
+display_name: Orion
+class: Carrier
+description: "ship.orion"
+
+degrees: true
+beauty: (-9, 5, 1.33)
+hud_icon: "OrionHud.pcx"
+
+detail_0: "Orion0z.mag"
+feature_0: 1000
+detail_1: "Orion1z.mag"
+feature_1: 40
+detail_2: "Orion2z.mag"
+feature_2: 25
+
+mass: 957e3
+agility: 1
+vlimit: 220
+roll_rate: 7
+integrity: 75e3
+scale: 4
+acs: 1.5
+
+trans_x: 3e6
+trans_y: 3e6
+trans_z: 3e6
+
+arcade_drag: 4.5e-2
+drag: 1e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 600, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, -48, -180),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+ }
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 40e3,
+ scale: 10,
+
+ port: ( 75, 31, -1160)
+ port: ( 75, -10, -1160)
+ port: ( 0, 31, -1160)
+ port: ( 0, -10, -1160)
+ port: (-75, 31, -1160)
+ port: (-75, -10, -1160)
+
+ loc: (0, 48, -1240),
+ size: 120
+ hull_factor: 0.3,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 4
+
+ port_left: {loc:(-176, 0,-819), fire: 0x0041}
+ port_left: {loc:(-405, -5,-362), fire: 0x0041}
+ port_left: {loc:(-239, -5, 717), fire: 0x0081}
+
+ port_right: {loc:( 175, 0,-819), fire: 0x0082}
+ port_right: {loc:( 405, -5,-362), fire: 0x0082}
+ port_right: {loc:( 238, -5, 717), fire: 0x0042}
+
+ port_fore: {loc:(-368, 35,-308), fire: 0x0044}
+ port_fore: {loc:(-368, -43,-308), fire: 0x0044}
+ port_fore: {loc:( 367, 35,-308), fire: 0x0084}
+ port_fore: {loc:( 367, -43,-308), fire: 0x0084}
+
+ port_aft: {loc:(-76, -66,-1047), fire: 0x0008}
+ port_aft: {loc:( 0, -66,-1047), fire: 0x0008}
+ port_aft: {loc:( 76, -66,-1047), fire: 0x0008}
+
+ port_top: {loc:(-368, 73,-358), fire: 0x0410}
+ port_top: {loc:(-368, 73,-617), fire: 0x0410}
+ port_top: {loc:( 367, 73,-358), fire: 0x0810}
+ port_top: {loc:( 367, 73,-617), fire: 0x0810}
+
+ port_bottom: {loc:(-368, -79,-358), fire: 0x0820}
+ port_bottom: {loc:(-368, -79,-617), fire: 0x0820}
+ port_bottom: {loc:( 367, -79,-358), fire: 0x0420}
+ port_bottom: {loc:( 367, -79,-617), fire: 0x0420}
+
+ port_top: {loc:(-191, 83, 716), fire: 0x0210}
+ port_top: {loc:( 191, 83, 716), fire: 0x0210}
+
+ port_bottom: {loc:(-191, -93, 716), fire: 0x0120}
+ port_bottom: {loc:( 191, -93, 716), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "OShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+ }
+
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 1",
+ abrv: "GUN 1",
+ loc: (128, 95, 704),
+
+ azimuth: 60,
+ aim_az_max: 90,
+ aim_az_min: -60,
+ aim_az_rest: -60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 2",
+ abrv: "GUN 2",
+ loc: (-128,95, 704),
+
+ azimuth: -60,
+ aim_az_max: -90,
+ aim_az_min: 60,
+ aim_az_rest: 60,
+
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 3",
+ abrv: "GUN 3",
+ loc: (128, 95, 228),
+
+ azimuth: 90,
+ aim_az_max: 75,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 4",
+ abrv: "GUN 4",
+ loc: (-128,95, 228),
+
+ azimuth: -90,
+ aim_az_max: -75,
+ aim_az_min: 75,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 5",
+ abrv: "GUN 5",
+ loc: (64, 103, -830),
+
+ azimuth: 180,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 6",
+ abrv: "GUN 6",
+ loc: (-64, 103, -830),
+
+ azimuth: 180,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 1",
+ group: "PDB",
+ loc: ( 0, 70, 960),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 2",
+ group: "PDB",
+ loc: ( 0, -75, 960),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 3",
+ group: "PDB",
+ loc: ( 64,-132, -830),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 4",
+ group: "PDB",
+ loc: (-64,-132, -830),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 10, 0, 920)
+ cam: ( 0, 0, 885)
+ start: ( 60, -20, 850)
+ end: (2e3, 15, 3500),
+
+ spot: { loc: ( 45, -20, 825), filter: 0x7 },
+ spot: { loc: ( 75, -20, 825), filter: 0x7 },
+ spot: { loc: ( 60, -20, 825), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 170,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: ( -10, 0, 920)
+ cam: ( 0, 0, 885)
+ start: ( -60, -20, 850)
+ end: (-2e3, 15, 3500),
+
+ spot: { loc: (-45, -20, 825), filter: 0x7 },
+ spot: { loc: (-75, -20, 825), filter: 0x7 },
+ spot: { loc: (-60, -20, 825), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 170,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 3",
+ abrv: "Deck 3",
+ design: "Flight Deck",
+ loc: ( 305, 0, -550)
+ cam: ( 340, 10, -475)
+ start: ( 305, 0, -1950)
+ end: ( 305, -12, -500)
+
+ approach: ( 280, 0, -2300)
+ approach: (1500, 0, -1000)
+ approach: (1500, 0, 1000)
+ approach: ( 250, 0, 2500)
+
+ spot: ( 305, -12, -500)
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 12,
+
+ size: 120,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 4",
+ abrv: "Deck 4",
+ design: "Flight Deck",
+ loc: ( -305, 0, -550)
+ cam: ( -340, 10, -475)
+ start: ( -305, 0, -1950)
+ end: ( -305, -12, -500)
+
+ approach: ( -280, 0, -2300)
+ approach: (-1500, 0, -1000)
+ approach: (-1500, 0, 1000)
+ approach: ( -250, 0, 2500)
+
+ spot: ( -305, -12, -500)
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 12,
+
+ size: 120,
+ hull_factor: 0.5,
+ }
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 10e3,
+
+ loc: (0, 0, -150),
+ hull_factor: 0.8
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 1000
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (20, 80, -190),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, -120),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "OrionDebris1.mag",
+ debris_loc: (0,0,650),
+ debris_mass: 40e3,
+ debris_count: 1,
+ debris_life: 550,
+ debris_fire: (-130, 0,-420),
+ debris_fire: ( 135,50, 0),
+
+ debris: "OrionDebris2.mag",
+ debris_loc: (-20,20,-500),
+ debris_mass: 40e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: ( 124, 0, 120)
+ debris_fire: ( 105, 90, 0)
+ debris_fire: (-125,-10,-360)
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,120),
+ debris_mass: 33,
+ debris_count: 25,
+ debris_life: 35,
+
+ debris: "Debris0B.mag",
+ debris_loc: (130,0,0),
+ debris_mass: 34,
+ debris_count: 22,
+ debris_life: 25,
+ }
+
+map: {
+ sprite: "OrionMap0.pcx",
+ sprite: "OrionMap1.pcx",
+ sprite: "OrionMap2.pcx",
+ sprite: "OrionMap3.pcx",
+ sprite: "OrionMap4.pcx",
+ sprite: "OrionMap5.pcx",
+ sprite: "OrionMap6.pcx",
+ sprite: "OrionMap7.pcx"
+}
+
+
+
+
diff --git a/data/content/Ships/Alliance_Ships/Spectre.def b/data/content/Ships/Alliance_Ships/Spectre.def
new file mode 100644
index 0000000..130772e
--- /dev/null
+++ b/data/content/Ships/Alliance_Ships/Spectre.def
@@ -0,0 +1,415 @@
+SHIP
+
+name: Spectre
+display_name: Spectre
+class: Destroyer
+description: "ship.spectre"
+
+degrees: true
+beauty: (-16, 4, 1.3)
+hud_icon: "SpectreHud.pcx"
+
+detail_0: "Spectre_0opt.mag"
+feature_0: 1000
+detail_1: "Spectre_1opt.mag"
+feature_1: 40
+detail_2: "Spectre_3opt.mag"
+feature_2: 20
+
+mass: 22.5e3
+agility: 3
+vlimit: 300
+roll_rate: 7
+integrity: 25e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ name: "Reactor One",
+ max_output: 8000,
+
+ loc: (0, -48, -180),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 4000,
+ scale: 4,
+ port: (-23, -6, -630)
+ port: (-23, -31, -630)
+ port: ( 23, -6, -630)
+ port: ( 23, -31, -630)
+
+ loc: (0, -20, -480),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -74, 0,-402), fire: 0x0041}
+ port_left: {loc:( -74, 0,-366), fire: 0x0041}
+ port_left: {loc:( -49, 34, 391), fire: 0x0081}
+ port_left: {loc:( -49, 34, 404), fire: 0x0081}
+
+ port_right: {loc:( 74, 0,-402), fire: 0x0082}
+ port_right: {loc:( 74, 0,-366), fire: 0x0082}
+ port_right: {loc:( 49, 34, 391), fire: 0x0042}
+ port_right: {loc:( 49, 34, 404), fire: 0x0042}
+
+ port_fore: {loc:(-220, -15, -20), fire: 0x0044}
+ port_fore: {loc:(-205, -15, -20), fire: 0x0044}
+ port_fore: {loc:( 204, -15, -20), fire: 0x0084}
+ port_fore: {loc:( 219, -15, -20), fire: 0x0084}
+
+ port_aft: {loc:(-220, -15,-338), fire: 0x0088}
+ port_aft: {loc:(-205, -15,-338), fire: 0x0088}
+ port_aft: {loc:( 204, -15,-338), fire: 0x0048}
+ port_aft: {loc:( 219, -15,-338), fire: 0x0048}
+
+ port_top: {loc:( -20, 32,-492), fire: 0x0110}
+ port_top: {loc:( 20, 32,-492), fire: 0x0110}
+
+ port_bottom: {loc:( -20,-104,-492), fire: 0x0220}
+ port_bottom: {loc:( 20,-104,-492), fire: 0x0220}
+
+ port_top: {loc:(-212, 15,-125), fire: 0x0410}
+ port_top: {loc:(-212, 15,-233), fire: 0x0410}
+ port_top: {loc:( 212, 15,-125), fire: 0x0810}
+ port_top: {loc:( 212, 15,-233), fire: 0x0810}
+
+ port_bottom: {loc:(-212, -73,-125), fire: 0x0820}
+ port_bottom: {loc:(-212, -73,-233), fire: 0x0820}
+ port_bottom: {loc:( 212, -73,-125), fire: 0x0420}
+ port_bottom: {loc:( 212, -73,-233), fire: 0x0420}
+
+ port_top: {loc:( -32, 63, 383), fire: 0x0210}
+ port_top: {loc:( 31, 63, 383), fire: 0x0210}
+
+ port_bottom: {loc:( -32, -72, 383), fire: 0x0120}
+ port_bottom: {loc:( 31, -72, 383), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "Spectre_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ name: "Reactor Two",
+ max_output: 1500
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-36, -9, 467),
+
+ loc: (-36, -9, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 36, -9, 467),
+
+ loc: ( 36, -9, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-14, -23, 467),
+
+ loc: (-14, -23, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 14, -23, 467),
+
+ loc: ( 14, -23, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Starboard Torpedo",
+ abrv: "Torp-1",
+ muzzle: (192, -32, -120),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Port Torpedo",
+ abrv: "Torp-2",
+ muzzle: (-192, -32, -120),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port/Fwd Phalanx",
+ abrv: "Fwd PDB 1",
+ group: "FWD PDB",
+ loc: (-211, -50, -106),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd/Fwd Phalanx",
+ abrv: "Fwd PDB 2",
+ group: "FWD PDB",
+ loc: ( 211, -50, -106),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port/Aft Phalanx",
+ abrv: "Aft PDB 1",
+ group: "AFT PDB",
+ loc: (-211, -50, -255),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd/Aft Phalanx",
+ abrv: "Aft PDB 2",
+ group: "AFT PDB",
+ loc: ( 211, -50, -255),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+navlight: {
+ scale: 0.35,
+ period: 2.4,
+
+ light: { loc: ( 245,-12,-180), pattern: 0x12000000, type: 3 },
+ light: { loc: (-245,-12,-180), pattern: 0x00120000, type: 2 },
+ light: { loc: ( 0, 65, 320), pattern: 0x03000300, type: 1 },
+ light: { loc: ( 0, 55,-320), pattern: 0x00030003, type: 1 }
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-450),
+ debris_mass: 17e3,
+ debris_count: 1,
+ debris_life: 350,
+
+ debris: "Debris1B.mag",
+ debris_loc: (220,0,10),
+ debris_mass: 13e3,
+ debris_count: 1,
+ debris_life: 380,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 54,
+ debris_count: 25,
+ debris_life: 45,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 43,
+ debris_count: 20,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 32,
+ debris_count: 10,
+ debris_life: 35,
+}
+
+
+map: {
+ sprite: "SpectreMap0.pcx",
+ sprite: "SpectreMap1.pcx",
+ sprite: "SpectreMap2.pcx",
+ sprite: "SpectreMap3.pcx",
+ sprite: "SpectreMap4.pcx",
+ sprite: "SpectreMap5.pcx",
+ sprite: "SpectreMap6.pcx",
+ sprite: "SpectreMap7.pcx"
+}
+
+
+
+
+
diff --git a/data/content/Ships/Dantari_Ships/Baikal.def b/data/content/Ships/Dantari_Ships/Baikal.def
new file mode 100644
index 0000000..cc2b269
--- /dev/null
+++ b/data/content/Ships/Dantari_Ships/Baikal.def
@@ -0,0 +1,314 @@
+SHIP
+
+name: Baikal
+display_name: Baikal
+class: Frigate
+description: "ship.baikal"
+
+degrees: true
+beauty: (-22, 7, 1.1)
+hud_icon: "BaikalHud.pcx"
+
+detail_0: "Frigate_0opt.mag"
+feature_0: 1000
+detail_1: "Frigate_1opt.mag"
+feature_1: 32
+detail_2: "Frigate_2opt.mag"
+feature_2: 16
+
+mass: 9.53e3
+agility: 3.8
+vlimit: 300
+roll_rate: 8
+integrity: 21e3
+scale: 1.6
+acs: 1
+degrees: true
+
+trans_x: 85e3
+trans_y: 35e3
+trans_z: 85e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ abrv: Drive
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 3,
+ port: ( 0, 43,-435),
+ port: ( 42, 0,-435),
+ port: (-42, 0,-435),
+ port: ( 0,-43,-435),
+
+ loc: (0, 0, -220),
+ size: 32,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster
+ type: Yellow,
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -88, 0,-356), fire: 0x0041}
+ port_left: {loc:( -72, -19, 453), fire: 0x0081}
+ port_left: {loc:( -72, 19, 453), fire: 0x0081}
+
+ port_right: {loc:( 88, 0,-356), fire: 0x0082}
+ port_right: {loc:( 72, -19, 453), fire: 0x0042}
+ port_right: {loc:( 72, 19, 453), fire: 0x0042}
+
+ port_fore: {loc:( -54, -19, 498), fire: 0x0044}
+ port_fore: {loc:( -21, -41, 498), fire: 0x0044}
+ port_fore: {loc:( 21, -41, 498), fire: 0x0084}
+ port_fore: {loc:( 54, -19, 498), fire: 0x0084}
+
+ port_top: {loc:( -64, 29,-319), fire: 0x0510}
+ port_top: {loc:( 64, 29,-319), fire: 0x0910}
+
+ port_bottom: {loc:( -64, -29,-319), fire: 0x0A20}
+ port_bottom: {loc:( 64, -29,-319), fire: 0x0620}
+
+ port_top: {loc:( -19, 60, 452), fire: 0x0610}
+ port_top: {loc:( 19, 60, 452), fire: 0x0A10}
+
+ port_bottom: {loc:( -19, -60, 452), fire: 0x0920}
+ port_bottom: {loc:( 19, -60, 452), fire: 0x0520}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.7
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: Shield
+ factor: 0.02,
+ consumption: 1500,
+ // model: "BaikalShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100
+ loc: (0, 20, -80)
+ size: 16
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Fwd Cannon",
+ abrv: "Plasma 1",
+ muzzle: (0, 25, 540),
+ azimuth: 0,
+
+ loc: (0, 25, 500),
+ size: 24,
+ hull_factor: 0.1
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7",
+ muzzle: (-20, 0, 450),
+ muzzle: ( 20, 0, 450),
+ azimuth: 0,
+
+ loc: (-50, 0, -40),
+ size: 16,
+ hull_factor: 0.1
+}
+
+weapon: {
+ type: "Ursa Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Cannon",
+ abrv: "PDB 1",
+
+ loc: ( 85, 0, -30),
+ muzzle: ( 0, 0, 70),
+ azimuth: 90
+ rest_azimuth: -90
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Ursa Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ abrv: "PDB 2",
+
+ loc: (-85, 0, -30),
+ muzzle: ( 0, 0, 70),
+ azimuth: -90
+ rest_azimuth: 90
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.3
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisFrigate1.mag",
+ debris_loc: (0,0,-150),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 44, 24, 84),
+ debris_fire: (-41,-24,100),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 10,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 20,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 2,
+ debris_count: 10,
+ debris_life: 22,
+
+ }
+
+map: {
+ sprite: "BaikalMap0.pcx",
+ sprite: "BaikalMap1.pcx",
+ sprite: "BaikalMap2.pcx",
+ sprite: "BaikalMap3.pcx",
+ sprite: "BaikalMap4.pcx",
+ sprite: "BaikalMap5.pcx",
+ sprite: "BaikalMap6.pcx",
+ sprite: "BaikalMap7.pcx"
+}
+
+
diff --git a/data/content/Ships/Dantari_Ships/Goliath.def b/data/content/Ships/Dantari_Ships/Goliath.def
new file mode 100644
index 0000000..6992605
--- /dev/null
+++ b/data/content/Ships/Dantari_Ships/Goliath.def
@@ -0,0 +1,363 @@
+SHIP
+
+name: Goliath
+display_name: Goliath
+class: Carrier
+description: "ship.goliath"
+
+hud_icon: "GoliathHud.pcx"
+
+detail_0: "Goliath_1opt.mag"
+feature_0: 1000
+detail_1: "Goliath_2opt.mag"
+feature_1: 48
+
+mass: 782e3
+agility: 1
+vlimit: 220
+roll_rate: 7
+integrity: 75e3
+scale: 3.3
+acs: 1.5
+
+trans_x: 1e6
+trans_y: 5e5
+trans_z: 1e6
+
+arcade_drag: 4.5e-2
+drag: 1e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 50e3,
+
+ loc: (0, 4, -280),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 25e3,
+ scale: 12,
+ port: ( 54, -84, -489),
+ port: (-54, -84, -489),
+ port: ( 0, -57, -527),
+ port: ( 0,-111, -489),
+
+ loc: (0, 0, -450),
+ size: 50,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3,
+ countdown: 7.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 6000,
+ // model: "GoliathShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 1100,
+
+ loc: (0, 0, -100),
+ hull_factor: 0.8
+}
+
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 1",
+ abrv: "PDB 1",
+ loc: (104, -17, 64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: 60,
+ aim_az_max: 90,
+ aim_az_min: -60,
+ aim_az_rest: -60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 2",
+ abrv: "PDB 2",
+ loc: (-104, -17, 64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: -60,
+ aim_az_max: -90,
+ aim_az_min: 60,
+ aim_az_rest: 60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 3",
+ abrv: "PDB 3",
+ loc: (104, -17, -64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: 90,
+ aim_az_max: 75,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 4",
+ abrv: "PDB 4",
+ loc: (-104, -17, -64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: -90,
+ aim_az_max: -75,
+ aim_az_min: 75,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 0, -85, 192),
+ cam: (-20, -85, 192),
+ start: ( 0, -85, 170),
+ end: (2e3,-200, 2500),
+
+ spot: { loc: ( 16, -85, 160), filter: 0x7 },
+ spot: { loc: (-16, -85, 160), filter: 0x7 },
+ spot: { loc: ( 0, -85, 160), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: ( 0, -82, -92),
+ cam: (-20, -72, -92),
+ start: ( 0, -90, -1e3),
+ end: ( 0, -82, -92),
+ spot: ( 0, -82, -92),
+
+ approach: ( 0,-90, -2000),
+ approach: (1000, 0, -1000),
+ approach: (1000, 0, 1000),
+ approach: ( 250, 0, 2500),
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 15,
+
+ size: 40,
+ hull_factor: 0.5,
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "GoliathMap0.pcx",
+ sprite: "GoliathMap1.pcx",
+ sprite: "GoliathMap2.pcx",
+ sprite: "GoliathMap3.pcx",
+ sprite: "GoliathMap4.pcx",
+ sprite: "GoliathMap5.pcx",
+ sprite: "GoliathMap6.pcx",
+ sprite: "GoliathMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisGoliath1.mag",
+ debris_loc: (0,0,400),
+ debris_mass: 91e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (44,-34,64),
+ debris_fire: (34,-44,-30),
+
+ debris: "DebrisGoliath2.mag",
+ debris_loc: (0,0,-290),
+ debris_mass: 61e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: (64, 34,74),
+ debris_fire: (64,-32,-70),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 22,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 16,
+ debris_count: 15,
+ debris_life: 28,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 11,
+ debris_count: 10,
+ debris_life: 32,
+
+}
+
diff --git a/data/content/Ships/Dantari_Ships/Wolf.def b/data/content/Ships/Dantari_Ships/Wolf.def
new file mode 100644
index 0000000..92d5a0c
--- /dev/null
+++ b/data/content/Ships/Dantari_Ships/Wolf.def
@@ -0,0 +1,367 @@
+SHIP
+
+name: Wolf
+display_name: Wolf
+class: Destroyer
+description: "ship.wolf"
+
+degrees: true
+beauty: (-7, 4, 1.1)
+hud_icon: "WolfHud.pcx"
+
+detail_0: "Destroyer_0opt.mag"
+feature_0: 1000
+detail_1: "Destroyer_1opt.mag"
+feature_1: 32
+detail_2: "Destroyer_2opt.mag"
+feature_2: 16
+
+mass: 15.8e3
+agility: 3.5
+vlimit: 240
+roll_rate: 7
+integrity: 18e3
+scale: 1.7
+acs: 1.2
+
+scuttle: 6e3
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7000,
+
+ loc: (0, -40, -220),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 1250,
+ scale: 5,
+ port: (-88, 10, -808),
+ port: ( 0, 12, -808),
+ port: ( 85, 10, -808),
+
+ loc: (0, 0, -400),
+ size: 50,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+
+thruster: {
+ design: Thruster
+ type: Yellow,
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 2
+
+ port_left: {loc:(-170, 9,-601), fire: 0x0041}
+ port_left: {loc:(-170, 9,-579), fire: 0x0041}
+ port_left: {loc:(-100, 18, 786), fire: 0x0081}
+ port_left: {loc:(-100, -34, 786), fire: 0x0081}
+
+ port_right: {loc:( 170, 9,-601), fire: 0x0082}
+ port_right: {loc:( 170, 9,-579), fire: 0x0082}
+ port_right: {loc:( 100, 18, 786), fire: 0x0042}
+ port_right: {loc:( 100, -34, 786), fire: 0x0042}
+
+ port_fore: {loc:( -73, -34, 845), fire: 0x0044}
+ port_fore: {loc:( -30, -63, 845), fire: 0x0044}
+ port_fore: {loc:( 30, -63, 845), fire: 0x0084}
+ port_fore: {loc:( 73, -34, 845), fire: 0x0084}
+
+ port_aft: {loc:( -45, 48,-770), fire: 0x0088}
+ port_aft: {loc:( -45, -27,-770), fire: 0x0088}
+ port_aft: {loc:( 42, 48,-770), fire: 0x0048}
+ port_aft: {loc:( 42, -27,-770), fire: 0x0048}
+
+ port_top: {loc:( -80, 87,-601), fire: 0x0510}
+ port_top: {loc:( 77, 87,-601), fire: 0x0910}
+
+ port_bottom: {loc:( -80, -69,-601), fire: 0x0A20}
+ port_bottom: {loc:( 77, -69,-601), fire: 0x0620}
+
+ port_top: {loc:( -26, 71, 783), fire: 0x0610}
+ port_top: {loc:( 25, 71, 783), fire: 0x0A10}
+
+ port_bottom: {loc:( -26, -85, 783), fire: 0x0920}
+ port_bottom: {loc:( 25, -85, 783), fire: 0x0520}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3,
+ countdown: 7.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 6000,
+ // model: "WolfShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 1100,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.8
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-25, 23, 907),
+
+ loc: (-25, 23, 800),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 25, 23, 907),
+
+ loc: ( 25, 23, 800),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 82, 500),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Orca Inverted",
+ design: "Bolt Weapon",
+ name: "Chin Cannon",
+ muzzle: ( 4, -11, 75),
+ muzzle: (-4, -11, 75),
+
+ loc: ( 0, -102, 500),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 60, 50, 38),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: 90
+ rest_azimuth: -90
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (-60, 50, 38),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: -90
+ rest_azimuth: 90
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 70, -256),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: 180
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "WolfMap0.pcx",
+ sprite: "WolfMap1.pcx",
+ sprite: "WolfMap2.pcx",
+ sprite: "WolfMap3.pcx",
+ sprite: "WolfMap4.pcx",
+ sprite: "WolfMap5.pcx",
+ sprite: "WolfMap6.pcx",
+ sprite: "WolfMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisDestroyer2.mag",
+ debris_loc: (0,0,520),
+ debris_mass: 21e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: (44, 14,-314),
+ debris_fire: (34,-24,-306),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 20,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 30,
+
+}
+
diff --git a/data/content/Ships/Farcaster/Farcaster.def b/data/content/Ships/Farcaster/Farcaster.def
new file mode 100644
index 0000000..66644be
--- /dev/null
+++ b/data/content/Ships/Farcaster/Farcaster.def
@@ -0,0 +1,146 @@
+SHIP
+
+name: Farcaster
+class: Farcaster
+description: "ship.farcaster"
+
+model: "Farcaster.mag"
+
+mass: 5e6
+integrity: 3e6
+scale: 15.0
+acs: 320e3
+
+drag: 100
+roll_drag: 100
+pitch_drag: 100
+yaw_drag: 100
+
+chase: (0, -750, 80)
+bridge: (0, 0, 24)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, -32),
+ size: 64,
+ hull_factor: 0.5
+ }
+
+farcaster: {
+ approach: (0, 0, -2000),
+ start: (0, 0, 0),
+ end: (0, 0, 1000),
+
+ loc: (0, 0, 0),
+ size: 128,
+ hull_factor: 0.5
+ }
+
+navlight: {
+ scale: 6,
+ period: 1.5,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 3 },
+
+ light: { loc: ( 138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42, 257), pattern: 0xf0000000, type: 3 },
+}
+
+navlight: {
+ scale: 6,
+ period: 1,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138,-42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: (-138, 42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 2 },
+
+ light: { loc: (-138,-42, 257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138, 42, 257), pattern: 0x00f00000, type: 2 },
+}
+
+map: {
+ sprite: "map.pcx"
+}
+
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-150, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (160, 40, 100),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (230, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (220, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (-160, 80, -90),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (-160, 80, -90),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1.mag",
+ debris_loc: (180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (-10,0,0),
+ debris_fire: ( 15,20,10),
+
+ debris: "Debris2.mag",
+ debris_loc: (-160,-120,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 500,
+
+ debris: "Debris3.mag",
+ debris_loc: (-180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 4,0,10),
+ debris_fire: (25,20,0),
+ debris_fire: ( 5,-10,-20),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,20,0),
+ debris_mass: 1,
+ debris_count: 8,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (10,0,0),
+ debris_mass: 1,
+ debris_count: 12,
+ debris_life: 15,
+ }
+
diff --git a/data/content/Ships/Farcaster/Farcaster2.def b/data/content/Ships/Farcaster/Farcaster2.def
new file mode 100644
index 0000000..c5a507a
--- /dev/null
+++ b/data/content/Ships/Farcaster/Farcaster2.def
@@ -0,0 +1,153 @@
+SHIP
+
+name: Farcaster2
+class: Farcaster
+description: "ship.farcaster2"
+
+model: "FC2a.mag"
+model: "FC2b.mag"
+model: "FC2c.mag"
+
+spin: (0.0, 0.1, 0.0)
+spin: (0.0,-0.1, 0.0)
+spin: (0.0, 0.0, 0.0)
+
+
+mass: 5e6
+integrity: 3e6
+scale: 20.0
+acs: 320e3
+
+drag: 100
+roll_drag: 100
+pitch_drag: 100
+yaw_drag: 100
+
+chase: (0, -750, 80)
+bridge: (0, 0, 24)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, -32),
+ size: 64,
+ hull_factor: 0.5
+ }
+
+farcaster: {
+ approach: (0, 0, -2000),
+ start: (0, 0, 0),
+ end: (0, 0, 1000),
+
+ loc: (0, 0, 0),
+ size: 128,
+ hull_factor: 0.5
+ }
+
+navlight: {
+ scale: 6,
+ period: 1.5,
+
+ light: { loc: (-162, 0, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 162, 0, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 0,-162, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 0, 162, 0), pattern: 0xf0000000, type: 3 },
+
+ light: { loc: (-114,-114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-114, 114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 114,-114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 114, 114, 0), pattern: 0xf0000000, type: 3 },
+}
+
+navlight: {
+ scale: 6,
+ period: 1,
+
+ light: { loc: (-162, 0, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 162, 0, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 0,-162, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 0, 162, 0), pattern: 0xf0000000, type: 2 },
+
+ light: { loc: (-114,-114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: (-114, 114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 114,-114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 114, 114, 0), pattern: 0x00f00000, type: 2 },
+}
+
+map: {
+ sprite: "map.pcx"
+}
+
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-150, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (160, 40, 100),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (230, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (220, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (-160, 80, -90),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (-160, 80, -90),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1.mag",
+ debris_loc: (180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (-10,0,0),
+ debris_fire: ( 15,20,10),
+
+ debris: "Debris2.mag",
+ debris_loc: (-160,-120,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 500,
+
+ debris: "Debris3.mag",
+ debris_loc: (-180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 4,0,10),
+ debris_fire: (25,20,0),
+ debris_fire: ( 5,-10,-20),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,20,0),
+ debris_mass: 1,
+ debris_count: 8,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (10,0,0),
+ debris_mass: 1,
+ debris_count: 12,
+ debris_life: 15,
+ }
+
diff --git a/data/content/Ships/Marakan_Fighters/Avenger.def b/data/content/Ships/Marakan_Fighters/Avenger.def
new file mode 100644
index 0000000..dc3528d
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Avenger.def
@@ -0,0 +1,360 @@
+SHIP
+
+name: Avenger
+display_name: Avenger
+class: attack
+abrv: "F6F"
+description: "ship.avenger"
+
+hud_icon: "AvengerHud.pcx"
+
+detail_0: "Avenger_1opt.mag"
+feature_0: 25
+detail_1: "Avenger_2opt.mag"
+feature_1: 0.5
+
+mass: 27.4
+integrity: 3500
+vlimit: 250
+agility: 72
+air_factor: 0.25
+roll_rate: 600
+scale: 0.27
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.18
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 256, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 39, 7, -176),
+ port: ( 0, 25, -185),
+ port: (-39, 7, -176),
+ loc: ( 0, 0, -120),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-33, -21, 205),
+ muzzle: (-17, -24, 180),
+ muzzle: ( 17, -24, 180),
+ muzzle: ( 31, -21, 205),
+
+ loc: (0, 0, 160),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-111, -35, -135),
+
+ loc: (-111, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -93, -34, -130),
+
+ loc: ( -93, -34, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( -76, -33, -125),
+
+ loc: ( -76, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( -58, -32, -120),
+
+ loc: ( -58, -32, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-5",
+ muzzle: ( 58, -32, -120),
+
+ loc: ( 58, -32, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( 76, -33, -125),
+
+ loc: ( 76, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-7",
+ muzzle: ( 93, -34, -130),
+
+ loc: ( 93, -34, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-8",
+ muzzle: ( 111, -35, -135),
+
+ loc: ( 111, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 3, 3, 3, 3, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 0, 1, 4, 4, 1, 0, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, 1, -1, -1, 1, 0, -1) }
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 144),
+ end: (0, -45, 155)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -25, -64),
+ end: (-42, -50, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -25, -64),
+ end: ( 42, -50, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-161, -30, -67), fire: 0x0044}
+ port_fore: {loc:( 161, -30, -67), fire: 0x0084}
+
+ port_aft: {loc:(-161, -30,-134), fire: 0x0088}
+ port_aft: {loc:( 161, -30,-134), fire: 0x0048}
+
+ port_top: {loc:( -6, 11, 54), fire: 0x0210}
+ port_top: {loc:( 5, 11, 54), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -24, 59), fire: 0x0120}
+ port_bottom: {loc:( 14, -24, 59), fire: 0x0120}
+
+ port_top: {loc:(-161, -25, -81), fire: 0x0410}
+ port_top: {loc:(-161, -25,-121), fire: 0x0410}
+
+ port_top: {loc:( 161, -25, -81), fire: 0x0810}
+ port_top: {loc:( 161, -25,-121), fire: 0x0810}
+
+ port_bottom: {loc:(-161, -35, -81), fire: 0x0820}
+ port_bottom: {loc:(-161, -35,-121), fire: 0x0A20}
+
+ port_bottom: {loc:( 161, -35, -81), fire: 0x0420}
+ port_bottom: {loc:( 161, -35,-121), fire: 0x0620}
+
+ port_left: {loc:( -25, -9, 173), fire: 0x0081}
+ port_right: {loc:( 25, -9, 173), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.8,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.7,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 195
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 225
+}
+
+
+
+map: {
+ sprite: "AvengerMap0.pcx",
+ sprite: "AvengerMap1.pcx",
+ sprite: "AvengerMap2.pcx",
+ sprite: "AvengerMap3.pcx",
+ sprite: "AvengerMap4.pcx",
+ sprite: "AvengerMap5.pcx",
+ sprite: "AvengerMap6.pcx",
+ sprite: "AvengerMap7.pcx",
+}
+
+
diff --git a/data/content/Ships/Marakan_Fighters/Cobra.def b/data/content/Ships/Marakan_Fighters/Cobra.def
new file mode 100644
index 0000000..61d1f88
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Cobra.def
@@ -0,0 +1,332 @@
+SHIP
+
+name: Cobra
+display_name: Cobra
+class: Attack
+abrv: "F-MK3"
+description: "ship.cobra"
+
+
+hud_icon: "CobraHud.pcx"
+
+detail_0: "Cobra_0opt.mag"
+feature_0: 0.1
+detail_1: "Cobra_2opt.mag"
+feature_1: 1.5
+
+mass: 19.3
+integrity: 2800
+vlimit: 280
+agility: 70
+roll_rate: 600
+scale: 0.26
+acs: 1
+detet: 55e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.16
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow
+ thrust: 15,
+ augmenter: 25,
+ scale: 0.33,
+ port: (0, 0, -203),
+
+ loc: (0, 0, -190),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 8, 175),
+ muzzle: ( 7, 8, 175),
+
+ loc: (0, 0, -32),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-1",
+ muzzle: ( 129, -21, -70),
+ loc: ( 129, -21, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: ( 105, -18, -70),
+ loc: ( 105, -18, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( 65, -16, -70),
+ loc: ( 65, -16, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-4",
+ muzzle: ( 40, -14, -70),
+ loc: ( 40, -14, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: (-40, -14, -70),
+ loc: (-40, -14, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( -65, -16, -70),
+ loc: ( -65, -16, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-7",
+ muzzle: (-105, -18, -70),
+ loc: (-105, -18, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-8",
+ muzzle: (-128, -21, -70),
+ loc: (-128, -21, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 2, 2, 2, 2, 0, 0) }
+loadout: { name: "Ship Strike", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -15, 104),
+ end: (0, -42, 118)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-28, -22, -48),
+ end: (-42, -42, -48)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 28, -22, -48),
+ end: ( 42, -42, -48)
+ },
+}
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-166, -15, -10), fire: 0x0044}
+ port_fore: {loc:( 167, -15, -10), fire: 0x0084}
+
+ port_aft: {loc:(-166, -15, -70), fire: 0x0088}
+ port_aft: {loc:( 167, -15, -70), fire: 0x0048}
+
+ port_top: {loc:( -29, 2,-117), fire: 0x0110}
+ port_top: {loc:( 29, 2,-117), fire: 0x0110}
+
+ port_top: {loc:( -24, 2, 65), fire: 0x0210}
+ port_top: {loc:( 24, 2, 65), fire: 0x0210}
+
+ port_bottom: {loc:( -29, -8,-117), fire: 0x0120}
+ port_bottom: {loc:( 29, -8,-117), fire: 0x0120}
+
+ port_bottom: {loc:( -24, -8, 65), fire: 0x0120}
+ port_bottom: {loc:( 24, -8, 65), fire: 0x0120}
+
+ port_top: {loc:(-166, -9, -23), fire: 0x0410}
+ port_top: {loc:(-166, -9, -56), fire: 0x0410}
+
+ port_top: {loc:( 167, -9, -23), fire: 0x0810}
+ port_top: {loc:( 167, -9, -56), fire: 0x0810}
+
+ port_bottom: {loc:(-166, -20, -23), fire: 0x0820}
+ port_bottom: {loc:(-166, -20, -56), fire: 0x0820}
+
+ port_bottom: {loc:( 167, -20, -23), fire: 0x0420}
+ port_bottom: {loc:( 167, -20, -56), fire: 0x0420}
+}
+
+
+death_spiral: {
+ time: 2.8,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.3,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (2,0,-3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 1.9
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,6)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "CobraMap0.pcx",
+ sprite: "CobraMap1.pcx",
+ sprite: "CobraMap2.pcx",
+ sprite: "CobraMap3.pcx",
+ sprite: "CobraMap4.pcx",
+ sprite: "CobraMap5.pcx",
+ sprite: "CobraMap6.pcx",
+ sprite: "CobraMap7.pcx",
+}
+
diff --git a/data/content/Ships/Marakan_Fighters/Intruder.def b/data/content/Ships/Marakan_Fighters/Intruder.def
new file mode 100644
index 0000000..ccf9de0
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Intruder.def
@@ -0,0 +1,309 @@
+SHIP
+
+name: Intruder
+display_name: Intruder
+class: fighter
+abrv: "F4F"
+description: "ship.intruder"
+
+hud_icon: "IntruderHud.pcx"
+
+detail_0: "Interceptor_1opt.mag"
+feature_0: 25
+detail_1: "Interceptor_2opt.mag"
+feature_1: 0.5
+
+mass: 25
+integrity: 2500
+vlimit: 250
+agility: 75
+air_factor: 0.25
+roll_rate: 600
+scale: 0.25
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.15
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 240, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 28, 11, -178),
+ port: (-28, 11, -178),
+ loc: ( 0, 0, 0),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-24, -6, 145),
+ muzzle: ( 24, -6, 145),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: ( -93, -27, -125),
+
+ loc: ( -93, -27, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -62, -25, -120),
+
+ loc: ( -62, -25, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: ( 62, -25, -120),
+
+ loc: ( 62, -25, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: ( 93, -27, -125),
+
+ loc: ( 93, -27, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 2, 2, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 2, 2) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 134),
+ end: (0, -50, 148)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -30, -64),
+ end: (-45, -60, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -30, -64),
+ end: ( 45, -60, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-123, -22, -69), fire: 0x0044}
+ port_fore: {loc:( 123, -22, -69), fire: 0x0084}
+
+ port_aft: {loc:(-123, -22,-129), fire: 0x0088}
+ port_aft: {loc:( 123, -22,-129), fire: 0x0048}
+
+ port_top: {loc:( -5, 12, -99), fire: 0x0110}
+ port_top: {loc:( 5, 12, -99), fire: 0x0110}
+
+ port_top: {loc:( -5, 18, 35), fire: 0x0210}
+ port_top: {loc:( 5, 18, 35), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -8, 35), fire: 0x0120}
+ port_bottom: {loc:( 14, -8, 35), fire: 0x0120}
+
+ port_top: {loc:(-123, -17, -82), fire: 0x0410}
+ port_top: {loc:(-123, -17,-117), fire: 0x0410}
+
+ port_top: {loc:( 123, -17, -82), fire: 0x0810}
+ port_top: {loc:( 123, -17,-117), fire: 0x0810}
+
+ port_bottom: {loc:(-123, -27, -82), fire: 0x0820}
+ port_bottom: {loc:(-123, -27,-117), fire: 0x0A20}
+
+ port_bottom: {loc:( 123, -27, -82), fire: 0x0420}
+ port_bottom: {loc:( 123, -27,-117), fire: 0x0620}
+
+ port_left: {loc:( -15, 2, 128), fire: 0x0081}
+ port_right: {loc:( 15, 2, 128), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 2.9,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "IntruderMap0.pcx",
+ sprite: "IntruderMap1.pcx",
+ sprite: "IntruderMap2.pcx",
+ sprite: "IntruderMap3.pcx",
+ sprite: "IntruderMap4.pcx",
+ sprite: "IntruderMap5.pcx",
+ sprite: "IntruderMap6.pcx",
+ sprite: "IntruderMap7.pcx",
+}
+
+
+
diff --git a/data/content/Ships/Marakan_Fighters/Jackal.def b/data/content/Ships/Marakan_Fighters/Jackal.def
new file mode 100644
index 0000000..c5c140e
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Jackal.def
@@ -0,0 +1,210 @@
+SHIP
+
+name: Jackal
+display_name: Jackal
+class: LCA
+abrv: LCA
+description: "ship.jackal"
+
+hud_icon: "JackalHud.pcx"
+
+detail_0: "LCA_1opt.mag"
+feature_0: 100
+detail_1: "LCA_2opt.mag"
+feature_1: 3
+
+
+mass: 92
+integrity: 5250
+vlimit: 220
+agility: 25
+roll_rate: 350
+scale: 0.275
+acs: 1
+
+trans_x: 2500
+trans_y: 2500
+trans_z: 2500
+
+arcade_drag: 0.2
+drag: 4e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 5e-3
+CD: 1e-4
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow
+ thrust: 75,
+ scale: 0.55,
+ port: (-147, 32, -160),
+ port: (-147,-32, -160),
+ port: ( 147, 32, -160),
+ port: ( 147,-32, -160),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+thruster: {
+ design: Thruster
+ scale: 0.35
+ port: (-34, -32, -10)
+ port: ( 34, -32, -10)
+ port: (-34, -32, -128)
+ port: ( 34, -32, -128)
+
+ loc: (0, -32, -128)
+ size: 24
+ hull_factor: 0.3
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "zgear_r.mag",
+ start: ( 34, -30, -10)
+ end: ( 74, -60, -10)
+ },
+
+ gear: {
+ model: "zgear_l.mag",
+ start: (-34, -30, -10)
+ end: (-74, -60, -10)
+ },
+
+ gear: {
+ model: "zgear_r.mag",
+ start: ( 34, -30, -140),
+ end: ( 74, -60, -140)
+ },
+
+ gear: {
+ model: "zgear_l.mag",
+ start: (-34, -30, -140),
+ end: (-74, -60, -140)
+ },
+}
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ abrv: "Gun-1",
+ muzzle: (-8, -26, 182),
+
+ loc: (-8, -26, 160),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Cannon",
+ abrv: "Gun-2",
+ muzzle: ( 8, -26, 182),
+
+ loc: ( 8, -26, 160),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 1.2,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1.0,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+ }
+
+map: {
+ sprite: "JackalMap0.pcx",
+ sprite: "JackalMap1.pcx",
+ sprite: "JackalMap2.pcx",
+ sprite: "JackalMap3.pcx",
+ sprite: "JackalMap4.pcx",
+ sprite: "JackalMap5.pcx",
+ sprite: "JackalMap6.pcx",
+ sprite: "JackalMap7.pcx",
+}
+
diff --git a/data/content/Ships/Marakan_Fighters/Raptor.def b/data/content/Ships/Marakan_Fighters/Raptor.def
new file mode 100644
index 0000000..a68d3b3
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Raptor.def
@@ -0,0 +1,360 @@
+SHIP
+
+name: Raptor
+display_name: Raptor
+class: fighter
+abrv: "F5A"
+description: "ship.raptor"
+
+hud_icon: "RaptorHud.pcx"
+
+detail_0: "Raptor_1opt.mag"
+feature_0: 25
+detail_1: "Raptor_2opt.mag"
+feature_1: 0.5
+
+mass: 25
+integrity: 2500
+vlimit: 250
+agility: 75
+air_factor: 0.25
+roll_rate: 600
+scale: 0.25
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.15
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 240, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 38, 2, -136),
+ port: (-38, 2, -136),
+ loc: ( 0, 0, 0),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-17, -19, 170),
+ muzzle: ( 17, -19, 170),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-120, -49, -140),
+
+ loc: (-120, -49, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -99, -47, -130),
+
+ loc: ( -99, -47, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( -79, -44, -120),
+
+ loc: ( -79, -44, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( -60, -41, -110),
+
+ loc: ( -60, -41, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-5",
+ muzzle: ( 60, -41, -110),
+
+ loc: ( 60, -41, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( 79, -44, -120),
+
+ loc: ( 79, -44, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-7",
+ muzzle: ( 99, -45, -130),
+
+ loc: ( 99, -45, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-8",
+ muzzle: ( 120, -49, -140),
+
+ loc: ( 120, -49, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 3, 3, 3, 3, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 0, 1, 4, 4, 1, 0, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, 1, -1, -1, 1, 0, -1) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 134),
+ end: (0, -50, 148)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -30, -64),
+ end: (-45, -60, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -30, -64),
+ end: ( 45, -60, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-154, -46, -90), fire: 0x0044}
+ port_fore: {loc:( 154, -46, -90), fire: 0x0084}
+
+ port_aft: {loc:(-154, -46,-150), fire: 0x0088}
+ port_aft: {loc:( 154, -46,-150), fire: 0x0048}
+
+ port_top: {loc:( 0, 6, -92), fire: 0x0110}
+
+ port_top: {loc:( -6, 6, 54), fire: 0x0210}
+ port_top: {loc:( 5, 6, 54), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -18, 59), fire: 0x0120}
+ port_bottom: {loc:( 14, -18, 59), fire: 0x0120}
+
+ port_top: {loc:(-154, -41,-104), fire: 0x0410}
+ port_top: {loc:(-154, -41,-138), fire: 0x0410}
+
+ port_top: {loc:( 154, -41,-104), fire: 0x0810}
+ port_top: {loc:( 154, -41,-138), fire: 0x0810}
+
+ port_bottom: {loc:(-154, -51,-104), fire: 0x0820}
+ port_bottom: {loc:(-154, -51,-138), fire: 0x0A20}
+
+ port_bottom: {loc:( 154, -51,-104), fire: 0x0420}
+ port_bottom: {loc:( 154, -51,-138), fire: 0x0620}
+
+ port_left: {loc:( -25, -9, 139), fire: 0x0081}
+ port_right: {loc:( 25, -9, 139), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 3.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.9,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.7,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "RaptorMap0.pcx",
+ sprite: "RaptorMap1.pcx",
+ sprite: "RaptorMap2.pcx",
+ sprite: "RaptorMap3.pcx",
+ sprite: "RaptorMap4.pcx",
+ sprite: "RaptorMap5.pcx",
+ sprite: "RaptorMap6.pcx",
+ sprite: "RaptorMap7.pcx",
+}
+
+
+
diff --git a/data/content/Ships/Marakan_Fighters/Razor.def b/data/content/Ships/Marakan_Fighters/Razor.def
new file mode 100644
index 0000000..14f6d8c
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Razor.def
@@ -0,0 +1,337 @@
+SHIP
+
+name: Razor
+display_name: Razor
+class: Fighter
+abrv: "F-MK2"
+description: "ship.razor"
+
+hud_icon: "RazorHud.pcx"
+
+detail_0: "Razor_1opt.mag"
+feature_0: 0.1
+detail_1: "Razor_2opt.mag"
+feature_1: 1.5
+
+mass: 15
+integrity: 2550
+vlimit: 290
+agility: 80
+roll_rate: 750
+scale: 0.23
+acs: 1
+detet: 50e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.14
+drag: 5.0e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 1.1e-2
+CD: 1.0e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow,
+ thrust: 16,
+ augmenter: 30,
+ scale: 0.3,
+ port: (0, 0, -166),
+
+ loc: (0, 0, -120),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 9, 190),
+ muzzle: ( 7, 9, 190),
+
+ loc: (0, 0, 32),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-1",
+ muzzle: ( 126, -29, -50),
+
+ loc: ( 126, -29, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-2",
+ muzzle: ( 102, -26, -50),
+
+ loc: ( 102, -26, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( 62, -21, -8),
+
+ loc: ( 62, -21, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-4",
+ muzzle: ( 36, -19, -8),
+
+ loc: ( 36, -19, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: (-36, -19, -8),
+
+ loc: (-36, -19, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: (-62, -21, -8),
+
+ loc: (-62, -21, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-7",
+ muzzle: (-102, -26, -50),
+
+ loc: (-102, -26, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-8",
+ muzzle: (-126, -29, -50),
+
+ loc: (-126, -29, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0, -1, -1, -1, -1, 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 2, 2, 2, 2, 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -14, 113),
+ end: (0, -40, 127)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-25, -20, 10),
+ end: (-45, -40, 10)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 25, -20, 10),
+ end: ( 45, -40, 10)
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-159, -24, 5), fire: 0x0044}
+ port_fore: {loc:( 159, -24, 5), fire: 0x0084}
+
+ port_aft: {loc:(-159, -24, -54), fire: 0x0088}
+ port_aft: {loc:( 159, -24, -54), fire: 0x0048}
+
+ port_top: {loc:( -39, -13,-125), fire: 0x0110}
+ port_top: {loc:( 39, -13,-125), fire: 0x0110}
+
+ port_top: {loc:( -39, -4, 127), fire: 0x0210}
+ port_top: {loc:( 39, -4, 127), fire: 0x0210}
+
+ port_bottom: {loc:( -39, -24,-125), fire: 0x0120}
+ port_bottom: {loc:( 39, -24,-125), fire: 0x0120}
+
+ port_bottom: {loc:( -39, -15, 127), fire: 0x0120}
+ port_bottom: {loc:( 39, -15, 127), fire: 0x0120}
+
+ port_top: {loc:(-159, -19, -8), fire: 0x0410}
+ port_top: {loc:(-159, -19, -41), fire: 0x0410}
+
+ port_top: {loc:( 159, -19, -8), fire: 0x0810}
+ port_top: {loc:( 159, -19, -41), fire: 0x0810}
+
+ port_bottom: {loc:(-159, -29, -8), fire: 0x0820}
+ port_bottom: {loc:(-159, -29, -41), fire: 0x0820}
+
+ port_bottom: {loc:( 159, -29, -8), fire: 0x0420}
+ port_bottom: {loc:( 159, -29, -41), fire: 0x0420}
+}
+
+
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.2,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "RazorMap0.pcx",
+ sprite: "RazorMap1.pcx",
+ sprite: "RazorMap2.pcx",
+ sprite: "RazorMap3.pcx",
+ sprite: "RazorMap4.pcx",
+ sprite: "RazorMap5.pcx",
+ sprite: "RazorMap6.pcx",
+ sprite: "RazorMap7.pcx",
+}
+
diff --git a/data/content/Ships/Marakan_Fighters/Viper.def b/data/content/Ships/Marakan_Fighters/Viper.def
new file mode 100644
index 0000000..239fd5c
--- /dev/null
+++ b/data/content/Ships/Marakan_Fighters/Viper.def
@@ -0,0 +1,273 @@
+SHIP
+
+name: Viper
+display_name: Viper
+class: Fighter
+abrv: "F-MK1"
+description: "ship.viper"
+
+hud_icon: "ViperHud.pcx"
+
+detail_0: "Viper_1opt.mag"
+feature_0: 0.1
+detail_1: "Viper_2opt.mag"
+feature_1: 1.5
+
+mass: 14
+integrity: 2050
+vlimit: 280
+agility: 60
+roll_rate: 550
+scale: 0.23
+acs: 1
+detet: 50e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.125
+drag: 5.0e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 9.0e-3
+CD: 1.0e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow,
+ thrust: 16,
+ augmenter: 30,
+ scale: 0.32,
+ port: (0, 0, -166),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 7, 190),
+ muzzle: ( 7, 7, 190),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: ( 103, -39, -118),
+
+ loc: ( 103, -39, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( 83, -35, -118),
+
+ loc: ( 83, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: ( 51, -25, -80),
+
+ loc: ( 51, -25, -60),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (-51, -25, -80),
+
+ loc: (-51, -25, -60),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-5",
+ muzzle: ( -84, -33, -118),
+
+ loc: ( -84, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-6",
+ muzzle: (-103, -39, -118),
+
+ loc: (-103, -39, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0, -1, -1, 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 0, 1, 1, 0, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 1, 1, 1, 1, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -14, 73),
+ end: (0, -40, 87)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-30, -12, -40),
+ end: (-50, -40, -40)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 30, -12, -40),
+ end: ( 50, -40, -40)
+ },
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.6,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.4,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 196
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 225
+}
+
+
+map: {
+ sprite: "ViperMap0.pcx",
+ sprite: "ViperMap1.pcx",
+ sprite: "ViperMap2.pcx",
+ sprite: "ViperMap3.pcx",
+ sprite: "ViperMap4.pcx",
+ sprite: "ViperMap5.pcx",
+ sprite: "ViperMap6.pcx",
+ sprite: "ViperMap7.pcx",
+}
+
diff --git a/data/content/Ships/Marakan_Ships/Broadsword.def b/data/content/Ships/Marakan_Ships/Broadsword.def
new file mode 100644
index 0000000..b6c9db6
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Broadsword.def
@@ -0,0 +1,456 @@
+SHIP
+
+name: Broadsword
+display_name: Broadsword
+class: Destroyer
+description: "ship.broadsword"
+
+hud_icon: "BroadHud.pcx"
+
+detail_0: "Volnaris_0.mag"
+feature_0: 1000
+detail_1: "Broadsword_1opt.mag"
+feature_1: 40
+detail_2: "Broadsword_2opt.mag"
+feature_2: 20
+
+mass: 27.6e3
+agility: 2 //3.5
+vlimit: 240
+roll_rate: 7
+integrity: 25e3
+scale: 3.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 8000,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 1.5e3,
+ scale: 7,
+ port: ( 0, -51, -398),
+ port: ( 0, -96, -351),
+
+ loc: ( 0, 0, -240),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+// fore reverse
+ port_fore: {loc:(-159,-24,4),fire: 0x0040},
+ port_fore: {loc:(159,-24,4),fire: 0x0080},
+
+ port_aft: {loc:(-159,-24,-55),fire: 0x0080},
+ port_aft: {loc:(159,-24,-55),fire: 0x0040},
+
+ port_fore: {loc:(26,8,-28),fire: 0x0004},
+ port_fore: {loc:(27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-26,8,-28),fire: 0x0004},
+ port_fore: {loc:(-27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-3,-23,-28),fire: 0x0004},
+ port_fore: {loc:(3,-23,-28),fire: 0x0004},
+
+ port_aft: {loc:(26,8,-79),fire: 0x0008},
+ port_aft: {loc:(27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-26,8,-79),fire: 0x0008},
+ port_aft: {loc:(-27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-3,-23,-79),fire: 0x0008},
+ port_aft: {loc:(3,-23,-79),fire: 0x0008},
+
+// Vertical
+
+ port_top: {loc:(160,-18,-8),fire: 0x0810},
+ port_top: {loc:(-160,-18,-8),fire: 0x0410},
+ port_top: {loc:(160,-18,-41),fire: 0x0810},
+ port_top: {loc:(-160,-18,-41),fire: 0x0410},
+
+ port_bottom: {loc:(160,-29,-8),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-8),fire: 0x0820},
+ port_bottom: {loc:(160,-29,-41),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-41),fire: 0x0820},
+
+ port_top: {loc:(39,-14,-125),fire: 0x0100},
+ port_top: {loc:(-39,-14,-125),fire: 0x0100},
+ port_bottom: {loc:(-39,-23,-125),fire: 0x0200},
+ port_bottom: {loc:(39,-23,-125),fire: 0x0200},
+
+ port_top: {loc:(39,-5,127),fire: 0x0200},
+ port_top: {loc:(-39,-5,127),fire: 0x0200},
+ port_bottom: {loc:(-39,-14,127),fire: 0x0100},
+ port_bottom: {loc:(39,-14,127),fire: 0x0100},
+
+// Side Translantion
+
+ port_right: {loc:(167,-25,-11),fire: 0x0002},
+ port_right: {loc:(167,-25,-38),fire: 0x0002},
+
+ port_left: {loc:(-167,-25,-11),fire: 0x0001},
+ port_left: {loc:(-167,-25,-38),fire: 0x0001},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.75
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4000,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-55, -33, 470),
+
+ loc: (-45, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 54, -33, 470),
+
+ loc: ( 44, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-55, -55, 448),
+
+ loc: (-45, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 54, -55, 448),
+
+ loc: ( 44, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Missile Array",
+ abrv: "Nike",
+ muzzle: ( -25, -1, 422),
+ muzzle: ( 0, -1, 422),
+ muzzle: ( 25, -1, 422),
+
+ loc: ( 0, -1, 220),
+
+ size: 80,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-1",
+ abrv: "Rail-1",
+
+ loc: (0, 73,-27)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-2",
+ abrv: "Rail-2",
+
+ azimuth: 180
+ loc: (0, 71,-267)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+ }
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 180
+ elevation: -180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, -110,96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 64,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 14,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.1, loc: ( 20, 80, -190) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "BroadswordDebris.mag", loc: (0,0,200), mass: 28e3, count: 1, life: 380,
+ fire: (60,60,20), fire: (-60,-30,-10) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 55, count: 25, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 64, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 43, count: 15, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/content/Ships/Marakan_Ships/Dragon.def b/data/content/Ships/Marakan_Ships/Dragon.def
new file mode 100644
index 0000000..b585d4e
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Dragon.def
@@ -0,0 +1,492 @@
+SHIP
+
+name: Dragon
+display_name: Dragon
+class: Carrier
+description: "ship.dragon"
+
+hud_icon: "DragonHud.pcx"
+
+detail_0: "Dragon_0opt.mag"
+feature_0: 1000
+detail_1: "Dragon_1opt.mag"
+feature_1: 64
+detail_2: "Dragon_2opt.mag"
+feature_2: 32
+
+mass: 937.6e3
+agility: 1.3
+vlimit: 210
+roll_rate: 7
+integrity: 68e3
+scale: 3
+acs: 1.5
+
+trans_x: 5e6
+trans_y: 1e6
+trans_z: 3e6
+
+arcade_drag: 4.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+explosion_scale: 4
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 95e3,
+
+ loc: (0, -40, -50),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: "Drive",
+ design: "Plasma Drive",
+ thrust: 38e3,
+ scale: 10,
+
+ port: ( 0, -315, -730)
+ port: ( 0, -400, -730)
+ port: (-440, 67, -730)
+ port: (-440, -24, -730)
+
+ loc: (0, 0, -120),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -90, -50),
+ size: 60,
+ hull_factor: 0.8
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ design: "Auxilliary Reactor",
+ max_output: 5e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+
+ muzzle: (-283, 6, 1650),
+
+ loc: (-30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+
+ muzzle: ( 283, 6, 1650),
+
+ loc: (30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-6",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-7",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-8",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-9",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-10",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: ( 55, -8, 576),
+ end: (2e3, 0, 2500),
+
+ spot: { loc: ( 30, -8, 550), filter: 0x7 },
+ spot: { loc: ( 80, -8, 550), filter: 0x7 },
+ spot: { loc: ( 55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: (-55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: (-55, -8, 576),
+ end: (-2e3, 0, 2500),
+
+ spot: { loc: (-30, -8, 550), filter: 0x7 },
+ spot: { loc: (-80, -8, 550), filter: 0x7 },
+ spot: { loc: (-55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 3",
+ abrv: "Deck 3",
+ design: "Flight Deck",
+ loc: ( 160, 0, 192),
+ cam: ( 160, 0, 128),
+ start: ( 1088, 4, -512),
+ end: ( 160, 0, 192),
+
+ approach: ( 200, 0, -2000),
+ approach: ( 1000, 0, -1000),
+ approach: ( 1000, 0, 1000),
+ approach: ( 250, 0, 2500),
+
+ spot: ( 160, 0, 192),
+ azimuth: 53,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 15,
+
+ size: 40,
+ hull_factor: 0.5,
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ abrv: Batt
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "DragonMap0.pcx",
+ sprite: "DragonMap1.pcx",
+ sprite: "DragonMap2.pcx",
+ sprite: "DragonMap3.pcx",
+ sprite: "DragonMap4.pcx",
+ sprite: "DragonMap5.pcx",
+ sprite: "DragonMap6.pcx",
+ sprite: "DragonMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 12, loc: (0,0,-100), final: true } // Large burst
+ explosion: { type: 13, loc: (0,0, 0), final: true } // Nuke
+ explosion: { type: 13, loc: (0,0,-200), final: true } // Nuke
+
+ debris: { model: "DragonDebris1.mag", loc: (-240,-20,0), mass: 48e3, count: 1, life: 360 }
+ debris: { model: "DragonDebris2.mag", loc: (0,0,600), mass: 298e3, count: 1, life: 380,
+ fire: (-110,0,-600), fire: (20,20,-450), fire: (100,-10,-500) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 30 }
+
+}
+
+
+
diff --git a/data/content/Ships/Marakan_Ships/Imperial.def b/data/content/Ships/Marakan_Ships/Imperial.def
new file mode 100644
index 0000000..4ae66ee
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Imperial.def
@@ -0,0 +1,418 @@
+SHIP
+
+name: Imperial
+display_name: Imperial
+class: Cruiser
+description: "ship.imperial"
+
+hud_icon: "ImperialHud.pcx"
+
+detail_0: "Musson_0opt.mag"
+feature_0: 1000
+detail_1: "Musson_1opt.mag"
+feature_1: 32
+detail_2: "Musson_2opt.mag"
+feature_2: 16
+
+mass: 348.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 40e3,
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.75,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 30e3,
+ scale: 9,
+ port: ( 137, 30, -340),
+ port: (-137, 30, -340),
+
+ loc: (0, 10, -200),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 3500,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-42, -9, 640),
+
+ loc: (-42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 42, -9, 640),
+
+ loc: ( 42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 68,153),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -5.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (-91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 180.0,
+
+ aim_az_max: 5.0,
+ aim_az_min: -135.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 92,-228),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "ImperialMap0.pcx",
+ sprite: "ImperialMap1.pcx",
+ sprite: "ImperialMap2.pcx",
+ sprite: "ImperialMap3.pcx",
+ sprite: "ImperialMap4.pcx",
+ sprite: "ImperialMap5.pcx",
+ sprite: "ImperialMap6.pcx",
+ sprite: "ImperialMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/content/Ships/Marakan_Ships/Tiger.def b/data/content/Ships/Marakan_Ships/Tiger.def
new file mode 100644
index 0000000..965a48b
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Tiger.def
@@ -0,0 +1,314 @@
+SHIP
+
+name: Tiger
+display_name: Tiger
+class: Frigate
+description: "ship.tiger"
+
+hud_icon: "TigerHud.pcx"
+
+detail_0: "Frigate_1opt.mag"
+feature_0: 1000
+detail_1: "Frigate_2opt.mag"
+feature_1: 32
+
+mass: 4.53e3
+agility: 3.8
+vlimit: 300
+roll_rate: 8
+integrity: 18e3
+scale: 1.8
+acs: 1
+
+trans_x: 85e3
+trans_y: 35e3
+trans_z: 85e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 4000,
+
+ loc: (0, -100, 0),
+ size: 60,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 4,
+ port: ( 24,91,-580)
+ port: (-24,91,-580)
+ port: ( 24,13,-580)
+ port: (-24,13,-580)
+
+ loc: (0,30,-450)
+ size: 64,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 1,
+ loc: (0, -52,0),
+ explosion: 8,
+
+/*
+0x0001 = Translate Right
+0x0002 = "" Left
+0x0004 = "" Backwards
+0x0008 = "" Forewards
+0x0010 = "" Down
+0x0020 = "" Up
+0x0040 = Yaw Left
+0x0080 = Yaw Right
+0x0100 = Pitch Down
+0x0200 = Pitch Up
+0x0400 = Roll Left
+0x0800 = Roll Right
+*/
+
+// fore reverse
+ port_fore: {loc:(-10, 42, 526),fire: 0x0004},
+ port_fore: {loc:(-10, 30, 526),fire: 0x0004},
+ port_fore: {loc:(-10, 18, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 18, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 30, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 42, 526),fire: 0x0004},
+
+ port_aft: {loc:(-30, 53,-559),fire: 0x0008},
+ port_aft: {loc:( -9, 53,-559),fire: 0x0008},
+ port_aft: {loc:( 9, 53,-559),fire: 0x0008},
+ port_aft: {loc:( 30, 53,-559),fire: 0x0008},
+
+
+// Vertical
+ port_top: {loc:( -11, 60,509),fire: 0x0510},
+ port_top: {loc:( 11, 60,509),fire: 0x0910},
+ port_bottom: {loc:( -11,-10,509),fire: 0x0A20},
+ port_bottom: {loc:( 11,-10,509),fire: 0x0620},
+
+ port_top: {loc:(-48,135,-518),fire: 0x0610},
+ port_top: {loc:( 48,135,-518),fire: 0x0A10},
+ port_bottom: {loc:( 48,-29,-518),fire: 0x0920},
+ port_bottom: {loc:(-48,-29,-518),fire: 0x0520},
+
+ port_top: {loc:(-128,-29,20),fire: 0x0410},
+ port_top: {loc:( 128,-29,20),fire: 0x0810},
+ port_bottom: {loc:(-128,-48,20),fire: 0x0820},
+ port_bottom: {loc:( 128,-48,20),fire: 0x0420},
+
+// Side Translantion
+ port_right: {loc:( 60,44, 238),fire: 0x0042},
+ port_right: {loc:( 60,44, 251),fire: 0x0042},
+ port_right: {loc:( 90,36,-504),fire: 0x0082},
+ port_right: {loc:( 90,36,-516),fire: 0x0082},
+
+ port_left: {loc:(-60,44, 238),fire: 0x0081},
+ port_left: {loc:(-60,44, 251),fire: 0x0081},
+ port_left: {loc:(-90,36,-504),fire: 0x0041},
+ port_left: {loc:(-90,36,-516),fire: 0x0041},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: Shield
+ factor: 0.03,
+ consumption: 1500,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.4
+}
+
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: ( 74, -12, 240)
+
+ loc: ( 74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: (-74, -12, 240)
+
+ loc: (-74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7",
+ muzzle: (-40, 0, 390),
+ muzzle: ( 40, 0, 390),
+ azimuth: 0,
+
+ loc: (-20, 0, 300),
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 75, 220),
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 135, -420),
+ size: 32,
+ hull_factor: 0.3
+
+ azimuth: 3.14159,
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-30, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 20, 90) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -80) }
+ explosion: { type: 10, time: 0.1, loc: ( 10, 80, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "FrigateDebris1.mag", loc: (0,0,200), mass:18e3, count: 1, life: 330, fire: (30,60,20) }
+ debris: { model: "FrigateDebris2.mag", loc: (100,0,0), mass:18e3, count: 1, life: 330 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-20), mass: 55, count: 15, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-20), mass: 54, count: 10, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 53, count: 11, life: 30 }
+
+ }
+
+map: {
+ sprite: "TigerMap0.pcx",
+ sprite: "TigerMap1.pcx",
+ sprite: "TigerMap2.pcx",
+ sprite: "TigerMap3.pcx",
+ sprite: "TigerMap4.pcx",
+ sprite: "TigerMap5.pcx",
+ sprite: "TigerMap6.pcx",
+ sprite: "TigerMap7.pcx"
+}
+
+
diff --git a/data/content/Ships/Marakan_Ships/Vendetta.def b/data/content/Ships/Marakan_Ships/Vendetta.def
new file mode 100644
index 0000000..87cba55
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Vendetta.def
@@ -0,0 +1,449 @@
+SHIP
+
+name: Vendetta
+display_name: Vendetta
+class: Cruiser
+description: "ship.vendetta"
+
+hud_icon: "VendettaHud.pcx"
+
+detail_0: "VendettaNarrow_0opt.mag"
+feature_0: 1000
+detail_1: "VendettaNarrow_1opt.mag"
+feature_1: 48
+detail_2: "VendettaNarrow_2opt.mag"
+feature_2: 24
+
+mass: 568.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4.2
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion
+ name: "Fusion 1"
+ design: "Fusion Reactor"
+ max_output: 40e3
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 35e3
+ scale: 7
+ augmenter: 0
+
+
+ port: (-210, 42, -334)
+ port: (-210, 0, -334)
+ port: ( 210, 42, -334)
+ port: ( 210, 0, -334)
+
+ loc: (0, 0,-0),
+ size: 32,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+power: {
+ type: Fusion
+ name: "Fusion 2"
+ design: "Fusion Reactor"
+ max_output: 10e3
+
+ loc: (0, -45, -550),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -80),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-8, 33, 779),
+ loc: (-8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 8, 33, 779),
+ loc: ( 8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 90,147),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 105, -548),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 1",
+ abrv: "PDB 1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, 73, 422),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 2",
+ abrv: "PDB 2",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+
+
+ aim_az_max: 180.0,
+ aim_az_min: -180.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -143,506),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 3",
+ abrv: "PDB 3",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -104,-360),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 4",
+ abrv: "PDB 4",
+
+ azimuth: 90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 5",
+ abrv: "PDB 5",
+
+ azimuth: -90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (-209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "VendettaMap0.pcx",
+ sprite: "VendettaMap1.pcx",
+ sprite: "VendettaMap2.pcx",
+ sprite: "VendettaMap3.pcx",
+ sprite: "VendettaMap4.pcx",
+ sprite: "VendettaMap5.pcx",
+ sprite: "VendettaMap6.pcx",
+ sprite: "VendettaMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
diff --git a/data/content/Ships/Marakan_Ships/Volnaris.def b/data/content/Ships/Marakan_Ships/Volnaris.def
new file mode 100644
index 0000000..bc94938
--- /dev/null
+++ b/data/content/Ships/Marakan_Ships/Volnaris.def
@@ -0,0 +1,349 @@
+SHIP
+
+name: Volnaris
+display_name: Volnaris
+class: Destroyer
+description: "ship.volnaris"
+
+hud_icon: "VolnarisHud.pcx"
+
+detail_0: "Volnaris_0.mag"
+feature_0: 1000
+detail_1: "Volnaris_1opt.mag"
+feature_1: 40
+detail_2: "Volnaris_2opt.mag"
+feature_2: 20
+
+mass: 21.1e3
+agility: 2 //3.1
+vlimit: 240
+roll_rate: 7
+integrity: 20e3
+scale: 3.0
+acs: 1.2
+
+trans_x: 250e3
+trans_y: 100e3
+trans_z: 250e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7500,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.8
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ abrv: Drive
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 1000,
+ scale: 5,
+ port: ( 0, -22, -420)
+ port: ( 0, -67, -402)
+ port: ( 0, -117, -357)
+
+ loc: (0, 0, -240),
+ size: 48,
+ hull_factor: 0.5
+ explosion: 7
+}
+
+quantum: {
+ abrv: "Q-Drive"
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ max_output: 1200,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-34, -19, 570),
+
+ loc: (-34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 34, -19, 570),
+
+ loc: ( 34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Torpedo Banks",
+ abrv: "Torps",
+ muzzle: (-25, 17, 470),
+ muzzle: ( 25, 17, 470),
+ loc: ( 0, -32, 400),
+ size: 80,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 1"
+ abrv: "PDB 1"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 45, 340),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 2"
+ abrv: "PDB 2"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 55, 225),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 3"
+ abrv: "PDB 3"
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+
+ loc: ( 0, 55, -255),
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+
+ azimuth: 3.14159,
+}
+
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+// fore reverse
+ port_fore: {loc:(-159,-24,4),fire: 0x0040},
+ port_fore: {loc:(159,-24,4),fire: 0x0080},
+
+ port_aft: {loc:(-159,-24,-55),fire: 0x0080},
+ port_aft: {loc:(159,-24,-55),fire: 0x0040},
+
+ port_fore: {loc:(26,8,-28),fire: 0x0004},
+ port_fore: {loc:(27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-26,8,-28),fire: 0x0004},
+ port_fore: {loc:(-27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-3,-23,-28),fire: 0x0004},
+ port_fore: {loc:(3,-23,-28),fire: 0x0004},
+
+ port_aft: {loc:(26,8,-79),fire: 0x0008},
+ port_aft: {loc:(27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-26,8,-79),fire: 0x0008},
+ port_aft: {loc:(-27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-3,-23,-79),fire: 0x0008},
+ port_aft: {loc:(3,-23,-79),fire: 0x0008},
+
+// Vertical
+
+ port_top: {loc:(160,-18,-8),fire: 0x0810},
+ port_top: {loc:(-160,-18,-8),fire: 0x0410},
+ port_top: {loc:(160,-18,-41),fire: 0x0810},
+ port_top: {loc:(-160,-18,-41),fire: 0x0410},
+
+ port_bottom: {loc:(160,-29,-8),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-8),fire: 0x0820},
+ port_bottom: {loc:(160,-29,-41),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-41),fire: 0x0820},
+
+ port_top: {loc:(39,-14,-125),fire: 0x0100},
+ port_top: {loc:(-39,-14,-125),fire: 0x0100},
+ port_bottom: {loc:(-39,-23,-125),fire: 0x0200},
+ port_bottom: {loc:(39,-23,-125),fire: 0x0200},
+
+ port_top: {loc:(39,-5,127),fire: 0x0200},
+ port_top: {loc:(-39,-5,127),fire: 0x0200},
+ port_bottom: {loc:(-39,-14,127),fire: 0x0100},
+ port_bottom: {loc:(39,-14,127),fire: 0x0100},
+
+// Side Translantion
+
+ port_right: {loc:(167,-25,-11),fire: 0x0002},
+ port_right: {loc:(167,-25,-38),fire: 0x0002},
+
+ port_left: {loc:(-167,-25,-11),fire: 0x0001},
+ port_left: {loc:(-167,-25,-38),fire: 0x0001},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 1.8, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.7, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 80, -190) }
+ explosion: { type: 10, time: 0.1, loc: (-30, 30, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+
+ debris: { model: "VolnarisDebris1.mag", loc: (0,0,-250), mass:25e3, count: 1, life: 365,
+ fire: (30,20,170) }
+ debris: { model: "Debris0A.mag", loc: (0,0, 20), mass: 45, count: 16, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-30), mass: 24, count: 12, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+}
+
+
+
+
+
+
diff --git a/data/content/Ships/Pirate_Ships/Cutlass.def b/data/content/Ships/Pirate_Ships/Cutlass.def
new file mode 100644
index 0000000..b9dbd7b
--- /dev/null
+++ b/data/content/Ships/Pirate_Ships/Cutlass.def
@@ -0,0 +1,236 @@
+SHIP
+
+name: Cutlass
+display_name: Cutlass
+class: Fighter
+abrv: "F-19"
+description: "ship.cutlass"
+
+hud_icon: "CutlassHud.pcx"
+
+detail_0: "Cutlass_0.mag"
+feature_0: 25
+detail_1: "Cutlass_1.mag"
+feature_1: 2
+
+mass: 14
+integrity: 2500
+scuttle: 1e3
+vlimit: 250
+agility: 137
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.24
+acs: 1.1
+detet: 30e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.22
+drag: 5.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.2e-2
+CD: 0.9e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+}
+
+drive: {
+ type: Red
+ thrust: 19,
+ augmenter: 35,
+ scale: 0.6,
+ port: (-12, 0, -133)
+ port: ( 12, 0, -133)
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-150, 5, -10),
+ muzzle: (-150, -6, -10),
+ muzzle: ( 150, 5, -10),
+ muzzle: ( 150, -6, -10),
+
+ loc: (0, 0, 32),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: (-64, -10, -100)
+
+ loc: (-46, -10, -25)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( 64, -10, -100)
+
+ loc: ( 64, -10, -25)
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 1, 1) }
+loadout: { name: "Ground Strike", stations: ( 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 2, 2) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2) }
+loadout: { name: "Rockets", stations: ( 0, 0) }
+loadout: { name: "Scout/Recon", stations: ( 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "LeftSkid.mag",
+ start: (-20, -16, 0),
+ end: (-48, -44, 0),
+ },
+
+ gear: {
+ model: "RightSkid.mag",
+ start: ( 20, -16, 0),
+ end: ( 48, -44, 0),
+ },
+}
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "cmap0.pcx",
+ sprite: "cmap1.pcx",
+ sprite: "cmap2.pcx",
+ sprite: "cmap3.pcx",
+ sprite: "cmap4.pcx",
+ sprite: "cmap5.pcx",
+ sprite: "cmap6.pcx",
+ sprite: "cmap7.pcx"
+}
+
diff --git a/data/content/Ships/Pirate_Ships/Marauder.def b/data/content/Ships/Pirate_Ships/Marauder.def
new file mode 100644
index 0000000..b18a128
--- /dev/null
+++ b/data/content/Ships/Pirate_Ships/Marauder.def
@@ -0,0 +1,270 @@
+SHIP
+
+name: Marauder
+display_name: Marauder
+class: Frigate
+description: "ship.marauder"
+
+hud_icon: "MarauderHud.pcx"
+
+detail_0: "Marauder_2opt.mag"
+feature_0: 32
+detail_1: "Marauder_3opt.mag"
+feature_1: 16
+
+mass: 7.9e3
+agility: 5
+vlimit: 280
+roll_rate: 60
+integrity: 22e3
+scale: 2.5
+acs: 1
+degrees: true
+detet: 30e3
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+arcade_drag:2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Red
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 800,
+ scale: 4,
+ port: (-44,12,-252),
+ port: ( 45,12,-252),
+
+ loc: (0,0,-200),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.05,
+ consumption: 2000,
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Port Cannon",
+ abrv: "Plasma 2",
+ muzzle: (-260, -32, 194),
+ azimuth: 0,
+
+ loc: (-260, -32, 60),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Starboard Cannon",
+ abrv: "Plasma 3",
+ muzzle: ( 260, -32, 194),
+ azimuth: 0,
+
+ loc: ( 260, -32, 60),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-1"
+
+ azimuth: 60
+ aim_az_max: 90
+ aim_az_min: -60
+ aim_az_rest: -60
+
+ muzzle: (0, 0, 71)
+ loc: (-110, 26, 20)
+ size: 32
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-2"
+
+ azimuth: -60
+ aim_az_max: -90
+ aim_az_min: 60
+ aim_az_rest: 60
+
+ muzzle: (0, 0, 71)
+ loc: (110, 26, 20)
+ size: 32
+ hull_factor: 0.3
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "m_map0.pcx",
+ sprite: "m_map1.pcx",
+ sprite: "m_map2.pcx",
+ sprite: "m_map3.pcx",
+ sprite: "m_map4.pcx",
+ sprite: "m_map5.pcx",
+ sprite: "m_map6.pcx",
+ sprite: "m_map7.pcx"
+}
+
+
diff --git a/data/content/Ships/TargetDrone/TargetDrone.def b/data/content/Ships/TargetDrone/TargetDrone.def
new file mode 100644
index 0000000..ee1f92f
--- /dev/null
+++ b/data/content/Ships/TargetDrone/TargetDrone.def
@@ -0,0 +1,105 @@
+SHIP
+
+name: TargetDrone
+display_name: TargetDrone
+class: Fighter
+
+model: "drone2b6.mag"
+description: "ship.drone"
+
+mass: 5
+integrity: 500
+vlimit: 250
+agility: 50
+air_factor: 0.25
+roll_rate: 500
+scale: 0.08
+acs: 5
+
+trans_x: 1000
+trans_y: 1000
+trans_z: 1000
+
+drag: 4e-6
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 2e-2
+CD: 2e-5
+stall: 0.40
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 30,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+}
+
+drive: {
+ type: Plasma,
+ thrust: 4,
+ scale: 0.8,
+ port: (0, -58, -292)
+
+ loc: (0, 0, -180)
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 1.4,
+
+ explosion_type: 22, // CUSTOM 2
+ explosion_time: 0.8,
+ explosion_loc: (0, 0, -28),
+
+ final_type: 21, // CUSTOM 1
+ final_loc: (0, 0, -12),
+
+ final_type: 24, // CUSTOM LARGE BURST VARIATION
+ final_loc: (0, 0, -12),
+}
+
+
diff --git a/data/content/Sys.def b/data/content/Sys.def
new file mode 100644
index 0000000..d0028b5
--- /dev/null
+++ b/data/content/Sys.def
@@ -0,0 +1,751 @@
+SYSTEM
+
+// COMPONENT DAMAGE EFFECTS:
+// DAMAGE_EFFICIENCY = 1
+// DAMAGE_SAFETY = 2
+// DAMAGE_STABILITY = 4
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Fusion Reactor",
+
+ component: {
+ name: "Reactor Core",
+ abrv: "Reac Core",
+ repair_time: 120,
+ replace_time: 24000,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Fuel System",
+ abrv: "Fuel Sys",
+ repair_time: 120,
+ replace_time: 1200,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Presequencer",
+ abrv: "Preseq",
+ repair_time: 30,
+ replace_time: 400,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 30,
+ replace_time: 300,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 60,
+ replace_time: 3600,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Coolant Tanks",
+ abrv: "Coolant",
+ repair_time: 45,
+ replace_time: 1800,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Auxilliary Reactor",
+
+ component: {
+ name: "Reactor Core",
+ abrv: "Reac Core",
+ repair_time: 60,
+ replace_time: 2400,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Reactant",
+ abrv: "Reactant",
+ repair_time: 30,
+ replace_time: 600,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Injector",
+ abrv: "Injector",
+ repair_time: 60,
+ replace_time: 500,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Magnetic Coil",
+ abrv: "Mag Coil",
+ repair_time: 120,
+ replace_time: 300,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 120,
+ replace_time: 3600,
+ spares: 0,
+ affects: 6
+ },
+
+ component: {
+ name: "Coolant Tanks",
+ abrv: "Coolant",
+ repair_time: 120,
+ replace_time: 1800,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Battery",
+
+ component: {
+ name: "EMG Cell",
+ abrv: "EMG Cell",
+ repair_time: 120,
+ replace_time: 2400,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Reactant",
+ abrv: "Reactant",
+ repair_time: 30,
+ replace_time: 1200,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Reactant Valves",
+ abrv: "Reac Valve",
+ repair_time: 20,
+ replace_time: 1200,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 120,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Plasma Drive",
+
+ component: {
+ name: "Plasma Core",
+ abrv: "Plasma Core",
+ repair_time: 90,
+ replace_time: 1800,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Presequence Injector",
+ abrv: "Injector",
+ repair_time: 40,
+ replace_time: 600,
+ spares: 1,
+ affects: 5
+ },
+
+ component: {
+ name: "Plasma Impeller",
+ abrv: "Impeller",
+ repair_time: 30,
+ replace_time: 900,
+ spares: 1,
+ affects: 5
+ },
+
+ component: {
+ name: "Magnetic Resonance Focuser",
+ abrv: "Mag Focus",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 60,
+ replace_time: 1200,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: Thruster,
+
+ component: {
+ name: "Lateral Thrust Motors",
+ abrv: "Lateral",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Spinal Thrust Motors",
+ abrv: "Spinal",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Braking Thrusters",
+ abrv: "Braking",
+ repair_time: 60,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Plasma Grid",
+ abrv: "Plasma Grid",
+ repair_time: 180,
+ replace_time: 7200,
+ spares: 1,
+ affects: 3
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Quantum Drive",
+
+ component: {
+ name: "Graviscalar Bias Node A",
+ abrv: "Alpha Node",
+ repair_time: 200,
+ replace_time: 3600,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Graviscalar Bias Node B",
+ abrv: "Beta Node",
+ repair_time: 200,
+ replace_time: 3600,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Quantum Wave Containment",
+ abrv: "Containment",
+ repair_time: 60,
+ replace_time: 1200,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Dimensional Waveguide",
+ abrv: "Waveguide",
+ repair_time: 30,
+ replace_time: 400,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Filter/Sync Lock",
+ abrv: "Sync Lock",
+ repair_time: 600,
+ replace_time: 60,
+ spares: 1,
+ affects: 1
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Grav Shield",
+
+ component: {
+ name: "Grav Bias Generator",
+ abrv: "Grav Gen",
+ repair_time: 30,
+ replace_time: 300,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Fusion Power Adaptor",
+ abrv: "Pwr Adaptor",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Harmonic Oscillator",
+ abrv: "Harm Osc",
+ repair_time: 1200,
+ replace_time: 60,
+ spares: 2,
+ affects: 5
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 900,
+ replace_time: 60,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Sensor",
+
+ component: {
+ name: "Transmit Array",
+ abrv: "XMIT",
+ repair_time: 1200,
+ replace_time: 120,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Receive Array",
+ abrv: "RECV",
+ repair_time: 1200,
+ replace_time: 120,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Spacial Filter",
+ abrv: "Filter",
+ repair_time: 1800,
+ replace_time: 60,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Processor",
+ abrv: "CPU",
+ repair_time: 600,
+ replace_time: 90,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "System Interface",
+ abrv: "Sys I/F",
+ repair_time: 900,
+ replace_time: 60,
+ spares: 2,
+ affects: 1
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Computer",
+
+ component: {
+ name: "Processor",
+ abrv: "CPU",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Storage",
+ abrv: "Storage",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "System Interface",
+ abrv: "Sys I/F",
+ repair_time: 90,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Beam Weapon",
+
+ component: {
+ name: "Beam Generator",
+ abrv: "Beam Gen",
+ repair_time: 60,
+ replace_time: 2400,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Beam Focuser",
+ abrv: "Beam Focus",
+ repair_time: 900,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Flashback Supressor",
+ abrv: "Flash Sup",
+ repair_time: 90,
+ replace_time: 1500,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 120,
+ replace_time: 30,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Bolt Weapon",
+
+ component: {
+ name: "Laser Generator",
+ abrv: "Laser Gen",
+ repair_time: 60,
+ replace_time: 1800,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Plasma Weapon",
+
+ component: {
+ name: "Plasma Exciter",
+ abrv: "Exciter",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Plasma Coupling",
+ abrv: "Plasma Cpl",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 120,
+ replace_time: 900,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 60,
+ replace_time: 1800,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 180,
+ replace_time: 30,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Missile Weapon",
+
+ component: {
+ name: "Magnetic Launch Rail",
+ abrv: "Launcher",
+ repair_time: 300,
+ replace_time: 3000,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Ordnance Trolley/Loader",
+ abrv: "Loader",
+ repair_time: 120,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Probe",
+
+ component: {
+ name: "Magnetic Launch Rail",
+ abrv: "Launcher",
+ repair_time: 300,
+ replace_time: 3000,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Probe Caddy/Loader",
+ abrv: "Loader",
+ repair_time: 120,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "System Computer Interface",
+ abrv: "Sys I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Flight Deck",
+
+ component: {
+ name: "Magnetic Launch Rail",
+ abrv: "Mag Rail",
+ repair_time: 120,
+ replace_time: 1800,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Hangar Access Causeway",
+ abrv: "Elevator",
+ repair_time: 300,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "ILS Transponder",
+ abrv: "ILS",
+ repair_time: 120,
+ replace_time: 2000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Navigational Interface",
+ abrv: "Nav I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+
+
+
diff --git a/data/content/Weapons/Wep.def b/data/content/Weapons/Wep.def
new file mode 100644
index 0000000..79c5375
--- /dev/null
+++ b/data/content/Weapons/Wep.def
@@ -0,0 +1,2135 @@
+WEAPON
+
+primary: {
+ name: "Alpha Cannon"
+ group: GUNS
+ beauty: "Alpha_Beauty.pcx"
+ description: "wep.alpha"
+ target_type: 0x000f00ff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.3
+ capacity: 150
+ charge: 5
+ min_charge: 5
+ damage: 12
+ speed: 6.0e3
+ life: 2
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 2.0
+ length: 80.0
+ light: 100
+ bitmap: "shot0.pcx"
+ flash: "flash0.pcx"
+ flash_scale: 0.5
+ sound: "Shot1.wav"
+ sound_min_dist: 100
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "Delta Cannon"
+ group: GUNS
+ beauty: "Delta_Beauty.pcx"
+ description: "wep.delta"
+ target_type: 0x000f00ff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.25
+ capacity: 200
+ charge: 5
+ min_charge: 5
+ damage: 20
+ speed: 8.0e3
+ life: 1.6
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 2.0
+ length: 80.0
+ light: 100
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 100
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "Heavy Cannon"
+ group: GUNS
+ beauty: "Heavy_Beauty.pcx"
+ description: "wep.heavy"
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 30
+ refire_delay: 0.30
+ capacity: 300
+ charge: 10
+ min_charge: 10
+ damage: 15
+ speed: 7.0e3
+ life: 2.0
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 3.0
+ length: 70.0
+ light: 100
+ bitmap: "shot4.pcx"
+ flash: "flash4.pcx"
+ flash_scale: 0.5
+ sound: "blockade_cannon.wav"
+ sound_min_dist: 500
+ sound_max_dist: 17e3
+}
+
+primary: {
+ name: "Fighter Turret"
+ group: TURRET
+ beauty: "Turret1_Beauty.pcx"
+ description: "wep.turret"
+ target_type: 0x000fffff
+ value: 1
+ capacity: 100
+ recharge_rate: 25
+ refire_delay: 0.15
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 8.0e3
+ life: 1.6
+
+ min_range: 3.0e3
+ max_range: 12.5e3
+ max_track: 25.0e3
+
+ self_aiming: true
+ aim_az_max: 0.75
+ aim_el_max: 0.50
+
+ turret: "turret.mag"
+ scale: 0.22
+
+ graphic_type: 3 // bolt
+ width: 2
+ length: 40
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "LCA Turret"
+ group: TURRET
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 100
+ recharge_rate: 80
+ refire_delay: 0.18
+ charge: 15
+ min_charge: 10
+ damage: 15
+ speed: 8.0e3
+ life: 1.6
+
+ min_range: 3.0e3
+ max_range: 12.5e3
+ max_track: 25.0e3
+
+ self_aiming: true
+ aim_az_max: 1.50
+ aim_el_max: 0.80
+ aim_el_min: 0.00
+
+ turret: "Alliance/LCATurretGuns.mag"
+ turret_base: "Alliance/LCaTurretBase.mag"
+ scale: 0.12
+
+ graphic_type: 3 // bolt
+ width: 2
+ length: 30
+ bitmap: "shot4.pcx"
+ flash: "flash4.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+missile: {
+ name: Archer
+ group: SRM
+ beauty: "Javelin_Beauty.pcx"
+ description: "wep.archer"
+ target_type: 0x000f00ff
+ value: 2
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1e3
+ lethal_radius: 200
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ attachment: (-1, 0, 0)
+ attachment: ( 1, 0, 0)
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 20e3
+ max_track: 60e3
+
+ carry_mass: 0.5
+ carry_resist: 2
+
+ guided: 1
+ mass: 0.5
+ thrust: 3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.12
+ light: 200
+ model: "missile03.mag"
+ trail: "smoke.pcx"
+ trail_width: 1.5
+ trail_dim: 7
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Javelin
+ group: SRM
+ beauty: "Javelin_Beauty.pcx"
+ description: "wep.javelin"
+ target_type: 0x000f00ff
+ value: 2
+ ammo: 2
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1.2e3
+ lethal_radius: 200
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ attachment: (-1, 0, 0)
+ attachment: ( 1, 0, 0)
+ attachment: ( 0,-1, 0)
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 25e3
+ max_track: 60e3
+
+ carry_mass: 0.54
+ carry_resist: 2
+
+ guided: 1
+ mass: 0.5
+ thrust: 3.3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile03.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 7
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Vector
+ group: MRM
+ description: "wep.vector"
+ beauty: "Vector_Beauty.pcx"
+ target_type: 0x000f00ff
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1.2e3
+ lethal_radius: 250
+ speed: 5e3
+ life: 15
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 80e3
+
+ carry_mass: 0.6
+ carry_resist: 2
+
+ guided: 2
+ mass: 0.5
+ thrust: 8e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile02.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 6
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Hammer
+ group: AGM
+ beauty: "Hammer_Beauty.pcx"
+ description: "wep.hammer"
+ target_type: 0xffff0000
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 5e3
+ speed: 5e3
+ life: 20
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 90e3
+
+ carry_mass: 2.103
+ carry_resist: 3
+
+ guided: 1
+ mass: 2
+ thrust: 10e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile04.mag"
+ trail: "smoke.pcx"
+ trail_width: 2.5
+ trail_dim: 5
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Harpoon
+ group: ASM
+ beauty: "Vector_Beauty.pcx"
+ description: "wep.harpoon"
+ target_type: 0x000ffff0
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 1
+ charge: 1
+ min_charge: 1
+ damage: 5e3
+ penetration: 10
+ speed: 5e3
+ life: 20
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 90e3
+
+ carry_mass: 1.255
+ carry_resist: 2
+
+ guided: 1
+ mass: 1
+ thrust: 10e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 3
+ yaw_rate: 3
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile02.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 5
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "Missile1.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+missile: {
+ name: Rockets
+ group: RKS
+ beauty: "Rocket_Beauty.pcx"
+ description: "wep.rockets"
+ target_type: 0xffffffff
+ value: 2
+ ammo: 12
+ ripple_count: 4
+ recharge_rate: 10
+ refire_delay: 0.35
+ charge: 1
+ min_charge: 1
+ damage: 1e3
+ lethal_radius: 100
+ speed: 5e3
+ life: 8
+ visible_stores: false
+
+ self_aiming: false
+ aim_az_max: 0
+ aim_el_max: 0
+
+ min_range: 5e3
+ max_range: 25e3
+ max_track: 60e3
+
+ carry_mass: 0.8
+ carry_resist: 0.3
+
+ guided: 1
+ mass: 0.2
+ thrust: 2e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 0.5
+ pitch_rate: 0.5
+ yaw_rate: 0.5
+
+ turret: "rocket_launcher.mag"
+ scale: 0.15
+ eject: (0, 0, 300)
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile00.mag"
+ trail: "smoke.pcx"
+ trail_width: 1
+ trail_dim: 8
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile2.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
+missile: {
+ name: "Recon Pod"
+ group: CAM
+ beauty: "Recon_Beauty.pcx"
+ description: "wep.recon"
+ target_type: 0xffffffff
+ value: 1
+ ammo: 10
+ ripple_count: 2
+ recharge_rate: 10
+ refire_delay: 0.35
+ charge: 1
+ min_charge: 1
+ damage: -1
+ lethal_radius: 100
+ speed: 30e3
+ life: 1.5
+ visible_stores: false
+
+ self_aiming: false
+ aim_az_max: 0
+ aim_el_max: 0
+
+ min_range: 5e3
+ max_range: 30e3
+ max_track: 60e3
+
+ carry_mass: 1.1
+ carry_resist: 1
+
+ guided: 1
+ mass: 0.2
+ thrust: 4e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 1
+ yaw_rate: 1
+
+ turret: "recon.mag"
+ scale: 0.15
+
+ sound: "click.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 4e3
+}
+
+
+drone: {
+ name: "Fighter Decoy"
+ group: DECOY
+ beauty: "Decoy_Beauty.pcx"
+ description: "wep.decoy"
+ target_type: 0x00
+ value: 1
+ ammo: 10
+ recharge_rate: 1
+ refire_delay: 1
+ damage: 0
+ speed: 300
+ life: 5
+
+ carry_mass: 0.1
+ carry_resist: 0
+
+ decoy: Fighter
+ guided: 0
+ mass: 0.5
+ thrust: 150
+ drag: 0.1
+
+ graphic_type: 2 // sprite
+ scale: 0.25
+ bitmap: "drive.pcx"
+
+ flare: "shot7.pcx"
+ flare_scale: 1.3
+
+ sound: "decoy.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
+
+primary: {
+ name: "Blockade Cannon"
+ group: PDB
+ beauty: "Blockade_Beauty.pcx"
+ description: "wep.blockade"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 2000
+ charge: 10
+ min_charge: 10
+ damage: 50
+ penetration: 10
+ speed: 7.5e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 15e3
+ max_track: 30e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 1.00
+ slew_rate: 0.10 // ~5 degrees / second
+
+ turret: "mine_guns.mag"
+ turret_base: "mine_base.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 8
+ length: 100
+ bitmap: "shot0.pcx"
+ flash: "flash0.pcx"
+ flash_scale: 1.0
+ sound: "blockade_cannon.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Vulcan Cannon"
+ group: VULCAN
+ beauty: "Vulcan_Beauty.pcx"
+ description: "wep.vulcan"
+ target_type: 0xffffffff
+ value: 1
+ recharge_rate: 15
+ refire_delay: 0.08
+ charge: 5
+ min_charge: 5
+ damage: 10
+ speed: 25e3
+ life: 2
+
+ min_range: 15e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.05
+ aim_el_max: 0.05
+
+ graphic_type: 3 // bolt
+ width: 5
+ length: 120
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 0.2
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Zolon Cannon"
+ group: GUNS
+ target_type: 0x000fffff
+ value: 2
+ recharge_rate: 30
+ refire_delay: 0.33
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 150
+ speed: 7.5e3
+ life: 2.5
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.25
+ aim_el_max: 0.25
+
+ graphic_type: 2 // sprite
+ scale: 0.75
+ light: 150
+ light_color: (140,255,180)
+ bitmap: "ShotZ.pcx"
+ sound: "shot4.wav"
+ sound_min_dist: 500
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Phalanx Cannon"
+ group: PDB
+ beauty: "Phalanx_Beauty.pcx"
+ description: "wep.phalanx"
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ turret: "Alliance/BallTurret2opt.mag"
+ scale: 0.3
+ muzzle: ( 16, 0, 110),
+ muzzle: (-16, 0, 110),
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 400
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Viking Cannon"
+ group: PDB
+ beauty: "Viking_Beauty.pcx"
+ description: "wep.viking"
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 25
+ speed: 23e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ turret: "Alliance/BallTurret1opt.mag"
+ scale: 5
+ muzzle: ( 4, 0, 65)
+ muzzle: (-4, 0, 65)
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 400
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Ursa Cannon"
+ group: PDB
+ beauty: "Ursa_Beauty.pcx"
+ description: "wep.ursa"
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.2
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 35e3
+ life: 1
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.05
+ aim_el_max: 0.70
+
+ turret: "Dantari/Ursa.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 150
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Orca Cannon"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ description: "wep.orca"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 18e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 28e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Dantari/Rail-12.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 10
+ length: 120
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca Inverted"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 18e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 28e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.10
+ aim_el_min: -0.80
+
+ turret: "Dantari/Rail-12-Inverted.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 10
+ length: 120
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca 2 Cannon"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ description: "wep.orca2"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 30
+ speed: 10e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 20e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Orca/t2_guns.mag"
+ turret_base: "Orca/t2_base.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 15
+ length: 150
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca 2 Inverted"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 7
+ speed: 10e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 20e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.10
+ aim_el_min: -0.80
+
+ turret: "Orca/t2_guns.mag"
+ turret_base: "Orca/t2_base_inv.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 15
+ length: 150
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Vanguard"
+ group: GUNS
+ beauty: "Vanguard_Beauty.pcx"
+ description: "wep.vanguard"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.15
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 25
+ speed: 15e3
+ life: 3
+
+ min_range: 5e3
+ max_range: 45e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.20
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Alliance/Guns1opt.mag"
+ turret_base: "Alliance/Base1opt.mag"
+ scale: 1.2
+ muzzle: ( 7, 0, 60),
+ muzzle: (-7, 0, 60),
+
+ graphic_type: 3 // bolt
+ width: 3
+ length: 60
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 1
+ sound: "Shot2.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Helicon"
+ group: PDB
+ beauty: "Helicon_Beauty.pcx"
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 1
+ turret: "Marakan/28MMGAUSSGUN.MAG"
+ muzzle: (0, 10, 131)
+
+ width: 4
+ length: 45
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Gauss_Bolt.jpg",
+ flash: "Marakan/Gauss_Flash.jpg",
+ flash_scale: 0.2,
+
+ sound: "Marakan/Gauss_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Light-PDB"
+ group: PDB
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 1.5,
+ turret: "Marakan/SmallGun.mag",
+
+ width: 4
+ length: 45
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Gauss_Bolt.jpg",
+ flash: "Marakan/Gauss_Flash.jpg",
+ flash_scale: 0.2,
+
+ sound: "Marakan/Gauss_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Rail-5"
+ group: RAIL
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 2,
+ turret: "Marakan/Rail-12.mag",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ width: 10,
+ length: 120,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 0.3,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Rail-12"
+ group: RAIL
+ beauty: "Rail12_Beauty.pcx"
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 3,
+ turret: "Marakan/Rail-12.mag",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ width: 15,
+ length: 150,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.5,
+ flare: "Marakan/Rail_Flare.jpg",
+ flare_scale: 0.03,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Rail-12 Inverted"
+ group: RAIL
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 3,
+ turret: "Marakan/Rail-12-Inverted.mag",
+ muzzle: ( 4, -11, 75),
+ muzzle: (-4, -11, 75),
+
+ width: 15,
+ length: 150,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.5,
+ flare: "Marakan/Rail_Flare.jpg",
+ flare_scale: 0.03,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Rail-15"
+ group: RAIL
+ beauty: "Rail15_Beauty.pcx"
+
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 150
+
+ capacity: 2000
+ charge: 1
+ min_charge: 0.8
+
+ recharge_rate: 0
+
+ refire_delay: 4
+
+ speed: 10e3
+ mass: 7
+
+ life: 4.375
+
+ guided: 0
+ syncro: true
+ self_aiming: true
+
+ slew_rate: 1
+
+ min_range: 1e3
+ max_range: 35e3
+ max_track: 55e3
+
+ graphic_type: 3
+ scale: 4,
+
+ turret: "Marakan/DUEL15INRAILGUN.MAG",
+
+ width: 18,
+ length: 170,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.9,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Mag-18"
+ group: MAG
+ beauty: "Mag18_Beauty.pcx"
+
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 220
+
+ capacity: 1000
+ charge: 1
+ min_charge: 0.9
+ recharge_rate: 0
+ refire_delay: 2
+
+ speed: 6000
+ mass: 12
+
+ life: 7.5
+
+ guided: 0
+ syncro: true
+ self_aiming: true
+
+ slew_rate: 1
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ graphic_type: 3, // blob
+
+ scale: 4,
+
+ turret: "Marakan/18INMAGGUN.MAG",
+ muzzle: (0, 12, 81),
+
+ width: 50,
+ length: 230,
+
+
+ light: 200,
+ light_color: (100, 10, 0),
+ bitmap: "Marakan/Mag_Bolt.jpg",
+ flash: "Marakan/Mag_Flash.jpg",
+ flash_scale: 3,
+ flare: "Marakan/Mag_Flare.jpg",
+ flare_scale: 0.8,
+ trail: "Marakan/Mag_Trail.jpg",
+ trail_width: 6,
+ sound: "Marakan/Mag_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+drone: {
+ name: "Rostov"
+ group: ROSTOV
+ beauty: "Rostov_Beauty.pcx"
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 9e3
+ integrity: 50
+ speed: 6000
+ ammo: 40
+ refire_delay: 5
+ life: 10
+ eject: (0,0,6000)
+ mass: 10
+ thrust: 23e3
+
+ capacity: 1,
+ ripple_count: 1,
+
+ roll_rate: 5,
+ pitch_rate: 5,
+ yaw_rate: 5,
+
+ guided: 1,
+ lethal_radius: 100,
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ charge: 1,
+ min_charge: 0.9,
+ recharge_rate: 10,
+
+ scale: 4,
+ turret: "Marakan/Rostov-L.MAG",
+
+ syncro: false,
+ self_aiming: true,
+
+ aim_az_max: 0
+ aim_az_min: 0
+ aim_el_max: 1
+ aim_el_min: -1
+
+ slew_rate: 1,
+ graphic_type: 1 // solid
+
+ roll_drag: 1,
+ pitch_drag: 1,
+ yaw_drag: 1,
+
+ light: 200,
+ light_color: (160, 100, 00),
+
+ model: "Marakan/MISSILE.mag",
+ flash: "Marakan/Rostov_Flash.jpg",
+ flash_scale: 2,
+ flare: "Marakan/Rostov_Flare.jpg",
+ flare_scale: 1.5,
+ trail: "Marakan/Rostov_Trail.jpg",
+ trail_width: 20,
+
+ sound: "Marakan/Rostov_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+drone: {
+ name: "Rostov-Starboard"
+ group: ROSTOV
+ secret: true
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 9e3
+ integrity: 50
+ speed: 6000
+ ammo: 40
+ refire_delay: 5
+ life: 10
+ eject: (0,0,6000)
+ mass: 10
+ thrust: 25e3
+
+ capacity: 1,
+ ripple_count: 1,
+
+ roll_rate: 5,
+ pitch_rate: 5,
+ yaw_rate: 5,
+
+ guided: 1,
+ lethal_radius: 100,
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ charge: 1,
+ min_charge: 0.9,
+ recharge_rate: 10,
+
+ scale: 4,
+ turret: "Marakan/Rostov-R.MAG",
+
+ syncro: false,
+ self_aiming: true,
+
+ aim_az_max: 0
+ aim_az_min: 0
+ aim_el_max: 1
+ aim_el_min: -1
+
+ slew_rate: 1,
+ graphic_type: 1 // solid
+
+ roll_drag: 1,
+ pitch_drag: 1,
+ yaw_drag: 1,
+
+ light: 200,
+ light_color: (160, 100, 00),
+
+ model: "Marakan/MISSILE.mag",
+ flash: "Marakan/Rostov_Flash.jpg",
+ flash_scale: 2,
+ flare: "Marakan/Rostov_Flare.jpg",
+ flare_scale: 1.5,
+ trail: "Marakan/Rostov_Trail.jpg",
+ trail_width: 20,
+
+ sound: "Marakan/Rostov_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+
+primary: {
+ name: "Plasma Cannon"
+ group: CANNON
+ beauty: "Decoy_Beauty.pcx"
+ description: "wep.plasma"
+ target_type: 0x000ffff0
+ value: 1
+ recharge_rate: 15
+ refire_delay: 0.15
+ charge: 10
+ min_charge: 5
+ damage: 30
+ speed: 15e3
+ life: 5
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ graphic_type: 2 // sprite
+ scale: 1
+ bitmap: "shot7.pcx"
+ sound: "shot4.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+beam: {
+ name: "XRay Laser"
+ group: XRAY
+ beauty: "XRay_Beauty.pcx"
+ description: "wep.xray"
+ target_type: 0x000ffff0
+ value: 10
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1000
+ charge: 1000
+ min_charge: 500
+ damage: 3
+ speed: 3e8
+ life: 1.5
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 3e8
+ bitmap: "shot9.pcx"
+ flash: "flash9.pcx"
+ flash_scale: 1.75
+ sound: "beam2.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+beam: {
+ name: "Gamma Laser"
+ group: GRASER
+ beauty: "Gamma_Beauty.pcx"
+ description: "wep.graser"
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 4
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 25
+ length: 3e8
+ bitmap: "ShotGamma.pcx"
+ flash: "FlashGamma.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+beam: {
+ name: "Graser Turret"
+ group: GRASER
+ beauty: "GraserTurret_Beauty.pcx"
+ description: "wep.g-turret"
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 6
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.65
+ aim_el_min: -0.08
+
+ turret: "GraserTurret/guns.mag"
+ turret_base: "GraserTurret/base.mag"
+ scale: 2
+ muzzle: ( 0, 0, 90),
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 50
+ length: 3e8
+ bitmap: "ShotGamma.pcx"
+ flash: "FlashGamma.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+
+beam: {
+ name: "Zolon Laser"
+ group: LASER
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 150
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 30
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 25
+ length: 3e8
+ bitmap: "ShotZBeam.pcx"
+ flash: "FlashZBeam.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+
+primary: {
+ name: "AAA Cannon"
+ group: AAA
+ beauty: "Ground/AAA2_Beauty.pcx"
+ description: "wep.aaa2"
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.2
+ charge: 1
+ min_charge: 1
+ damage: 50
+ speed: 30e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.75
+
+ turret: "Ground/AAA2Guns.mag"
+ turret_base: "Ground/AAA2Turret.mag"
+ scale: 2
+ muzzle: ( 12, 0, 112),
+ muzzle: (-12, 0, 112),
+
+ graphic_type: 3 // bolt
+ width: 32
+ length: 800
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Quad AAA"
+ group: AAA
+ beauty: "Ground/AAA4_Beauty.pcx"
+ description: "wep.aaa4"
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.1
+ charge: 1
+ min_charge: 1
+ damage: 25
+ speed: 30e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.75
+
+ turret: "Ground/AAA4Guns.mag"
+ turret_base: "Ground/AAA4Turret.mag"
+ scale: 2
+ muzzle: ( 29, 9, 68)
+ muzzle: (-29, 9, 68)
+ muzzle: ( 29, -8, 68)
+ muzzle: (-29, -8, 68)
+
+ graphic_type: 3 // bolt
+ width: 32
+ length: 500
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+
+
+missile: {
+ name: "SAM-1"
+ group: SAM
+ beauty: "Ground/SAM_Beauty.pcx"
+ description: "wep.sam"
+ target_type: 0x0f
+ value: 4
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 5
+ charge: 1
+ min_charge: 1
+ damage: 2.5e3
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.5
+
+ min_range: 5e3
+ max_range: 20e3
+ max_track: 60e3
+
+ carry_mass: 0.5
+ carry_resist: 2
+
+ guided: 2
+ mass: 0.5
+ thrust: 3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 3
+ yaw_rate: 3
+
+ turret: "Ground/SAMRail.mag"
+ turret_base: "Ground/SAMTurret.mag"
+ scale: 2
+
+ graphic_type: 1 // solid
+ light: 200
+ model: "sam.mag"
+ trail: "smoke.pcx"
+ trail_width: 5
+ trail_dim: 6
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "Missile1.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+
+missile: {
+ name: "Mk7 Interceptor"
+ group: MK7
+ beauty: "Mk7_Beauty.pcx"
+ description: "wep.mk7"
+ target_type: 0x000fffff
+ value: 2
+ ammo: 20
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 5
+ charge: 1
+ min_charge: 1
+ damage: 750
+ lethal_radius: 500
+ speed: 5e3
+ life: 10
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 50e3
+ max_track: 90e3
+
+ guided: 2
+ mass: 0.5
+ thrust: 15e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (0, 0, 200)
+
+ graphic_type: 1 // solid
+ scale: 0.1
+ model: "Alliance/Mk7.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 6
+ flare: "shot6.pcx"
+ flare_scale: 1
+ sound: "Mk7.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: "Fusion Torpedo"
+ group: TORP
+ beauty: "Fusion_Beauty.pcx"
+ description: "wep.fusion"
+ target_type: 0x0000fff0
+ value: 4
+ ammo: 20
+ recharge_rate: 1
+ refire_delay: 25
+ charge: 1
+ min_charge: 1
+ damage: 20e3
+ speed: 3e3
+ life: 60
+
+ min_range: 40e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 60e3
+ drag: 1.5
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 1
+ yaw_rate: 1
+
+ eject: (0, 0, 750)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "FusionTorp.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Torpedo.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Nike
+ group: NIKE
+ beauty: "Nike_Beauty.pcx"
+ description: "wep.nike"
+ target_type: 0x000ffff0
+ value: 5
+ ammo: 16
+ recharge_rate: 1
+ refire_delay: 5
+ salvo_delay: 15
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 70e3
+ drag: 1.2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (0, 0, 750)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Athena1
+ group: ATHENA
+ beauty: "Nike_Beauty.pcx"
+ description: "wep.athena"
+ target_type: 0x000ffff0
+ value: 6
+ ammo: 12
+ recharge_rate: 1
+ refire_delay: 4
+ salvo_delay: 16
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 90e3
+ drag: 1.1
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (500, 0, 0)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Athena2
+ group: ATHENA
+ beauty: "Nike_Beauty.pcx"
+ description: "wep.athena2"
+ target_type: 0x000ffff0
+ value: 6
+ ammo: 12
+ recharge_rate: 1
+ refire_delay: 4
+ salvo_delay: 16
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 90e3
+ drag: 1.1
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (-500, 0, 0)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: "Sensor Drone"
+ group: DRONE
+ beauty: "Probe_Beauty.pcx"
+ description: "wep.probe"
+ target_type: 0x00
+ value: 1
+ ammo: 4
+ recharge_rate: 1
+ refire_delay: 10
+ damage: 0
+ speed: 200
+ life: 60
+
+ carry_mass: 0.5
+ carry_resist: 0
+
+ probe: true
+ guided: 0
+ mass: 0.5
+ thrust: 700
+ drag: 0.2
+
+ eject: (0, 0, 100)
+
+ flare: "drive.pcx"
+ flare_scale: 1
+
+ sound: "probe.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
diff --git a/data/content/credits.txt b/data/content/credits.txt
new file mode 100644
index 0000000..75e6c84
--- /dev/null
+++ b/data/content/credits.txt
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<font Limerick12>STARSHATTER: The Gathering Storm<font Verdana>
+A Destroyer Studios Production
+
+
+<font Limerick12>DEVELOPMENT<font Verdana>
+
+<color bbbbb8>Producer<color ffffff>\t\t\t\t\t\tJohn DiCamillo
+<color bbbbb8>Designer<color ffffff>\t\t\t\t\t\tJohn DiCamillo
+
+<color bbbbb8>Lead Programmer<color ffffff>\t\t\tJohn DiCamillo
+<color bbbbb8>nGen Programmer<color ffffff>\t\t\tJohn DiCamillo
+<color bbbbb8>Magic3D Programmer<color ffffff>\t\tJohn DiCamillo
+
+<color bbbbb8>Art Director<color ffffff>\t\t\t\t\tSean Moser
+<color bbbbb8>3D Artwork<color ffffff>\t\t\t\t\tJason Blaz
+\t\t\t\t\t\t\t\tJohn DiCamillo
+<color bbbbb8>2D Artwork<color ffffff>\t\t\t\t\tJohn DiCamillo
+\t\t\t\t\t\t\t\tSean Moser
+
+<color bbbbb8>Player Manual<color ffffff>\t\t\t\tJohn DiCamillo
+
+<font Limerick12>AUDIO TEAM<font Verdana>
+
+<color bbbbb8>Audio Director<color ffffff>\t\t\t\tScott Cairns
+<color bbbbb8>Voice Over Director<color ffffff>\t\t\tStuart Smith
+<color bbbbb8>Musical Score<color ffffff>\t\t\t\t\tScott Cairns
+<color bbbbb8>Sound Effects<color ffffff>\t\t\t\tJohn DiCamillo
+
+\t\t\t<color bbbbb8>Jonas Devlin<color ffffff>\t\t\t\tStephen Hirst
+\t\t\t<color bbbbb8>Sarah Hunter<color ffffff>\t\t\t\tAmanda Gerrard
+\t\t\t<color bbbbb8>President Valmar<color ffffff>\t\tAndrew Godbold
+\t\t\t<color bbbbb8>Admiral Evars<color ffffff>\t\t\tJames Turner
+\t\t\t<color bbbbb8>Vice Admiral Caldott<color ffffff>\tJohn DiCamillo
+\t\t\t<color bbbbb8>Kash Anlon<color ffffff>\t\t\t\tSam Cavanaugh
+\t\t\t<color bbbbb8>Newscaster<color ffffff>\t\t\t\tStuart Smith
+\t\t\t<color bbbbb8>Newscaster<color ffffff>\t\t\t\tJodie Connor
+\t\t\t<color bbbbb8>Training Instructor<color ffffff>\t\tCallum Hayes
+
+\t\t\t<color bbbbb8>Fighter Pilot 1<color ffffff>\t\t\tAnthony Howes
+\t\t\t<color bbbbb8>Fighter Pilot 2<color ffffff>\t\t\tStuart Smith
+\t\t\t<color bbbbb8>Fighter Pilot 3<color ffffff>\t\t\tScott Cairns
+\t\t\t<color bbbbb8>Fighter Pilot 4<color ffffff>\t\t\tLina Cairns
+
+<font Limerick12>QUALITY ASSURANCE<font Verdana>
+
+<color bbbbb8>Beta Team Leads<color ffffff>\t\t\tCrazy Eddie
+\t\t\t\t\t\t\t\tMehrunes
+\t\t\t\t\t\t\t\tPheagey
+
+<color bbbbb8>Beta Testers<color ffffff>
+Dragon Lady * cybersleuth58 * ravenMKII * sky_walker *
+se5a * DamoclesX * Henry * executioner_de * FLY135 *
+Ancient Angel * Phoenix Starflare * Vice * Daedalus *
+Deadmannumberone * Deslok * Gunfighter * sniperscope *
+Swordsman * Steelviper33 * Phear * spacedad62 * loafer *
+mldaalder *URG_thrash * Gmicek * Veloxi * DarkeLyte *
+bliu * Slaor * Maddi * Qrias * xaotik * Blair * Slippy *
+Lord QDaan * A2597 * Lord Darkstar * Mr_Torgo * Rhett *
+Col. Blackwolf * starbird34 * fattytheking * Maurader *
+FS_Lancer * GreenJedi * Mopar * Bloodborg * tyrkina *
+amwhere * Bollinger * texmurph * trancetopia * XPav *
+Fallen_angel * panick * Game Ender * Spector445 * Magus *
+Darrylbar * Kallis * river * Stuntie * Kurimuzon * Ace1 *
+John Rowan * Matti Kuokkanen * Parias * Livid Hybrid *
+Mutos * Seawolf156 * Leonides * Elenkis * RedMenace *
+Bob McDobb * bk_raven * Dekzar * Mark Garanchon * jwal *
+Mark Hymer * Ploppy * Red Menace * Rick BC * dukrous *
+nanoprobe * Vespero * Alex Belton * Brian Rubin * Jason
+Ross * John Magarrell * Pumpkin Patch * Tony Molder
+
+
+<font Limerick12>CREATIVE CONSULTANTS<font Verdana>
+
+<color bbbbb8>Design<color ffffff>\t\t\t\t\t\tGreg Eakin
+<color bbbbb8>Graphics<color ffffff>\t\t\t\t\t\tMark DiCamillo
+
+<font Limerick12>TECHNICAL CONSULTANTS<font Verdana>
+
+<color bbbbb8>Aerodynamics<color ffffff>\t\t\t\tJoseph R. DiCamillo
+<color bbbbb8>Digital Control Systems<color ffffff>\t\tDavid Jenkins
+<color bbbbb8>Dynamic Campaign<color ffffff>\t\t\tJohn Walker
+
+<font Limerick12>SPECIAL THANKS<font Verdana>
+
+Ken Beckett
+Richard Brewer
+David Coy
+Dan Foy
+Jill Goldworn
+Marc Hudgins
+Randy Littlejohn
+Jack Nichols
+Jay Patel
+David Ray
+Jeff Reitman
+John Walker
+
+NaturalPoint
+Prime Sounds
+Propellerheads
+Sound Ideas
+Xiphophorous
+
+<font Limerick12>EXTRA SPECIAL THANKS<font Verdana>
+
+Mary DiCamillo
+Marisa DiCamillo
+Michael DiCamillo
+Connor DiCamillo
+
+<font Limerick12>TEAM MASCOT<font Verdana>
+
+Jake
+
+<font Limerick12>PUBLIC RELATIONS<font Verdana>
+
+http://www.starshatter.com
+milo@starshatter.com
+
diff --git a/data/content/mod_info.def b/data/content/mod_info.def
new file mode 100644
index 0000000..7b99271
--- /dev/null
+++ b/data/content/mod_info.def
@@ -0,0 +1,8 @@
+MOD_INFO
+name: "Internationalized Content"
+version: 100
+distribute: true
+
+logo: "Alliance.pcx"
+desc: "Internationalized content bundle (US/English) for Starshatter: The Gathering Storm"
+copyright: "Copyright (c) 2007 Destroyer Studios LLC.\nAll rights reserved."
diff --git a/data/shatter/Awards/Awards.def b/data/shatter/Awards/Awards.def
new file mode 100644
index 0000000..2facb09
--- /dev/null
+++ b/data/shatter/Awards/Awards.def
@@ -0,0 +1,555 @@
+AWARDS
+
+//
+// *** R A N K T A B L E ***
+//
+
+award: {
+ type: rank,
+ id: 0,
+ name: Cadet,
+ abrv: CDT,
+ desc: "This is the entry level rank for Force:Space trainees. Cadets are "
+ "authorized to fly training missions for fighter combat under appropriate trainer supervision.",
+ award: "Congratulations, Cadet! Welcome to Force:Space! "
+ "During your initial training tours, we will be observing your conduct and performance at all times. "
+ "Perform your duties to the best of your ability, and you will find the stars soon within your grasp.",
+
+ award_sound: "Awards/Rank0.wav"
+ small: Rank00,
+ large: Rank01,
+ grant: 0x7,
+ total_points: 0,
+}
+
+award: {
+ type: rank,
+ id: 1,
+ name: Ensign,
+ abrv: ENS,
+ desc: "This is the first rank of Force commissioned officers. As an Ensign, "
+ "you will be expected to fly fighter combat missions on a daily basis.",
+ award: "Congratulations on your commission, Ensign! You are in officer's country now. "
+ "Based on your new rank, you have authorization to undertake all fighter missions assigned to your unit. "
+ "You will be expected to serve Force with courage, honor, and commitment at all times.",
+
+ award_sound: "Awards/Rank1.wav"
+ small: Rank10,
+ large: Rank11,
+ grant: 0x7,
+ total_points: 500,
+}
+
+award: {
+ type: rank,
+ id: 2,
+ name: Lieutenant,
+ abrv: LT,
+ desc: "This is the second rank of Force commissioned officers. As a Lieutenant, "
+ "you will be expected to fly fighter combat missions on a daily basis.",
+ award: "Congratulations, Lieutenant! You've earned your first bar. "
+ "Don't spend so much time polishing it that you forget how to fly. "
+ "Keep your head about you, it only gets harder from here.",
+
+ award_sound: "Awards/Rank2.wav"
+ small: Rank20,
+ large: Rank21,
+ grant: 0x7,
+ total_points: 2000,
+}
+
+award: {
+ type: rank,
+ id: 3,
+ name: "Lt. Commander",
+ abrv: LCDR,
+ desc: "This is the third rank of Force commissioned officers, and the first Command Rank. "
+ "As a Lt. Commander, you may continue to fly fighter missions, or you may "
+ "request transfer to a starship command.",
+ award: "Congratulations, Lt. Commander! Welcome to the Command Ranks. Based on your record, "
+ "I'm sure that your immediate supervisors will support your transfer to "
+ "a Destroyer Squadron command, whenever you choose to request one.",
+
+ award_sound: "Awards/Rank3.wav"
+ small: Rank30,
+ large: Rank31,
+ grant: 0x03ff,
+ total_points: 5000,
+}
+
+award: {
+ type: rank,
+ id: 4,
+ name: Commander,
+ abrv: CDR,
+ desc: "Commander is the fourth rank of Force commissioned officers. As a Commander, "
+ "you are eligible for a Destroyer Command, or you may wish to head up a Fighter Wing.",
+ award: "Congratulations, Commander! Force:Command is very pleased to see the progress "
+ "of your career. Keep up the good work, and you will make Captain in no time.",
+
+ award_sound: "Awards/Rank4.wav"
+ small: Rank40,
+ large: Rank41,
+ grant: 0x03ff,
+ total_points: 10e3,
+}
+
+award: {
+ type: rank,
+ id: 5,
+ name: Captain,
+ abrv: CAPT,
+ desc: "Captain is the fifth rank of Force commissioned officers. As a Captain, "
+ "you are eligible to command any starship squadron less than a full fleet carrier.",
+ award: "Captain on deck! On behalf of Force:Command, let me extend my sincere "
+ "congratulations for a job well done. When you are ready to move up to a "
+ "Cruiser command, just put in the transfer request. A spot will be waiting for you.",
+
+ award_sound: "Awards/Rank5.wav"
+ small: Rank50,
+ large: Rank51,
+ grant: 0x0fff,
+ total_points: 20e3,
+}
+
+award: {
+ type: rank,
+ id: 6,
+ name: Commodore,
+ abrv: COMM,
+ desc: "Commodore is the sixth rank of Force commissioned officers, and the lowest rank of "
+ "the Admiralty. As a Commodore, you may command any starship squadron in the fleet.",
+ award: "Very well done, Commodore! Welcome to the Admiral's Club. Now that you are becoming "
+ "one of the 'old gray hairs' of the fleet, you should start thinking about taking on "
+ "some bigger challenges. A fleet carrier battle group may be just the opportunity you need.",
+
+ award_sound: "Awards/Rank6.wav"
+ small: Rank60,
+ large: Rank61,
+ grant: 0xffff,
+ total_points: 40e3,
+}
+
+award: {
+ type: rank,
+ id: 7,
+ name: "Vice Admiral",
+ abrv: VADM,
+ desc: "Vice Admiral is the seventh rank of Force commissioned officers, and the second rank of "
+ "the Admiralty. As a Vice Admiral, you may command any starship squadron in the fleet.",
+ award: "Congratulations, Vice Admiral! Force:Command is very pleased to see the progress "
+ "of your career. SECNAV and the Executive Board will be looking for great things from "
+ "you. Your leadership will be a great asset to your assigned command.",
+
+ award_sound: "Awards/Rank7.wav"
+ small: Rank70,
+ large: Rank71,
+ grant: 0xffff,
+ total_points: 100e3,
+}
+
+award: {
+ type: rank,
+ id: 8,
+ name: "Admiral",
+ abrv: ADM,
+ desc: "Admiral is the eighth rank of Force commissioned officers, and the third rank of "
+ "the Admiralty. As an Admiral, you may command any starship squadron in the fleet.",
+ award: "Congratulations, Admiral! In recognition of your continued excellence and dedication, "
+ "Force:Command is very pleased to grant you this promotion. Your service record is "
+ "an honor to your command. Thank you for all the hard work you have been doing.",
+
+ award_sound: "Awards/Rank8.wav"
+ small: Rank80,
+ large: Rank81,
+ grant: 0xffff,
+ total_points: 150e3,
+}
+
+award: {
+ type: rank,
+ id: 9,
+ name: "Fleet Admiral",
+ abrv: FADM,
+ desc: "Fleet Admiral is the ninth rank of Force commissioned officers, and the second highest rank of "
+ "the Admiralty. As a Fleet Admiral, you may command any starship squadron in the fleet.",
+ award: "Congratulations, Fleet Admiral! In recognition of your continued excellence and dedication, "
+ "Force:Command is very pleased to grant you this promotion. Your service record is "
+ "an honor to your command. Thank you for all the hard work you have been doing.",
+
+ award_sound: "Awards/Rank9.wav"
+ small: Rank90,
+ large: Rank91,
+ grant: 0xffff,
+ total_points: 200e3,
+}
+
+award: {
+ type: rank,
+ id: 10,
+ name: "Grand Admiral",
+ abrv: GADM,
+ desc: "Grand Admiral is the tenth and highest rank of all Force commissioned officers, reporting "
+ "directly to SECNAV. Only one officer in the entire fleet is awarded this supreme rank at any one time.",
+ award: "Congratulations, Grand Admiral! On behalf of the Alliance President, with the full authorization of the "
+ "Combined Senate, SECNAV is proud to grant you this promotion. "
+ "Your leadership and dedication has been an inspiration to us all. "
+ "You will hold this honorary rank award for life.",
+
+ award_sound: "Awards/RankA.wav"
+ small: RankA0,
+ large: RankA1,
+ grant: 0xffff,
+ total_points: 250e3,
+}
+
+//
+// *** M E D A L T A B L E ***
+//
+
+award: {
+ type: medal,
+ id: 0x0001,
+ name: "Operation Nightfall",
+
+ desc: "The Operation Nightfall Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the Marakan Core Theater.",
+
+ award: "The Operation Nightfall Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the Marakan Core Theater.",
+
+ small: Ribbon05,
+ large: Medal05,
+
+ campaign_id: 5,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0002,
+ name: "Operation Firestorm",
+
+ desc: "The Operation Firestorm Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in either the Ostara-Tarsus-Kolchev or the Loris-Korian Theaters.",
+
+ award: "The Operation Firestorm Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in either the Ostara-Tarsus-Kolchev or the Loris-Korian Theaters.",
+
+ small: Ribbon04,
+ large: Medal04,
+
+ campaign_id: 4,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0004,
+ name: "Operation Shining Fortress",
+
+ desc: "The Operation Shining Fortress Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the defense of the Jarnell, Borova, and Athenar systems.",
+
+ award: "The Operation Shining Fortress Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the defense of the Jarnell, Borova, and Athenar systems.",
+
+ small: Ribbon03,
+ large: Medal03,
+
+ campaign_id: 3,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0010,
+ name: "Operation Highland",
+
+ desc: "The Operation Highland Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the Solus-Renser Theater of Operations.",
+
+ award: "The Operation Highland Campaign medal is awarded to any member of any branch of Force who "
+ "participated in combat action in the Solus-Renser Theater of Operations.",
+
+ small: Ribbon01,
+ large: Medal01,
+
+ campaign_id: 2,
+ campaign_complete: true,
+ dynamic_campaign: true,
+ ceremony: false,
+}
+
+award: {
+ type: medal,
+ id: 0x0020,
+ name: "Order of the Red Flame",
+
+ desc: "The Order of the Red Flame is awarded to any member of any branch of Force "
+ "who is killed or wounded during combat action, either in hostile, neutral, "
+ "or friendly territory.",
+
+ award: "For meritorious service during combat action, it is my honor to bestow upon "
+ "you this Order of the Red Flame "
+ "in the name of the Chief Executive Officer of the Terellian Alliance. "
+ "May this small token speed the healing of your injuries and return you swiftly "
+ "to your unit.",
+
+ small: Ribbon06,
+ large: Medal06,
+ lost: 1,
+ min_rank: 1,
+ max_rank: 6,
+ lottery: 2,
+}
+
+award: {
+ type: medal,
+ id: 0x0040,
+ name: "Flight Medal",
+
+ desc: "The Flight Medal is awarded to any member of any branch of Force "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in aerial or orbital flight. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ award: "The Flight Medal is awarded to any member of any branch of Force "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in aerial or orbital flight. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ small: Ribbon07,
+ large: Medal07,
+ lost: -1,
+ kills: 3,
+ min_rank: 1,
+ max_rank: 6,
+ max_ship_class: attack,
+ lottery: 10,
+ total_missions: 15,
+}
+
+award: {
+ type: medal,
+ id: 0x0080,
+ name: "Command Medal",
+
+ desc: "The Command Medal is awarded to any member of any branch of Force "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in a command role aboard an Alliance Fleet Starship. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ award: "The Command Medal is awarded to any member of any branch of Force "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in a command role aboard an Alliance Fleet Starship. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ small: Ribbon08,
+ large: Medal08,
+ lost: -1,
+ kills: 3,
+ min_rank: 3,
+ max_rank: 6,
+ min_ship_class: corvette,
+ lottery: 10,
+}
+
+award: {
+ type: medal,
+ id: 0x0100,
+ name: "Distinguished Service Cross",
+
+ desc: "The Distinguished Service Cross is awarded to any person who, while serving with any branch of Force, "
+ "distinguishes him or herself by extraordinary heroism "
+ "while engaged in action against an enemy of the Alliance. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ award: "The Distinguished Service Cross is awarded to any person who, while serving with any branch of Force, "
+ "distinguishes him or herself by extraordinary heroism "
+ "while engaged in action against an enemy of the Alliance. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ small: Ribbon09,
+ large: Medal09,
+
+ kills: 1,
+ min_rank: 3,
+ lottery: 20,
+ total_missions: 100,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0200,
+ name: "Gold Star",
+
+ desc: "The Gold Star Medal is awarded to any person who, while serving in any capacity in or with Force, "
+ "has distinguished him or herself by heroic or meritorious achievement or "
+ "service while engaged in an action against an enemy of the Terellian Alliance.",
+
+ award: "The Gold Star Medal is awarded to any person who, while serving in any capacity in or with Force, "
+ "has distinguished him or herself by heroic or meritorious achievement or "
+ "service while engaged in an action against an enemy of the Terellian Alliance.",
+
+ small: Ribbon0A,
+ large: Medal0A,
+
+ lost: -1,
+ kills: 3,
+ min_rank: 4,
+ max_rank: 7,
+ lottery: 20,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0400,
+ name: "Order of the Wounded Lion",
+ desc: "The Order of the Wounded Lion is awarded to any member of any branch of Force "
+ "who is killed or wounded during combat action, either in hostile, neutral, "
+ "or friendly territory.",
+
+ award: "For meritorious service during combat action, it is my honor to bestow upon "
+ "you this Order of the Wounded Lion "
+ "in the name of the Chief Executive Officer of the Terellian Alliance. "
+ "May this small token speed the healing of your injuries and return you swiftly "
+ "to your unit.",
+
+ small: Ribbon0B,
+ large: Medal0B,
+
+ lost: 1,
+ kills: 5,
+ required_awards: 0x0020,
+ lottery: 2,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x0800,
+ name: "Command Shield",
+ desc: "The Command Shield is awarded to any member of Force:Space "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in a command role aboard an Alliance Fleet Starship. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ award: "The Command Shield is awarded to any member of Force:Space "
+ "who distinguishes him or herself by heroism or extraordinary achievement "
+ "while participating in a command role aboard an Alliance Fleet Starship. "
+ "The performance of the act of heroism must be evidenced by voluntary action "
+ "above and beyond the call of duty. ",
+
+ small: Ribbon0C,
+ large: Medal0C,
+
+ lost: -1,
+ kills: 2,
+ min_ship_class: destroyer,
+ required_awards: 0x0080,
+ lottery: 20,
+ total_missions: 50,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x1000,
+ name: "Silver Comet",
+
+ desc: "The Silver Comet Medal is awarded to a person who, while serving in any capacity with Force, "
+ "distinguishes him or herself by extraordinary heroism while engaged in an action against "
+ "an enemy of the Terellian Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The act or acts of heroism must have been so notable and have "
+ "involved risk of life so extraordinary as to set the individual apart from his or her comrades.",
+
+ award: "The Silver Comet Medal is awarded to a person who, while serving in any capacity with Force, "
+ "distinguishes him or herself by extraordinary heroism while engaged in an action against "
+ "an enemy of the Terellian Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The act or acts of heroism must have been so notable and have "
+ "involved risk of life so extraordinary as to set the individual apart from his or her comrades.",
+
+ small: Ribbon0D,
+ large: Medal0D,
+
+ kills: 8,
+ required_awards: 0x0400,
+ lottery: 3,
+ total_missions: 100,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x2000,
+ name: "White Star",
+
+ desc: "The White Star Medal is awarded to a person who, while serving in any capacity with Force, "
+ "distinguishes him or herself by exceptional gallantry in space while engaged in an action against "
+ "an enemy of the Terellian Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The deed performed must have been so notable and have "
+ "involved risk of life so extraordinary as to set the individual apart from his or her comrades.",
+
+ award: "The White Star Medal is awarded to a person who, while serving in any capacity with Force, "
+ "distinguishes him or herself by exceptional gallantry in space while engaged in an action against "
+ "an enemy of the Terellian Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The deed performed must have been so notable and have "
+ "involved risk of life so extraordinary as to set the individual apart from his or her comrades.",
+
+ small: Ribbon0E,
+ large: Medal0E,
+
+ kills: 8,
+ required_awards: 0x0400,
+ lottery: 3,
+ total_missions: 150,
+ dynamic_campaign: true
+}
+
+award: {
+ type: medal,
+ id: 0x4000,
+ name: "Golden Meteor",
+
+ desc: "The Golden Meteor is awarded by the Alliance President, in the name of the Combined Senate, "
+ "to a person who, while an active member of Force, distinguishes him or herself conspicuously "
+ "by exceptional gallantry at the risk of his or her life above and beyond the call of duty while "
+ "engaged in action against an enemy of the Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The deed performed must have been one of personal bravery or self-sacrifice "
+ "so conspicuous as to clearly distinguish the individual above his or her comrades. "
+ "The Golden Meteor is the highest honor that may be bestowed upon any citizen of the Alliance.",
+
+ award: "The Golden Meteor is awarded by the Alliance President, in the name of the Combined Senate, "
+ "to a person who, while an active member of Force, distinguishes him or herself conspicuously "
+ "by exceptional gallantry at the risk of his or her life above and beyond the call of duty while "
+ "engaged in action against an enemy of the Alliance, or while engaged in military operations involving conflict "
+ "with an opposing force. The deed performed must have been one of personal bravery or self-sacrifice "
+ "so conspicuous as to clearly distinguish the individual above his or her comrades. "
+ "The Golden Meteor is the highest honor that may be bestowed upon any citizen of the Alliance.",
+
+ small: Ribbon0F,
+ large: Medal0F,
+
+ kills: 10,
+ required_awards: 0x3400,
+ total_missions: 200,
+ dynamic_campaign: true
+}
+
+
diff --git a/data/shatter/Campaigns/01/Missions.def b/data/shatter/Campaigns/01/Missions.def
new file mode 100644
index 0000000..c643f85
--- /dev/null
+++ b/data/shatter/Campaigns/01/Missions.def
@@ -0,0 +1,57 @@
+MISSIONLIST
+
+mission: {
+ id: 1,
+ name: "1. Basic Space Flight",
+ desc: "Space-based fighters. Practice launching, flying, docking, and basic spaceborne maneuvering.",
+ start: "01/09:23:00",
+ script: "T1.def"
+}
+
+mission: {
+ id: 2,
+ name: "2. Target Practice",
+ desc: "Space-based fighters. Practice pairs combat against target drones.",
+ start: "01/11:15:00",
+ script: "T2.def"
+}
+
+mission: {
+ id: 3,
+ name: "3. Flight School",
+ desc: "Airborne fighters. Practice takeoffs, landings, and basic atmospheric maneuvering.",
+ start: "01/16:23:00",
+ script: "T3.def"
+}
+
+mission: {
+ id: 4,
+ name: "4. Ground Strike",
+ desc: "Air-to-ground action. Practice destroying ground targets.",
+ start: "02/05:35:00",
+ script: "T4.def"
+}
+
+mission: {
+ id: 5,
+ name: "5. Training Cruise",
+ desc: "Learn to command starships. Practice engaging target drones with a Frigate class ship.",
+ start: "03/15:20:00",
+ script: "T5.def"
+}
+
+mission: {
+ id: 6,
+ name: "6. Advanced Starship Combat",
+ desc: "Learn to command starships. Practice engaging starship targets with a Destroyer class ship.",
+ start: "04/11:00:00",
+ script: "T6.def"
+}
+
+mission: {
+ id: 7,
+ name: "7. Carrier Operations",
+ desc: "Learn to direct fleet operations. Practice orbital carrier operations.",
+ start: "05/09:30:00",
+ script: "T7.def"
+}
diff --git a/data/shatter/Campaigns/01/Scenes/Intro.def b/data/shatter/Campaigns/01/Scenes/Intro.def
new file mode 100644
index 0000000..e1884a0
--- /dev/null
+++ b/data/shatter/Campaigns/01/Scenes/Intro.def
@@ -0,0 +1,153 @@
+MISSION
+
+name: "Campaign 01 - Intro"
+type: "Patrol"
+system: Borova
+region: Borova
+stardate: 1001994001
+
+degrees: true
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: true
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-6e3, 10e3, 0)
+ navpt: { cmd: Vector, loc: (-6e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -80e3, 0), speed: 500 }
+}
+
+element: {
+ name: "Lifters"
+ design: "Zodiac"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 8
+ iff: 1
+ region: "Borova"
+ loc: (17e3, 18e3, 0)
+}
+
+element: {
+ name: "Proteus"
+ design: "Zodiac"
+ squadron: "Lifters"
+ commander: "Archon"
+ mission: "Transport"
+ head: -30
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (15e3, 29e3, 0)
+
+ navpt: { cmd: Vector, loc: (7e3, 17e3, 0), speed: 500 }
+ navpt: { cmd: RTB, loc: (4e3, 9e3, 0), speed: 350 }
+}
+
+event: { id: 100, event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Hold, param: 99, ship: Archon }
+event: { event: Hold, param: 99, ship: Stalwart }
+event: { event: Hold, param: 99, ship: Gerson }
+event: { event: Hold, param: 99, ship: Simmons }
+
+event: { event: Camera, param: 3, target: Proteus, vec: (1,-0.1,1500) }
+event: { event: Camera, param: 5, vec: (0.10, 0.002, -0.01) }
+
+event: { event: Display, time: 1, message: "Training Shuttle 'Proteus'", font: Limerick18, color: 0xffffff80, fade: (1,15,1), rect: (20,20, 400,100) }
+event: { event: Display, time: 3, message: "Borova Orbit", font: Limerick12, color: 0xffffff80, fade: (1,13,1), rect: (20,40, 400,100) }
+
+event: { id: 1, time: 5, sound: "Vox/Scenes/01/Intro-1.ogg" }
+event: { id: 2, time: 15, sound: "Vox/Scenes/01/Intro-2.ogg" }
+event: { id: 3, time: 52, sound: "Vox/Scenes/01/Intro-3.ogg" }
+event: { id: 4, sound: "Vox/Scenes/01/Intro-4.ogg", trigger: Dock, trigger_ship: Proteus }
+
+event: { event: Hold, param: 0, ship: Archon, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Stalwart, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Gerson, trigger: Event, trigger_param: 4 }
+event: { event: Hold, param: 0, ship: Simmons, trigger: Event, trigger_param: 4 }
+
+event: { event: Camera, param: 3, target: Archon, vec: (2,0,2700), trigger: Event, trigger_param: 4 }
+event: { event: Camera, param: 5, vec: (0.12, 0.006, -0.02), trigger: Event, trigger_param: 4 }
+
+event: { event: Display, message: "Task Force 3.7", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 400,100), trigger: Event, trigger_param: 4 }
+event: { event: Display, message: "CV-71 'Archon'", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4 }
+event: { event: Display, message: "CA-524 'Stalwart'", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 3 }
+event: { event: Display, message: "DD/E-682 'Gerson'", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 6 }
+event: { event: Display, message: "DD/E-687 'Simmons'", font: Limerick12, color: 0xffffff80, fade: (1,1,1), rect: (20,40, 200,100), trigger: Event, trigger_param: 4, delay: 9 }
+
+event: { event: Jump, ship: Archon, target: Tulkas, trigger: Event, trigger_param: 4, delay: 20 }
+event: { event: Jump, ship: Stalwart, target: Tulkas, trigger: Event, trigger_param: 4, delay: 19 }
+event: { event: Jump, ship: Gerson, target: Tulkas, trigger: Event, trigger_param: 4, delay: 18 }
+event: { event: Jump, ship: Simmons, target: Tulkas, trigger: Event, trigger_param: 4, delay: 16 }
+
+event: { event: Display, image: "Campaigns/01/Scenes/Black.pcx", color: 0xffffffff, fade: (1,30,1), rect: (0,0,0,0) , trigger: Event, trigger_param: 4, delay: 21 }
+event: { event: Display, image: "Campaigns/01/Scenes/Starshatter.pcx", color: 0xffffffff, fade: (1,10,1), rect: (0,0, -1024,-256) , trigger: Event, trigger_param: 4, delay: 22 }
+event: { event: Display, image: "Campaigns/01/Scenes/TheGatheringStorm.pcx", color: 0xffffffff, fade: (1, 7,1), rect: (0,0, -1024,-256) , trigger: Event, trigger_param: 4, delay: 25 }
+
+event: { id: 200, event: EndScene, message: "Scene 1", delay: 35, trigger: Event, trigger_param: 4 }
+event: { id: 201, event: Exit, delay: 35, trigger: Event, trigger_param: 4 }
+
+// EOF
diff --git a/data/shatter/Campaigns/01/T1.def b/data/shatter/Campaigns/01/T1.def
new file mode 100644
index 0000000..6e29706
--- /dev/null
+++ b/data/shatter/Campaigns/01/T1.def
@@ -0,0 +1,78 @@
+MISSION
+
+name: "Basic Space Flight"
+type: "Training"
+system: "Janus"
+region: "Janek"
+
+objective:
+ "Training - "
+ "Practice spaceborne fighter operations."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "The fleet carrier Archon has been detached "
+ "to Janek orbit to practice spaceborne fighter "
+ "operations. As part of the exercise, you have "
+ "been tasked with flying patrol patterns "
+ "with your training instructor."
+
+start: "01/09:23:00"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Stallions,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ }
+
+element: {
+ name: Delta
+ design: Falcon
+ squadron: Stallions
+ loc: (1e3, 2e3, 0)
+ mission: sweep
+ player: 2
+ alert: true
+ count: 2
+ iff: 1
+ loadout: { ship: -1, name: "ACM Medium Range" }
+
+ navpt: { cmd: vector, loc: (10e3,-20e3, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (30e3,-20e3, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (40e3, 0, 0), speed: 500 }
+ navpt: { cmd: vector, loc: (15e3, 20e3, 0), speed: 500 }
+ navpt: { cmd: rtb, loc: ( 0, 25e3, 0), speed: 250 }
+}
+
+
+// VOICE-OVER
+
+
+event: { event: Message, time: 2, sound: "Vox/Train/Train-01-01.ogg", message: "Please wait" }
+event: { event: Message, time: 35, sound: "Vox/Train/Train-01-02.ogg", message: "Raise your landing gear" }
+event: { event: Message, time: 50, sound: "Vox/Train/Train-01-03.ogg", message: "Basic controls" }
+event: { event: Message, time: 75, sound: "Vox/Train/Train-01-04.ogg", message: "Mouse steering" }
+event: { event: Message, time: 100, sound: "Vox/Train/Train-01-05.ogg", message: "Navigation system" }
+event: { event: Message, time: 125, sound: "Vox/Train/Train-01-06.ogg", message: "Disengage autonav" }
+event: { event: Message, time: 135, sound: "Vox/Train/Train-01-07.ogg", message: "Throttle and augmenter" }
+event: { event: Message, time: 170, sound: "Vox/Train/Train-01-08.ogg", message: "Lateral thrusters" }
+event: { event: Message, id: 100, sound: "Vox/Train/Train-01-09.ogg", message: "Return to base",
+ trigger: Navpoint, trigger_param: 5, trigger_ship: Delta }
+event: { event: Message, sound: "Vox/Train/Train-01-10.ogg", message: "Docking procedure",
+ trigger: Event, trigger_param: 100, delay: 25 }
+
+
diff --git a/data/shatter/Campaigns/01/T2.def b/data/shatter/Campaigns/01/T2.def
new file mode 100644
index 0000000..25aac6b
--- /dev/null
+++ b/data/shatter/Campaigns/01/T2.def
@@ -0,0 +1,292 @@
+MISSION
+
+name: "Target Practice"
+type: "Training"
+system: "Janus"
+region: "Janek"
+
+objective:
+ "Training - "
+ "Practice spaceborne fighter operations."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "The fleet carrier Archon has been detached "
+ "to Janek orbit to practice spaceborne fighter "
+ "operations. As part of the exercise, you have "
+ "been tasked with flying patrol patterns "
+ "and destroying target drones in your sector."
+
+start: "01/09:23:00"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+/*****/
+
+element: {
+ name: Stallions,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ }
+
+element: {
+ name: Echo,
+ design: Falcon,
+ squadron: Stallions,
+ loc: (1e3, 2e3, 0),
+ mission: sweep,
+ objective: { cmd: intercept, tgt: Alpha },
+ objective: { cmd: intercept, tgt: Bravo },
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: ( 5e3,-10e3, 0), speed: 500 },
+ navpt: { cmd: vector, loc: (12e3,-25e3, 0), speed: 500 },
+ navpt: { cmd: sweep, loc: (40e3, 0, 0), speed: 500 },
+ navpt: { cmd: sweep, loc: (30e3, 30e3, 0), speed: 500 },
+ navpt: { cmd: rtb, loc: ( 0, 30e3, 0), speed: 250 }
+}
+
+/***/
+
+element: {
+ name: Alpha,
+ design: TargetDrone,
+ loc: (-12e3, -50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-8e3, -50e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, -30e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 50e3, 0), speed: 400 },
+}
+
+element: {
+ name: Bravo,
+ design: TargetDrone,
+ loc: (5e3, 50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (10e3, 40e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (20e3, 25e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, -50e3, 0), speed: 400 },
+}
+
+element: {
+ name: Delta,
+ design: Viper,
+ loc: (40e3, 60e3, 0),
+ count: 2,
+ iff: 200,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: sweep, loc: (15e3, -40e3, 0), speed: 750 },
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Alpha 4",
+}
+
+
+
+event: {
+ id: 106,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 1",
+}
+
+event: {
+ id: 107,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 2",
+}
+
+event: {
+ id: 108,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 3",
+}
+
+event: {
+ id: 109,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Bravo 4",
+}
+
+
+event: {
+ id: 120,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Delta 1",
+}
+
+event: {
+ id: 121,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Delta 2",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 151, event: Message, time: 2, sound: "Vox/Train/Train-02-01.ogg", message: "Please wait" }
+event: { id: 152, event: Message, time: 25, sound: "Vox/Train/Train-02-02a.ogg", message: "Raise your landing gear" }
+event: { id: 153, event: Message, time: 42, sound: "Vox/Train/Train-02-02b.ogg", message: "Maintain formation" }
+event: { id: 154, event: Message, time: 55, sound: "Vox/Train/Train-02-03.ogg", message: "Sensor combat markers" }
+event: { id: 155, event: Message, time: 90, sound: "Vox/Train/Train-02-04.ogg", message: "Missile Combat" }
+
+event: {
+ id: 199,
+ event: Message,
+ trigger: "Event (ANY)",
+ trigger_param: (101, 102, 103, 104),
+}
+
+event: {
+ id: 200,
+ event: Message,
+ sound: "Vox/Train/Train-02-05.ogg",
+ message: "Good!",
+ trigger: "Event (ALL)",
+ trigger_param: (155, 199),
+ delay: 1
+}
+
+event: {
+ id: 201,
+ event: Message,
+ sound: "Vox/Train/Train-02-06.ogg", message: "Gun Combat",
+ trigger: Event,
+ trigger_param: 200,
+ delay: 5
+}
+
+event: {
+ id: 205,
+ event: Message,
+ sound: "Vox/Train/Train-02-07.ogg",
+ message: "Alpha Drones Destroyed - Proceed to next navpoint",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104, 201),
+ delay: 1
+}
+
+
+event: {
+ id: 210,
+ event: Message,
+ sound: "Vox/Train/Train-02-08.ogg",
+ event_message: "All Drones Destroyed",
+ trigger: "Event (ALL)",
+ trigger_param: (205, 106, 107, 108, 109),
+}
+
+event: {
+ id: 211,
+ event: Message,
+ sound: "Vox/Train/Train-02-09.ogg",
+ message: "Engage Vampires",
+ trigger: Event,
+ trigger_param: 210,
+ delay: 3
+}
+
+
+event: {
+ id: 212,
+ event: IFF,
+ event_param: 2,
+ event_ship: "Delta 1",
+ trigger: Event,
+ trigger_param: 211,
+ delay: 3
+}
+
+event: {
+ id: 213,
+ event: Message,
+ sound: "Vox/Train/Train-02-10.ogg",
+ event_message: "Inbound threat evasion techniques",
+ trigger: "Event",
+ trigger_param: 211,
+ delay: 25
+}
+
+event: {
+ id: 215,
+ event: Message,
+ sound: "Vox/Train/Train-02-11.ogg",
+ event_message: "Vampires Destroyed",
+ trigger: "Event (ALL)",
+ trigger_param: (120, 121),
+}
+
+event: {
+ id: 300,
+ event: Message,
+ message: "Return to base",
+ sound: "Vox/Train/Train-02-12.ogg",
+ trigger: Navpoint,
+ trigger_param: 5,
+ trigger_ship: Echo
+}
+
+event: {
+ id: 301,
+ event: Message,
+ message: "Docking procedure",
+ sound: "Vox/Train/Train-02-13.ogg",
+ trigger: Event,
+ trigger_param: 300,
+ delay: 18
+}
diff --git a/data/shatter/Campaigns/01/T3.def b/data/shatter/Campaigns/01/T3.def
new file mode 100644
index 0000000..e9f3ee2
--- /dev/null
+++ b/data/shatter/Campaigns/01/T3.def
@@ -0,0 +1,289 @@
+MISSION
+
+name: "Flight School"
+type: "Training"
+system: "Janus"
+region: "Janek Station"
+
+objective:
+ "Training - "
+ "Practice airborne fighter operations."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "Your squadron, the Avengers, are on temporary "
+ "detached duty to Janek Station."
+ "As part of the exercise, you have "
+ "been tasked with practicing take offs and landings, "
+ "flying patrol patterns "
+ "and destroying target drones in your sector."
+
+start: "01/13:23:00"
+stardate: 1084144000
+
+degrees: true
+
+
+element: {
+ name: "Janek Station",
+ design: Airbase1,
+ loc: (25e3, 0, 0),
+ head: -90,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: "Janek Station",
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Alpha,
+ design: Falcon,
+ squadron: Avengers,
+ loc: (15e3,-5e3, 5e3),
+ mission: sweep,
+ objective: { cmd: intercept, tgt: Sierra },
+ player: 1,
+ head: -90,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: (-15e3, -5e3, 7e3), speed: 350 },
+ navpt: { cmd: vector, loc: (-15e3, -20e3, 8e3), speed: 500 },
+ navpt: { cmd: sweep, loc: ( 0, -10e3, 10e3), speed: 500 },
+ navpt: { cmd: sweep, loc: ( 10e3, -10e3, 10e3), speed: 500 },
+ navpt: { cmd: rtb, loc: ( 60e3, 0, 10e3), speed: 400 },
+}
+
+
+/***/
+
+element: {
+ name: Sierra,
+ design: TargetDrone,
+ loc: ( 50e3, 20e3, 10e3),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: ( 20e3, 20e3, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: ( 20e3, 0, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: ( 0, -20e3, 10e3), speed: 300 },
+ navpt: { cmd: vector, loc: (-20e3, -15e3, 10e3), speed: 300 },
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 28e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-21e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-16e3, 32e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Dome",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 31e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-18e3, 30e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Fact03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-17e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 4,
+ iff: 2,
+ playable: false,
+ region: "Janek Station",
+ loc: (70000, -10000, 0),
+
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Sierra 4",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 200, event: Message, time: 2, sound: "Vox/Train/Train-03-01.ogg", message: "Please wait" }
+event: { id: 210, event: Message, time: 20, sound: "Vox/Train/Train-03-02.ogg", message: "Taking off" }
+event: { id: 220, event: Message, time: 40, sound: "Vox/Train/Train-03-03.ogg", message: "Raise your langing gear" }
+event: { id: 230, event: Message, time: 65, sound: "Vox/Train/Train-03-04.ogg", message: "Engage autonav" }
+
+event: {
+ id: 240,
+ event: Message,
+ message: "Disengage autonav"
+ sound: "Vox/Train/Train-03-05.ogg",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 250,
+ event: Message,
+ sound: "Vox/Train/Train-03-06.ogg",
+ message: "Airborne combat skills",
+ trigger: Event,
+ trigger_param: 240,
+ delay: 14
+}
+
+event: {
+ id: 260,
+ event: Message,
+ sound: "Vox/Train/Train-03-07.ogg",
+ message: "Well done!",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104),
+ delay: 1
+}
+
+event: {
+ id: 270,
+ event: Message,
+ sound: "Vox/Train/Train-03-08.ogg",
+ message: "Order your wingman to head for home",
+ trigger: Navpoint,
+ trigger_param: 4,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 300,
+ event: Message,
+ sound: "Vox/Train/Train-03-09.ogg",
+ message: "Return to base",
+ trigger: Navpoint,
+ trigger_param: 5,
+ trigger_ship: Alpha
+}
+
+event: {
+ id: 310,
+ event: Message,
+ time: 120,
+ sound: "Vox/Train/Train-03-10.ogg",
+ message: "Landing procedure",
+ trigger: Event,
+ ship: "Alpha 1",
+ trigger: Range,
+ trigger_param: 15e3,
+ trigger_ship: "Janek Station"
+}
+
+event: {
+ id: 311,
+ event: Message,
+ time: 120,
+ sound: "Vox/Train/Train-03-11.ogg",
+ message: "Final approach",
+ ship: "Alpha 1",
+ trigger: Range,
+ trigger_param: 10e3,
+ trigger_ship: "Janek Station"
+}
+
+
+/***/
diff --git a/data/shatter/Campaigns/01/T4.def b/data/shatter/Campaigns/01/T4.def
new file mode 100644
index 0000000..f08189b
--- /dev/null
+++ b/data/shatter/Campaigns/01/T4.def
@@ -0,0 +1,273 @@
+MISSION
+
+name: "Ground Strike"
+type: "Training"
+system: "Janus"
+region: "Janek Station"
+
+objective:
+ "Training Strike - "
+ "Destroy simulated mining operation."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "Your squadron, the Stallions, are on temporary "
+ "detached duty to Janek Station. "
+ "As part of the exercise, you have "
+ "been tasked with destroying support "
+ "facilities for a simulated mining operation."
+
+start: "02/05:35:00"
+stardate: 1084170240
+
+degrees: true
+
+element: {
+ name: "Janek Station",
+ design: Airbase1,
+ loc: (25e3, 0, 0),
+ head: -90,
+ iff: 1,
+ command_ai: 0,
+}
+
+element: {
+ name: Stallions,
+ design: Stormhawk,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ carrier: "Janek Station",
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Alpha,
+ design: Stormhawk,
+ squadron: Stallions,
+ player: 1,
+ alert: true,
+ loc: (15e3, -5e3, 5e3),
+ count: 2,
+ iff: 1,
+ head: -90,
+
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ mission: strike,
+ objective: { cmd: strike, tgt: "Cooling Tower" },
+ navpt: { cmd: vector, loc: ( 0, -40e3, 5e3), speed: 500, formation: 0 },
+ navpt: { cmd: strike, loc: (30e3, -15e3, 7e3), speed: 500, formation: 3 },
+ navpt: { cmd: rtb, loc: (50e3, 0, 5e3), speed: 400 },
+}
+
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 28e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Bldg00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-21e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-16e3, 32e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Dome",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-19e3, 31e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Office Block",
+ design: "Bldg01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-18e3, 30e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Building",
+ design: "Fact03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Janek Station",
+ loc: (-17e3, 29e3, 0),
+ head: -13
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 4,
+ iff: 2,
+ playable: false,
+ region: "Janek Station",
+ loc: (70000, -10000, 0),
+
+}
+
+
+event: {
+ id: 101,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 1",
+}
+
+event: {
+ id: 102,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 2",
+}
+
+event: {
+ id: 103,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 3",
+}
+
+event: {
+ id: 104,
+ event: Message,
+ trigger: Destroyed,
+ trigger_ship: "Cooling Tower 4",
+}
+
+
+// VOICE-OVER
+
+
+event: { id: 200, event: Message, time: 2, sound: "Vox/Train/Train-04-01.ogg", message: "Please wait" }
+event: { id: 210, event: Message, time: 20, sound: "Vox/Train/Train-04-02.ogg", message: "Taking off" }
+event: { id: 220, event: Message, time: 40, sound: "Vox/Train/Train-04-03.ogg", message: "Raise your langing gear" }
+event: { id: 230, event: Message, time: 60, sound: "Vox/Train/Train-04-04.ogg", message: "Set sensor display to HSD mode" }
+
+/**
+ ** THIS MESSAGE IS NONSENSE!
+ **
+event: {
+ id: 240,
+ event: Message,
+ message: "Steer towards ground targets"
+ sound: "Vox/Train/Train-04-05.ogg",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+}
+ **
+ **/
+
+event: {
+ id: 250,
+ event: Message,
+ sound: "Vox/Train/Train-04-06.ogg",
+ message: "Air-to-ground combat skills",
+ trigger: Navpoint,
+ trigger_param: 2,
+ trigger_ship: Alpha
+ delay: 5
+}
+
+event: {
+ id: 260,
+ event: Message,
+ sound: "Vox/Train/Train-04-07.ogg",
+ message: "Sort targets with your wingman",
+ trigger: Event,
+ trigger_param: 250,
+ delay: 15
+}
+
+event: {
+ id: 270,
+ event: Message,
+ sound: "Vox/Train/Train-04-08.ogg",
+ message: "Engage your target",
+ trigger: Event,
+ trigger_param: 260,
+ delay: 12
+}
+
+event: {
+ id: 300,
+ event: Message,
+ sound: "Vox/Train/Train-04-09.ogg",
+ message: "Engage a second target",
+ trigger: Event,
+ trigger_param: 270,
+ delay: 12
+}
+
+
+event: {
+ id: 310,
+ event: Message,
+ sound: "Vox/Train/Train-04-10.ogg",
+ message: "Resume nav route",
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102, 103, 104),
+ delay: 1
+}
+
+event: {
+ id: 311,
+ event: Message,
+ sound: "Vox/Train/Train-04-11.ogg",
+ message: "Return to base",
+ trigger: Event,
+ trigger_param: 310,
+ delay: 20
+}
+
+
+/***/
diff --git a/data/shatter/Campaigns/01/T5.def b/data/shatter/Campaigns/01/T5.def
new file mode 100644
index 0000000..2ea594c
--- /dev/null
+++ b/data/shatter/Campaigns/01/T5.def
@@ -0,0 +1,209 @@
+MISSION
+
+name: "Training Cruise"
+type: "Training"
+system: "Janus"
+region: "Alystra"
+
+objective:
+ "Training - "
+ "Practice starship fleet operations."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "You will be in command of the Frigate Carlisle "
+ "in Alystra sector. After you destroy the target "
+ "drones in that sector, rendevous with the Archon "
+ "in Janek orbit to complete the exercise."
+
+start: "03/15:20:00"
+
+/*************************/
+
+ship: {
+ name: Archon,
+ design: Orion,
+ region: Janek,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+}
+
+element: {
+ name: "Flying Tigers",
+ design: Stormhawk,
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, stations: (0, 1, 1, 0) },
+ }
+
+element: {
+ name: "Warhawks",
+ design: Stormhawk,
+ count: 20,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ loadout: { ship: -1, stations: (0, 0, 0, 0) },
+ }
+
+element: {
+ name: "Starlifters",
+ design: Zodiac,
+ count: 8,
+ region: Janek,
+ carrier: Archon,
+ iff: 1,
+ dead_count: 2,
+ }
+
+
+/*************************/
+
+ship: {
+ name: Carlisle,
+ design: Berents,
+ region: Alystra,
+ loc: (20e3, -30e3, 0),
+ commander: Archon,
+ count: 1,
+ iff: 1,
+ player: 1,
+
+ navpt: { cmd: vector, loc: (20e3, -40e3, 0), speed: 500, rgn: Alystra },
+ navpt: { cmd: vector, loc: (10e3, -10e3, 0), speed: 500, rgn: Janek },
+}
+
+/**********************/
+
+element: {
+ name: Alpha,
+ design: TargetDrone,
+ region: Alystra,
+ loc: (-12e3, -50e3, 0),
+ count: 4,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-8e3, -50e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, -30e3, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (30e3, 0, 0), speed: 400 },
+ navpt: { cmd: vector, loc: (50e3, 50e3, 0), speed: 400 },
+}
+
+/**********************/
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 1",
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 2",
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 3",
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_message: "",
+ trigger: Destroyed,
+ trigger_ship: "Alpha 4",
+}
+
+event: {
+ id: 5,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "Alpha Drones Destroyed - Proceed to Janek Orbit",
+ trigger: "Event (ALL)",
+ trigger_param: (1, 2, 3, 4),
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 0.5,
+ event: Message,
+ event_message: "(Press Q then 3)",
+ trigger: "Event",
+ trigger_param: 5,
+}
+
+event: {
+ id: 7,
+ delay: 3.0,
+ event: Message,
+ event_message: "Training Mission Complete",
+ trigger: "Jump",
+ trigger_ship: "Carlisle",
+}
+
+event: {
+ id: 8,
+ delay: 2.0,
+ event: Message,
+ event_message: "Press ESC 1 to End the Mission",
+ trigger: "Event",
+ trigger_param: 7,
+}
+
+event: {
+ id: 9,
+ delay: 20.0,
+ event: Message,
+ event_message: "Press ESC 1 to End the Mission",
+ trigger: "Event",
+ trigger_param: 8,
+}
+
+event: {
+ id: 10,
+ delay: 30.0,
+ event: Exit,
+ trigger: "Event",
+ trigger_param: 8,
+}
+
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 101, event: Message, time: 2, sound: "Vox/Train/Train-05-01.ogg", message: "" }
+event: { id: 102, event: Message, delay: 10, sound: "Vox/Train/Train-05-02.ogg", message: "", trigger: Event, trigger_param: 101 }
+event: { id: 103, event: Message, delay: 14, sound: "Vox/Train/Train-05-03.ogg", message: "", trigger: Event, trigger_param: 102 }
+event: { id: 104, event: Message, delay: 16, sound: "Vox/Train/Train-05-04.ogg", message: "", trigger: Event, trigger_param: 103 }
+event: { id: 105, event: Message, delay: 16, sound: "Vox/Train/Train-05-05.ogg", message: "", trigger: Event, trigger_param: 104 }
+event: { id: 106, event: Message, delay: 10, sound: "Vox/Train/Train-05-06.ogg", message: "", trigger: Event, trigger_param: 105 }
+event: { id: 107, event: Message, delay: 8, sound: "Vox/Train/Train-05-07.ogg", message: "", trigger: Event, trigger_param: 106 }
+event: { id: 108, event: Message, delay: 8, sound: "Vox/Train/Train-05-08.ogg", message: "", trigger: Event, trigger_param: 107 }
+event: { id: 109, event: Message, delay: 25, sound: "Vox/Train/Train-05-09.ogg", message: "", trigger: Event, trigger_param: 108 }
+event: { id: 110, event: Message, delay: 2, sound: "Vox/Train/Train-05-10.ogg", message: "", trigger: "Event (ALL)", trigger_param: (5,109) }
+event: { id: 111, event: Message, delay: 1, sound: "Vox/Train/Train-05-11.ogg", message: "", trigger: "Event (ALL)", trigger_param: (7,110) }
+event: { id: 112, event: Message, delay: 5, sound: "Vox/Train/Train-05-12.ogg", message: "", trigger: Event, trigger_param: 111 }
+
+
+/**********************/
+
+// EOF
+
diff --git a/data/shatter/Campaigns/01/T6.def b/data/shatter/Campaigns/01/T6.def
new file mode 100644
index 0000000..57deb54
--- /dev/null
+++ b/data/shatter/Campaigns/01/T6.def
@@ -0,0 +1,106 @@
+MISSION
+
+name: "Advanced Starship Combat"
+type: "Training"
+system: "Janus"
+region: "Dante"
+
+objective:
+ "Training - "
+ "Practice advanced starship combat maneuvers."
+
+sitrep: "The Third Fleet is participating in wargame "
+ "exercises in the Janus system. "
+ "You will be in command of the Destroyer Mahan "
+ "in Dante sector. You have been tasked with finding "
+ "and destroying the enemy Wolf-class starship Shannon. "
+ "You have one hour to complete this exercise. Good luck!"
+
+start: "04/11:00:00"
+
+degrees: true
+
+/*************************/
+
+element: {
+ name: Mahan
+ design: Asher
+ mission: Training
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: false
+ region: Dante
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: Tarkis
+ design: Wolf
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Dante
+ loc: (-258e3, -47e3, 0)
+
+ navpt: { cmd: Vector, loc: (-132e3, -175e3, 0), speed: 500 }
+}
+
+element: {
+ name: "DTS Equinox"
+ design: IM4300
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: Dante
+ loc: (5e3, -195e3, 0)
+
+ navpt: { cmd: Vector, loc: (-190e3, -125e3, 0), speed: 400 }
+}
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 1, time: 2, sound: "Vox/Train/Train-06-01.ogg" }
+event: { id: 2, delay: 22, sound: "Vox/Train/Train-06-02.ogg", trigger: Event, trigger_param: 1 }
+event: { id: 3, delay: 16, sound: "Vox/Train/Train-06-03.ogg", trigger: Event, trigger_param: 2 }
+
+event: { id: 4, delay: 2, sound: "Vox/Train/Train-06-04.ogg", trigger: Event, trigger_param: 50 }
+event: { id: 5, delay: 17, sound: "Vox/Train/Train-06-05.ogg", trigger: Event, trigger_param: 4 }
+event: { id: 6, delay: 17, sound: "Vox/Train/Train-06-06.ogg", trigger: Event, trigger_param: 5 }
+event: { id: 7, delay: 25, sound: "Vox/Train/Train-06-07.ogg", trigger: Event, trigger_param: 6 }
+event: { id: 8, delay: 30, sound: "Vox/Train/Train-06-08.ogg", trigger: Event, trigger_param: 7 }
+event: { id: 9, delay: 25, sound: "Vox/Train/Train-06-09.ogg", trigger: Event, trigger_param: 8 }
+
+event: { id: 13, delay: 0, sound: "Vox/Train/Train-06-10.ogg", trigger: Event, trigger_param: 51 }
+event: { id: 14, delay: 30, sound: "Vox/Train/Train-06-11.ogg", trigger: Event, trigger_param: 13 }
+event: { id: 15, delay: 17, sound: "Vox/Train/Train-06-12.ogg", trigger: Event, trigger_param: 14 }
+event: { id: 16, delay: 30, sound: "Vox/Train/Train-06-13.ogg", trigger: Event, trigger_param: 15 }
+
+event: { id: 20, delay: 0, sound: "Vox/Train/Train-06-14.ogg", trigger: Destroyed, trigger_ship: Tarkis }
+
+event: { id: 50, delay: 0, message: "Tarkis Detected", trigger: Detect, trigger_ship: Mahan, trigger_target: Tarkis }
+event: { id: 51, delay: 0, message: "Tarkis Locked", trigger: Target, trigger_ship: Mahan, trigger_target: Tarkis }
+
+event: { id: 80, event: Skip, param: ( 1, 2, 3), trigger: Event, trigger_param: 50 }
+event: { id: 81, event: Skip, param: ( 1, 2, 3, 4, 5), trigger: Event, trigger_param: 51 }
+event: { id: 82, event: Skip, param: ( 5, 6, 7, 8, 9), trigger: Event, trigger_param: 13 }
+event: { id: 83, event: Skip, param: (13,14,15,16), trigger: Event, trigger_param: 20 }
+
+event: { id: 100, event: EXIT, delay: 10, trigger: Event, trigger_param: 20 }
+
+/*************************/
+
+// EOF
diff --git a/data/shatter/Campaigns/01/T7.def b/data/shatter/Campaigns/01/T7.def
new file mode 100644
index 0000000..565b554
--- /dev/null
+++ b/data/shatter/Campaigns/01/T7.def
@@ -0,0 +1,197 @@
+MISSION
+
+name: "Carrier Operations"
+type: "Training"
+system: "Janus"
+region: "Alystra"
+
+objective: "Training - Practice orbital carrier operations."
+
+sitrep: "The Third Fleet is participating in wargame exercises in the Janus system. The fleet carrier Archon has been detached to Alystra orbit to practice spaceborne fighter operations. "
+
+start: "129:30:00"
+
+degrees: true
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ player: 1
+ playable: false
+ region: "Alystra"
+ loc: (-60e3, -25e3, 0)
+}
+
+element: {
+ name: "Avengers"
+ design: "Falcon"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 6
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Stallions"
+ design: "Stormhawk"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 6
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Warbirds"
+ design: "Thunderbolt"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 12
+ maint_count: 2
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Starlifters"
+ design: "Zodiac"
+ carrier: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 8
+ dead_count: 2
+ iff: 1
+ region: "Alystra"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Alystra"
+ loc: (-75e3, -31e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Alystra"
+ loc: (-45e3, -24e3, 0)
+}
+
+/**********************/
+
+element: {
+ name: "Tarpon"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (-130e3, -215e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 600 }
+}
+
+element: {
+ name: "Sculpin"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (250e3, 230e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 750 }
+}
+
+element: {
+ name: "Rockeye"
+ design: "TargetDrone"
+ mission: "Intercept"
+
+ intel: "Secret"
+ count: 4
+ iff: 2
+ loc: (250e3, 125e3, 0)
+
+ navpt: { cmd: Vector, loc: (-60e3, -25e3, 0), speed: 550 }
+}
+
+element: {
+ name: Pompano,
+ design: IM3500
+ skin: Red
+ loc: (260e3, 125e3, 0)
+ count: 1,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: (-50e3, -50e3, 0), speed: 550 },
+}
+
+
+/*************************/
+
+// VOICE-OVER
+
+event: { id: 1, event: Message, time: 2, sound: "Vox/Train/Train-07-01.ogg" }
+event: { id: 2, event: Message, delay: 18, sound: "Vox/Train/Train-07-02.ogg", trigger: Event, trigger_param: 1 }
+event: { id: 3, event: Message, delay: 15, sound: "Vox/Train/Train-07-03.ogg", trigger: Event, trigger_param: 2 }
+event: { id: 4, event: Message, delay: 12, sound: "Vox/Train/Train-07-04.ogg", trigger: Event, trigger_param: 3 }
+event: { id: 5, event: Message, delay: 17, sound: "Vox/Train/Train-07-05.ogg", trigger: Event, trigger_param: 4 }
+event: { id: 6, event: Message, delay: 12, sound: "Vox/Train/Train-07-06.ogg", trigger: Event, trigger_param: 5 }
+event: { id: 7, event: Message, delay: 18, sound: "Vox/Train/Train-07-07.ogg", trigger: Event, trigger_param: 6 }
+event: { id: 8, event: Message, delay: 20, sound: "Vox/Train/Train-07-08.ogg", trigger: Event, trigger_param: 7 }
+event: { id: 9, event: Message, delay: 30, sound: "Vox/Train/Train-07-09.ogg", trigger: Event, trigger_param: 8 }
+event: { id: 10, event: Message, delay: 16, sound: "Vox/Train/Train-07-10.ogg", trigger: Event, trigger_param: 9 }
+event: { id: 11, event: Message, delay: 12, sound: "Vox/Train/Train-07-11.ogg", trigger: Event, trigger_param: 10 }
+event: { id: 12, event: Message, delay: 18, sound: "Vox/Train/Train-07-12.ogg", trigger: Event, trigger_param: 11 }
+event: { id: 13, event: Message, delay: 20, sound: "Vox/Train/Train-07-13.ogg", trigger: Event, trigger_param: 12 }
+event: { id: 14, event: Message, delay: 17, sound: "Vox/Train/Train-07-14.ogg", trigger: Event, trigger_param: 13 }
+event: { id: 15, event: Message, delay: 16, sound: "Vox/Train/Train-07-15.ogg", trigger: Event, trigger_param: 14 }
+event: { id: 16, event: Message, delay: 18, sound: "Vox/Train/Train-07-16.ogg", trigger: Event, trigger_param: 15 }
+event: { id: 17, event: Message, delay: 30, sound: "Vox/Train/Train-07-17.ogg", trigger: Event, trigger_param: 16 }
+event: { id: 18, event: Message, delay: 30, sound: "Vox/Train/Train-07-18.ogg", trigger: Event, trigger_param: 17 }
+
+//event: { id: 50, event: Detect, message: "Tarkis Detected", trigger_ship: Gerson, trigger_target: Tarkis }
+
+/**********************/
+
+// EOF
diff --git a/data/shatter/Campaigns/01/campaign.def b/data/shatter/Campaigns/01/campaign.def
new file mode 100644
index 0000000..6c2e727
--- /dev/null
+++ b/data/shatter/Campaigns/01/campaign.def
@@ -0,0 +1,40 @@
+CAMPAIGN
+
+name: "Operation Live Fire"
+
+desc: "The Third Fleet of the Terellian Alliance "
+ "is participating in live fire training exercises "
+ "in the Janus star system."
+
+situation:
+ "\tThe Third Fleet of the Terellian Alliance "
+ "Force:Space is participating in live fire training exercises "
+ "in the Janus star system. Operation Live Fire "
+ "will give the fleet some much needed practice under conditions that are "
+ "as close to combat reality as possible.\n\n"
+
+ "\tThe schedule of training scenarios in this campaign has been designed "
+ "to bring you up to speed on Force:Space combat operations. "
+ "The first several missions will give you some practice in fighter "
+ "operations, both in space and in atmosphere. You will also get a chance "
+ "to practice some ground strike operations against static pre-planned targets. "
+ "The last few missions are designed to introduce you to "
+ "the greater complexity of modern starship combat.\n\n"
+
+ "To begin the first mission, click the [MISSIONS] button on the left side "
+ "of this screen.\n\n"
+
+orders:
+ "\t* Execute all of the training missions in this campaign."
+
+scripted: true
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Janus,
+ source: News,
+ scene: "Scenes/Intro.def"
+}
diff --git a/data/shatter/Campaigns/01/opfor.def b/data/shatter/Campaigns/01/opfor.def
new file mode 100644
index 0000000..c5f5652
--- /dev/null
+++ b/data/shatter/Campaigns/01/opfor.def
@@ -0,0 +1,268 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "OPFOR",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Thralis",
+ intel: known,
+ iff: 2,
+ region: "Vail",
+ loc: (-390e3, 10e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 5,
+ name: "Antares",
+ intel: known,
+ iff: 2,
+ region: "Janek",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Antares",
+ design: "Orion",
+ regnum: "72" },
+
+ unit: {
+ name: "Ryan",
+ design: "Spectre",
+ regnum: "681" },
+
+ unit: {
+ name: "Card",
+ design: "Spectre",
+ regnum: "686" },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 91,
+ name: "Bearcats",
+ intel: known,
+ iff: 2,
+ region: "Janek",
+ loc: (179e3, -300e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Bearcat",
+ design: "Viper",
+ count: 20 },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 30,
+ name: "Mustangs",
+ intel: known,
+ iff: 2,
+ region: "Janek",
+ loc: (125e3, -318e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Mustang",
+ design: "Viper",
+ count: 20 },
+}
+
+group: {
+ type: attack_squadron,
+ id: 45,
+ name: "Lancers",
+ intel: known,
+ iff: 2,
+ region: "Janek",
+ loc: (246e3, -379e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Lancer",
+ design: "Cobra",
+ count: 20 },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Ares",
+ intel: known,
+ iff: 2,
+ region: "Janek",
+ loc: (195e3, -400e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Ares",
+ design: "Zodiac",
+ count: 8 },
+}
+
+group: {
+ type: battle_group,
+ id: 7,
+ name: "Annihilator",
+ intel: known,
+ iff: 2,
+ region: "Alystra",
+ loc: (30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Annihilator",
+ design: "Spectre",
+ regnum: "405" },
+
+ unit: {
+ name: "Vanguard",
+ design: "Courageous",
+ regnum: "533" },
+
+ unit: {
+ name: "Gibson",
+ design: "Spectre",
+ regnum: "691" },
+
+ unit: {
+ name: "Leyte",
+ design: "Berents",
+ regnum: "922" },
+}
+
+group: {
+ type: battle_group,
+ id: 8,
+ name: "Vortex",
+ intel: known,
+ iff: 2,
+ region: "Dante",
+ loc: (80e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Vortex",
+ design: "Spectre",
+ regnum: "410" },
+
+ unit: {
+ name: "Defiant",
+ design: "Courageous",
+ regnum: "538" },
+
+ unit: {
+ name: "Mahan",
+ design: "Spectre",
+ regnum: "696" },
+
+ unit: {
+ name: "Argiles",
+ design: "Berents",
+ regnum: "927" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 40,
+ name: "Wraith",
+ intel: known,
+ iff: 2,
+ region: "Navara",
+ loc: (80e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Wraith",
+ design: "Spectre",
+ regnum: "351" },
+
+ unit: {
+ name: "Nemesis",
+ design: "Spectre",
+ regnum: "356" },
+
+ unit: {
+ name: "Bosporus",
+ design: "Berents",
+ regnum: "912" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 41,
+ name: "Demon",
+ intel: known,
+ iff: 2,
+ region: "Alystra",
+ loc: (0, -90e3, -3e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Demon",
+ design: "Spectre",
+ regnum: "361" },
+
+ unit: {
+ name: "Revenant",
+ design: "Spectre",
+ regnum: "366" },
+
+ unit: {
+ name: "Carlisle",
+ design: "Berents",
+ regnum: "917" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 59,
+ name: "Clarke",
+ intel: known,
+ iff: 2,
+ region: "Dante",
+ loc: (-60e3, -180e3, -7e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Clarke",
+ design: "Spectre",
+ regnum: "701" },
+
+ unit: {
+ name: "Jackson",
+ design: "Spectre",
+ regnum: "706" },
+
+ unit: {
+ name: "Parker",
+ design: "Berents",
+ regnum: "932" },
+
+ unit: {
+ name: "Suffolk",
+ design: "Berents",
+ regnum: "937" },
+}
+
diff --git a/data/shatter/Campaigns/01/terellian.def b/data/shatter/Campaigns/01/terellian.def
new file mode 100644
index 0000000..7438156
--- /dev/null
+++ b/data/shatter/Campaigns/01/terellian.def
@@ -0,0 +1,405 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Terellian Alliance",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 3,
+ name: "Borova",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 6,
+ name: "Archon",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-122e3, 80e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Archon",
+ design: "Orion",
+ regnum: "71" },
+
+ unit: {
+ name: "Gerson",
+ design: "Spectre",
+ regnum: "682" },
+
+ unit: {
+ name: "Simmons",
+ design: "Spectre",
+ regnum: "687" },
+}
+
+group: {
+ type: attack_squadron,
+ id: 112,
+ name: "Warbirds",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-144e3, 45e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Warbird",
+ design: "Stormhawk",
+ count: 20 },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 36,
+ name: "Stallions",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-169e3, 60e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Stallion",
+ design: "Stormhawk",
+ count: 20 },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 37,
+ name: "Avengers",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-163e3, 107e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Avenger",
+ design: "Stormhawk",
+ count: 20 },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Starlifters",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-71e3, 136e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Starlifters",
+ design: "Zodiac",
+ count: 8 },
+}
+
+group: {
+ type: battle_group,
+ id: 9,
+ name: "Onslaught",
+ intel: known,
+ iff: 1,
+ region: "Vail",
+ loc: (-109e3, -77e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Onslaught",
+ design: "Spectre",
+ regnum: "406" },
+
+ unit: {
+ name: "Redstone",
+ design: "Courageous",
+ regnum: "534" },
+
+ unit: {
+ name: "Raven",
+ design: "Spectre",
+ regnum: "692" },
+
+ unit: {
+ name: "Hemmet",
+ design: "Berents",
+ regnum: "923" },
+}
+
+group: {
+ type: battle_group,
+ id: 10,
+ name: "Predator",
+ intel: known,
+ iff: 1,
+ region: "Navara",
+ loc: (30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Predator",
+ design: "Spectre",
+ regnum: "411" },
+
+ unit: {
+ name: "Audacious",
+ design: "Courageous",
+ regnum: "539" },
+
+ unit: {
+ name: "Brunner",
+ design: "Spectre",
+ regnum: "697" },
+
+ unit: {
+ name: "Essex",
+ design: "Berents",
+ regnum: "928" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 43,
+ name: "Shadow",
+ intel: known,
+ iff: 1,
+ region: "Vail",
+ loc: (-109e3, 51e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Shadow",
+ design: "Spectre",
+ regnum: "352" },
+
+ unit: {
+ name: "Necromancer",
+ design: "Spectre",
+ regnum: "357" },
+
+ unit: {
+ name: "Belfast",
+ design: "Berents",
+ regnum: "913" },
+
+ unit: {
+ name: "Canton",
+ design: "Berents",
+ regnum: "918" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 44,
+ name: "Hydra",
+ intel: known,
+ iff: 1,
+ region: "Alystra",
+ loc: (93e3, -101e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Hydra",
+ design: "Spectre",
+ regnum: "362" },
+
+ unit: {
+ name: "Banshee",
+ design: "Spectre",
+ regnum: "367" },
+
+ unit: {
+ name: "Canton",
+ design: "Berents",
+ regnum: "918" },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 60,
+ name: "Gunther",
+ intel: known,
+ iff: 1,
+ region: "Alystra",
+ loc: (55e3, 71e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Gunther",
+ design: "Spectre",
+ regnum: "702" },
+
+ unit: {
+ name: "Fletcher",
+ design: "Spectre",
+ regnum: "707" },
+
+ unit: {
+ name: "Rainier",
+ design: "Berents",
+ regnum: "933" },
+
+ unit: {
+ name: "Tanner",
+ design: "Berents",
+ regnum: "938" },
+}
+
+group: {
+ type: civilian,
+ id: 1000,
+ name: "Civilian Forces",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: war_production,
+ id: 2000,
+ name: "War Production",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1000,
+}
+
+group: {
+ type: resource,
+ id: 3000,
+ name: "Tantalum Mining Station",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (0, 0, 0),
+ parent_type: war_production,
+ parent_id: 2000,
+}
+
+group: {
+ type: network,
+ id: 3001,
+ name: "Administration",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (-71e3, 21e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Administration",
+ design: "Bldg00",
+ regnum: "" },
+}
+
+group: {
+ type: refinery,
+ id: 3002,
+ name: "Refinery",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (-77e3, 39e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Refinery",
+ design: "Bldg01",
+ regnum: "" },
+
+ unit: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ count: 3 },
+
+ unit: {
+ name: "Cryo Tank",
+ design: "Tank00",
+ count: 2 },
+}
+
+group: {
+ type: resource,
+ id: 3011,
+ name: "Factory",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (-55e3, 48e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Factory Tower",
+ design: "Fact00",
+ regnum: "000" },
+
+ unit: {
+ name: "Processing Plant",
+ design: "Fact01",
+ regnum: "000" },
+}
+
+group: {
+ type: non_com,
+ id: 2000,
+ name: "Freight",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1000,
+}
+
+group: {
+ type: freight,
+ id: 3000,
+ name: "Star Freight",
+ intel: known,
+ iff: 1,
+ region: "Navara",
+ loc: (0, 0, 0),
+ parent_type: non_com,
+ parent_id: 2000,
+
+ unit: {
+ name: "Ecliptic",
+ design: "TypeIII",
+ regnum: "1919" },
+
+ unit: {
+ name: "Rand",
+ design: "TypeIII",
+ regnum: "2207" },
+}
+
diff --git a/data/shatter/Campaigns/01/zones.def b/data/shatter/Campaigns/01/zones.def
new file mode 100644
index 0000000..ee3adf7
--- /dev/null
+++ b/data/shatter/Campaigns/01/zones.def
@@ -0,0 +1,32 @@
+ZONES
+
+zone: {
+ system: Janus,
+ region: "Ilon"
+}
+
+zone: {
+ system: Janus,
+ region: "Dante"
+}
+
+zone: {
+ system: Janus,
+ region: "Janek",
+ region: "Janek Station",
+}
+
+zone: {
+ system: Janus,
+ region: "Alystra",
+}
+
+zone: {
+ system: Janus,
+ region: "Navara",
+}
+
+zone: {
+ system: Janus,
+ region: "Vail",
+}
diff --git a/data/shatter/Campaigns/02/Actions/01-campaign-start.txt b/data/shatter/Campaigns/02/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..79de975
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/01-campaign-start.txt
@@ -0,0 +1,5 @@
+SOLUS - The Provisional Security Directorate of the Independent System of Solus formally requested military assistance from Terellian Alliance Force:Command this morning. Special couriers ran the Trellis blockade to deliver the message to the Force outpost in the nearby Janek system. "The official government of this system has been cut off by the illegal blockade of the Trellis Farcaster," said Adminstrator Lars of the Directorate. "We have suffered a great deal of damage in the fighting, and we need help to reestablish basic services here."
+
+Solus has been ripped nearly in two by the bloody civil war that erupted between the Loyalist and Separatist factions of the system government. Dantari Separatists under the leadership of Senator Masil Gannet, after months of pressing for an official alliance with the Hegemony Prefecture of Renser, have seized much of the Solus star fleet and taken control of the outer worlds of Trellis and Jalah. The Loyalist faction, although still technically in control of the official goverment, has been trapped on the inner planets Solus and Meridian.
+
+The Separatist blockade of the Trellis Farcaster has also taken a toll on the many Alliance citizens in the Solus system. Several Terellian companies maintain major offices on the capitol world itself, and Tal Vesta University runs a stellar observatory near the planet Meridian. An estimated 375,000 Terellians are trapped by the blockade. So far they have been unable to convince the Dantari Separatists to grant them safe passage back to the main Alliance systems.
diff --git a/data/shatter/Campaigns/02/Actions/02-coup-failure.txt b/data/shatter/Campaigns/02/Actions/02-coup-failure.txt
new file mode 100644
index 0000000..0033e2f
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/02-coup-failure.txt
@@ -0,0 +1,5 @@
+TELMERA CITY, SOLUS - An attempted palace coup by Dantari agents was thwarted by alert members of the Provisional Security Directorate early this morning. Separatist agents, working from a secret base near the capitol offices, succeeded in destroying the executive suite of the presidential palace.
+
+Security service members discovered the bomb only moments before it was detonated and were able to escort President Marish and his party to an undisclosed safe location. Senators Hamil and Covanon who were to attend a working breakfast with the President were killed in the blast, as were two security service agents who died trying to protect them. Memorial services for all four men are planned for later in the week.
+
+Speaking on behalf of President Marish, executive spokesperson Cyn Talban affirmed that the central government had not been struck down by the terrorist-style attack. "We are still very much open for business. President Marish is meeting with security advisors at this hour, and he will be holding a press conference from the safehouse later this morning to address your questions and concerns." \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/03-blockade-broken.txt b/data/shatter/Campaigns/02/Actions/03-blockade-broken.txt
new file mode 100644
index 0000000..8a3c4b2
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03-blockade-broken.txt
@@ -0,0 +1,5 @@
+TRELLIS - The Alliance Third Fleet has broken the blockade of the Trellis-Solus Farcaster network, a Force:Command spokesperson has announced. The minefields surrounding the Farcaster terminus have been cleared, and several Separatist squadrons have been eliminated or greatly reduced in strength.
+
+Theater commander Admiral Evars has given official authorization for the commencement of humanitarian aid traffic to the inner planets. Certified non-governmental agencies delivering food, clothing, medicines, and emergency equipment will receive protective escorts by warships from the Third Fleet.
+
+"Although the blockade has been broken, there are still several hostile squadrons in operation near the outer worlds. We strongly recommend that only emergency traffic be routed through the Trellis sector. Civilian ships are advised to avoid the area until the threat can be assessed and appropriate actions taken," Evars was quoted as saying. \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/03a-minefield-a.txt b/data/shatter/Campaigns/02/Actions/03a-minefield-a.txt
new file mode 100644
index 0000000..4b70700
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03a-minefield-a.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield A near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/03a-minefield-b.txt b/data/shatter/Campaigns/02/Actions/03a-minefield-b.txt
new file mode 100644
index 0000000..0b70a24
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03a-minefield-b.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield B near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/03a-minefield-c.txt b/data/shatter/Campaigns/02/Actions/03a-minefield-c.txt
new file mode 100644
index 0000000..2c47b8b
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03a-minefield-c.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield C near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/03a-minefield-d.txt b/data/shatter/Campaigns/02/Actions/03a-minefield-d.txt
new file mode 100644
index 0000000..6c7b9b6
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03a-minefield-d.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield D near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/03a-minefield-e.txt b/data/shatter/Campaigns/02/Actions/03a-minefield-e.txt
new file mode 100644
index 0000000..b86500e
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/03a-minefield-e.txt
@@ -0,0 +1,4 @@
+MISSION: Strike, Trellis Sector
+
+Terellian Alliance 112th Attack Squadron "Warbirds" successfully cleared the Dantari Separatists Minefield E near the Trellis-Solus Farcaster. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/04-harmony-risk.txt b/data/shatter/Campaigns/02/Actions/04-harmony-risk.txt
new file mode 100644
index 0000000..f63463a
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/04-harmony-risk.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** HARMONY STATION
+*** KALON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Force:Intel assessment of risk to Harmony Station: Threat Level Gamma (Severe)
+
+Field agents have intercepted communications believed to be for Dantari Separatist strike teams in the Solus or Kalon sectors. COMINT has completed first (partial) decoding of intercepted transmissions, and believes there is a credible threat to High Value Assets (HVAs) in Solus and Kalon sectors. Specific times, targets, and methods remain unknown.
+
+Force:Intel recommends additional Force:Space patrols be assigned to the Kalon sector pending further analysis of intercepted transmissions. Harmony Station in Kalon orbit would make an extremely choice target for a separatist strike.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/02/Actions/05-foothill-ridge.txt b/data/shatter/Campaigns/02/Actions/05-foothill-ridge.txt
new file mode 100644
index 0000000..0624922
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/05-foothill-ridge.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** FOOTHILL RIDGE
+*** TELMERA SECTOR
+*** CLASSIFIED: SECRET R5 NTK
+*************************************
+
+Dantari Separatist base discovered on Solus
+
+Force:Intel field agents have uncovered a Separatist military base in the city of Foothill Ridge near Telmera on Solus. The encampment consists of an operational airbase, reactor complex, weapons bunkers, and an unknown complement of starfighters and personnel. The Foothill Ridge Base is protected by a series of AAA and SAM batteries in the hills surrounding the city.
+
+Force:Intel recommends Force:Space deploy a package of air strikes to reduce the fixed weapon emplacements and the airbase. The reactor complex does not appear to be needed for civilian power in the Foothill Ridge area. However, the reactor poses an unknown danger to the area of radiation and toxic chemical contamination if it is destroyed using air-to-ground weapons, so you will need to be careful when you prosecute your ground strikes.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/02/Actions/06-renser-buildup.txt b/data/shatter/Campaigns/02/Actions/06-renser-buildup.txt
new file mode 100644
index 0000000..1bee82b
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/06-renser-buildup.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Renser Fleet Mobilization
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space long range sensor patrols report probable fleet buildup in the Hegemony system of Renser. Ship movement in the system has increased by 137% in the past twenty hours.
+
+Mass density analysis indicates several ships have left berths in the Lornas asteroid belt. Lornas Sector contains the major outer reserve naval yards for the Renser system. Common displacement includes Broadsword Class Destroyer Squadrons and Dragon Class Carrier Groups. Force:Intel COMINT reports increased signal activity in the Khaital Sector staging area. The Renser central capitol has been placed on heightened security awareness.
+
+Tactical Planning Analysis suggests 50% probability of Renser mobilization to Solus system within the next twenty hours. Probability of mobilization within the next fifty hours is estimated to be greater than 80%.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/02/Actions/07-research-lab.txt b/data/shatter/Campaigns/02/Actions/07-research-lab.txt
new file mode 100644
index 0000000..0b600e0
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/07-research-lab.txt
@@ -0,0 +1,5 @@
+MERIDIAN - The Tal Vesta University Stellar Observatory in Meridian orbit has been cut off by Separatist patrols and is facing severe shortages of food and consumable supplies. University staff indicate that the fusion plant on the observatory is still operational, and that basic life support functions - water, air, and power - are not an immediate concern. "Mainly, the students are just hungry. And frustrated," said Research Coordinator Alen Tolap.
+
+Student researchers living at the observatory are protesting the ongoing civil war. Native Solusans, ethnic Dantari, and even many Terellian Alliance students have issued a joint statement condemning the conflict and demanding the resumption of peaceful negotiations. Thus far, neither party in the conflict has commented on the student protests.
+
+Alliance Theater Command has promised to make humanitarian aid to the Meridian sector a top priority. "We'll find a way to feed these kids," Fleet Admiral Evars was quoted as saying. "There's nothing more ornery than a bunch of hungry college students."
diff --git a/data/shatter/Campaigns/02/Actions/08-renser-accusation.txt b/data/shatter/Campaigns/02/Actions/08-renser-accusation.txt
new file mode 100644
index 0000000..a634d33
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/08-renser-accusation.txt
@@ -0,0 +1,5 @@
+CITY OF ULNAR, RENSER - The Renser Secretary of Intersystem Affairs issued a statement this evening accusing the Terellian Alliance of committing illegal acts of agression in the Solus Conflict.
+
+"External involvement in this civil conflict is a clear violation of the Korian Treaty. Alliance actions are a threat to Solusan sovereignty, and constitute a clear and present danger to the security of the Prefecture of Renser. Strong measures may be taken to restore normal discourse in Solus."
+
+Policy analysts believe that this statement amounts to diplomatic code words for the commencement of Renser military action in the Solusan conflict. The statement does not set a timeline for events, but the general feeling is that something is going to happen sooner rather than later.
diff --git a/data/shatter/Campaigns/02/Actions/09-senate-resolution.txt b/data/shatter/Campaigns/02/Actions/09-senate-resolution.txt
new file mode 100644
index 0000000..082adab
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/09-senate-resolution.txt
@@ -0,0 +1,7 @@
+ALLIANCE CAPITOL, JARNELL - Alliance government officials wasted no time in responding to the accusations of illegality made yesterday by the Renser Secretary of Intersystem Affairs. The Combined Senate passed resolution SR498/37 censuring the Prefecture of Renser and warning of possible reprisals should Hegemony forces become involved in the Solusan Conflict.
+
+"The Alliance has undertaken Operation Highland for the specific purposes of safeguarding our citizens in the Solus system and providing humanitarian aid to those civilians who have been hardest hit by the blockade of the inner worlds. These actions have been carried out in strict accord with Korian Treaty provisions, and we resent the implication that the Alliance has Imperial designs on our neighbors."
+
+Several anonymous sources have hinted that there may be more to this conflict than is immediately apparent. Rumors of an Hegemony fleet buildup in Renser have leaked from Force:Command Headquarters. Others have expressed suspicions regarding the breakdown of peaceful negotiations between the Loyalist and Separatist factions that directly led to the current hostilities.
+
+Military analysts are predicting that although widening of the Solusan Conflict to include Renser was unexpected and is undesirable, it may soon become unavoidable. Alliance forces appear to have gained the upper hand in some of the fiercest fighting of the war to date. A Force:Space garrison, once established in the Solus system, would be within easy striking distance of Renser. That is a situation that no Hegemony border world would be willing to tolerate.
diff --git a/data/shatter/Campaigns/02/Actions/10-renser-arrival.txt b/data/shatter/Campaigns/02/Actions/10-renser-arrival.txt
new file mode 100644
index 0000000..18f0ac4
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/10-renser-arrival.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Hegemony Task Force TF4.3
+Classified: CONFIDENTIAL DND/CRYPTO
+
+A task force (TF4.3) from the Hegemony Fourth Fleet "Manticore" has successfully translated in system and is currently staging through Jalah Sector. The task force appears to have bypassed the Trellis Sector entirely, somehow translating directly into Jalah orbit. This may have been achieved by first staging beyond the outer Oort cloud before attempting the final jump.
+
+Hegemony TF4.3 is composed of one Dragon class CVBG led by CV-7A4 Manticore, and Broadsword class DESRONs 25 and 26 led by DD-3C40 Claymore and DD-3C42 Ironhelm, respectively. The Dragon class carrier groups generally field a full complement of intercept, fighter, and attack squadrons, and we believe that TF4.3 is no exception. On paper, this makes TF4.3 heavier than the Alliance forces assigned to the Solus system. We have requested a Spectre class DESRON from Fleet to help shore us up, but we are unsure as to how long they will take to arrive.
+
+On the plus side, we have the advantage of maneuverability for the moment. Now that they are here, TF4.3 will need some time to get organized and integrated with the Dantari fleet framework. If they did in fact take two jumps to translate to Jalah, they will need to UNREP before they are ready to fight. Either way, they will likely be tied up near Fort Talas in Jalah Sector for at least fifteen to twenty more hours.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/02/Actions/11-dantari-pullback.txt b/data/shatter/Campaigns/02/Actions/11-dantari-pullback.txt
new file mode 100644
index 0000000..3b2369f
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/11-dantari-pullback.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Separatist Withdrawal to Jalah
+Classified: CONFIDENTIAL DND/CRYPTO
+
+All mobile Separatist forces have withdrawn from the inner planets to Jalah Sector. We believe they plan to regroup and integrate with Hegemony TF4.3 before resuming the offensive in the Solus and Omane Sectors. Alliance forces have been doing an excellent job of reducing Separatist fleet strength, and Loyalist security forces believe that they can handle the job of cleaning up the remaining ground based Separatist units.
+
+However, the combined weight of Hegemony and Separatist forces will very likely overmatch our capabilities. We have received word that Spectre-class DESRON 43 "Shadow" has been assigned to the Solusan conflict, but they will not arrive for at least another fifteen hours.
+
+In the meantime, our plan is to strike the Separatist forces at Jalah before they can regroup. If we can keep them off balance in a defensive posture there, we believe they will be prevented from mounting an effective attack on Solus.
+
+Simulations suggest that the combined force will try to regroup near Fort Talas Station, using its air cover and defensive fire to protect the fleet. Remember that our primary objective is to cripple the Separatist fleet, not the Hegemony Task Force, and definitely not the station. Fort Talas belongs to the Solusan government, and is their primary defensive outpost in the outer worlds. The station will be vital to their defensive plans after this conflict is over, so we must not cause any more damage to it than absolutely necessary.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/02/Actions/11a-goliath.txt b/data/shatter/Campaigns/02/Actions/11a-goliath.txt
new file mode 100644
index 0000000..3b2011a
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/11a-goliath.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 5th Carrier Group "Goliath" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/11a-kendra.txt b/data/shatter/Campaigns/02/Actions/11a-kendra.txt
new file mode 100644
index 0000000..31ac444
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/11a-kendra.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 7th DESRON "Kendra" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/11a-kitts.txt b/data/shatter/Campaigns/02/Actions/11a-kitts.txt
new file mode 100644
index 0000000..3d93a56
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/11a-kitts.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 6th DESRON "Kitts" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/11a-wolf.txt b/data/shatter/Campaigns/02/Actions/11a-wolf.txt
new file mode 100644
index 0000000..a51dcaf
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/11a-wolf.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Jalah Sector
+
+Terellian Alliance 43rd DESRON "Shadow" successfully eliminated Dantari Separatists 5th DESRON "Wolf" in Jalah Sector. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/02/Actions/12-cease-fire.txt b/data/shatter/Campaigns/02/Actions/12-cease-fire.txt
new file mode 100644
index 0000000..71fd6be
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/12-cease-fire.txt
@@ -0,0 +1,7 @@
+TELMERA CITY, SOLUS - Guns are falling silent throughout the Solus System in accordance with a cease-fire agreement between the Solusan government and the Separatist faction that have been locked in a violent civil war for control of the region. ISS President Marish and newly-appointed leader of the Separatist movement Ayn Toran signed the agreement in the recently repaired presidential palace as Terellian Alliance Fleet Admiral A. Evars looked on. Notably absent from the signing ceremony was former Separatist leader Masil Gannet, who is believed to have fled the system to return to his native Adantar in the Korius System.
+
+The cease-fire agreement has sparked hopes for a lasting peace in this war-torn region that has suffered unprecedented levels of bloodshed in a very short period of time. The pact is the first step to renewed peace talks to address the fair settlement of ethnic Dantari throughout the system.
+
+The deal calls for an open-ended cease-fire between both parties, with independent observers from the nearby system of Silessia to monitor the situation until more permanent agreements can be implemented. The details of the cease-fire agreement have not yet been made public.
+
+Pursuant to the cease-fire arrangement, Hegemony Fleet Task Force TF4.3 is standing down and will abandon the system within hours. The Terellian Alliance Task Force that has been assisting the official Solusan Government is also making plans to leave the region.
diff --git a/data/shatter/Campaigns/02/Actions/13-renser-invasion.txt b/data/shatter/Campaigns/02/Actions/13-renser-invasion.txt
new file mode 100644
index 0000000..1916a67
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/13-renser-invasion.txt
@@ -0,0 +1,13 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, at this hour, Force:Space units are in the early stages of military operations to disarm the Hegemony Prefecture of Renser and eliminate a grave threat to the peace and stability of the Terellian Alliance and the Independent Systems of the blue drift.
+
+On my orders, under the authority granted to this office by Combined Senate Resolution SR498/37, Alliance forces have begun striking specific military targets in the Renser System to undermine that government's ability to wage agressive war on her neighbors. The victory of the Solusan people in Operation Highland can not be complete until the hard won peace has been made secure.
+
+Now, that peace is gravely threatened by the armed might of the Hegemony. In fact, we have evidence that the entire Solusan affair was instigated by agents of Renser Prefecture, including former Separatist Leader Masil Gannet.
+
+To all the men and women of the various branches of Force now serving in the Renser Theater of Operations, the peace of a troubled region, and the hope for prosperity of all its free people now depend on you, on your determination, and on your abilities. We trust in your abilities and your resolve, and we know that our trust is well placed.
+
+Now that this stage of the conflict has come, the only way to limit its duration is to apply decisive force. And I assure you, this will not be a campaign of half measures. We will accept no outcome save victory.
+
+Thank you, and good evening. \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/campaign_end.txt b/data/shatter/Campaigns/02/Actions/campaign_end.txt
new file mode 100644
index 0000000..1b299b9
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/campaign_end.txt
@@ -0,0 +1,5 @@
+Alliance forces have completed operations in the Solus-Renser Theater. Hegemony resistance has been broken and the Prefect of Renser is meeting with the Alliance Provisional Consulate at this hour to establish terms for a cease-fire and eventual non-agression pact.
+
+All Force:Space units in Third Fleet will be withdrawing from Renser space to predetermined guard points in the surrounding systems. Force:Command expects to be able to rotate your unit back to home space within a few weeks for replenishment and shore leave.
+
+Well done, Commander! \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/def1.txt b/data/shatter/Campaigns/02/Actions/def1.txt
new file mode 100644
index 0000000..32f3a25
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Highland has failed to secure the peace. Alliance losses have been severe. The Presdient, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from the Solus-Renser Theater. Civilian casualties are estimated at more than 10,000 dead and 52,000 injured or missing.
+
+At least one additional fleet is being mobilized from the Hegemony system of Korius. Force:Command expects that they will translate in system within forty hours. At that time, the Independent System of Solus will be brought under the direct control of the Marakan Hegemony. \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/def2.txt b/data/shatter/Campaigns/02/Actions/def2.txt
new file mode 100644
index 0000000..867e70f
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/def2.txt
@@ -0,0 +1,3 @@
+Operation Highland has failed in its mission to secure the peace. Alliance losses in the Renser system have been severe, including the loss of the Fleet Carrier Battle Group Archon. The President, with the approval of the Combined Senate, has ordered the immediate withdrawal of all remaining Force:Space units from the Prefecture of Renser.
+
+At least one additional Hegemony fleet is being mobilized from the Korius System. We can only hope that this failure does not result in the unilateral escalation on the part of Hegemony forces... \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/m1-catching-up.txt b/data/shatter/Campaigns/02/Actions/m1-catching-up.txt
new file mode 100644
index 0000000..dc96f62
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/m1-catching-up.txt
@@ -0,0 +1,21 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: CATCHING UP
+-----
+PATH: Magellan IV Shipboard | Loris Station | Northeast Transceiver 4 | Silessian Outer Relay | Silessian Inner Relay | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP
+-----
+
+Hey Mate!
+
+I just heard about your promotion and wanted to say congratulations! Sorry I didn't get to give you a proper send-off before you shipped out.
+
+So, the Force brass is starting to recognize your 'unique talents,' eh? You should have followed in my footsteps and joined the Independent Trade fleet. Too bad you had to get all respectable, you could have been a rich man by now. I'm not a rich man, but I'm sure you would have been. Next time I see you I'll have to remember to salute.
+
+Can't tell you too much from this end. The 'Maggie' just put in for a forty-hour stopover in Loris on the way through to "parts unknown". Don't ask me no questions, and I'll tell you no lies. But just between you and me, watch your tail out there, all right?
+
+Hey, are you going to the Academy Reunion this year? We should be back in the core systems by then, and I've been meaning to ask the skipper of this here tub for some time off. If you complete your tour by then, I'll catch you at the bar. You can buy me a drink in exchange for that salute.
+
+--Jonas
+
+PS Have you heard from Sara lately? I haven't been able to track her down from way out here. If you talk to her, tell her "I am the Doorway" for me. -J \ No newline at end of file
diff --git a/data/shatter/Campaigns/02/Actions/m2-new-digs.txt b/data/shatter/Campaigns/02/Actions/m2-new-digs.txt
new file mode 100644
index 0000000..855dfb4
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/m2-new-digs.txt
@@ -0,0 +1,22 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: NEW DIGS
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP
+-----
+
+Hello,
+
+Well, we're finally just about moved in to the new Ele'aan Consular Center. My new position as the Junior Consular Liason to the Ele'aan Fusion rates a new office with a lovely view of the Endless Falls. At twilight, when the mist shroud catches the light of the setting sun, it's just breathtaking. Ever so much better than that sub-basement hovel I was lurking in on Borova. Yay me!
+
+Thanks for relaying that message from Jonas. "I am the Doorway" Honestly, he's such a character. [giggle] I don't even know where he could have heard that expression - it's part of an old Ele'aan greeting and farewell ritual. The Ele'aans are an advanced race, but they can be pretty inscrutable at times, even for me.
+
+In fact, right now they are all agitated about the Zolon Empire for some reason. They won't tell anybody what's going on, but I get little bits of messages here and there, and they are definitely worried about something, if you can believe that.
+
+Say, if you talk to Jonas again, see if he knows anything about Zolon activity. I know his trade route takes him through the northern Hegemony systems. I don't know if he's ever been out as far as Nephrys in all his wanderings. That's right on the border of Zolon space. Maybe he's seen or heard something out there...
+
+Congratulations on your promotion! I knew you'd hit the big time eventually. [grin]
+
+Love from
+Sara
diff --git a/data/shatter/Campaigns/02/Actions/m3-why-renser.txt b/data/shatter/Campaigns/02/Actions/m3-why-renser.txt
new file mode 100644
index 0000000..ff22eae
--- /dev/null
+++ b/data/shatter/Campaigns/02/Actions/m3-why-renser.txt
@@ -0,0 +1,18 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: WHY RENSER?
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | Renser Temporary Transceiver | $GROUP
+-----
+
+$NAME,
+
+Why are we attacking Renser now? The Separatists started this fight, not the Hegemony. How is this going to help stabilize the crisis in Solus, or improve the safety of the Alliance?
+
+The Ele'aan Ambassador, Councilor Auris was most. . . well, I don't think "upset" is the right word. But he seemed very disconcerted about the potential consequences of this invasion during the Council meeting this morning. I think the Ele'aan delegation tried to talk President Valmar out of this action - I think they wanted him to leave well enough alone and stay out of Hegemony internal affairs.
+
+I hope you're all right out there. . . I’m worried that we are throwing away lives on a foolish errand, and risking far more in the long run… Just tell me you'll stay safe, OK?
+
+Love from
+Sara
diff --git a/data/shatter/Campaigns/02/Scenes/01-News-Start.def b/data/shatter/Campaigns/02/Scenes/01-News-Start.def
new file mode 100644
index 0000000..3cba1dd
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/01-News-Start.def
@@ -0,0 +1,264 @@
+MISSION
+
+name: "Cmpn02 News01 - Campaign Start"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Tal Vesta Stellar Observatory"
+ design: "Observatory"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Meridian"
+ loc: (75000, 75000, 0)
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+element: {
+ name: "Trellis Docks"
+ design: "Station1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Blockade Runner"
+ design: "Courier"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-120e3, -90e3, 0)
+
+ navpt: { cmd: Vector, loc: (-120e3, -170e3, 0), speed: 1000, rgn: "Trellis" }
+}
+
+
+element: {
+ name: "Kitts"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Trellis"
+ loc: (185e3, -280e3, 0)
+}
+
+element: {
+ name: "Lovo"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Trellis"
+ loc: (187e3, -281e3, 0)
+}
+
+
+element: {
+ name: "Edmonton"
+ design: "IM4300"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (212e3, -290e3, 0)
+
+ navpt: { cmd: Vector, loc: (-120e3, -170e3, 0), speed: 500, rgn: "Trellis" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Hold, param: 20, event_ship: Kitts }
+event: { event: Hold, param: 20, event_ship: Lovo }
+
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (0,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Solus System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Camera, time: 12, param: (6, 15), target: "Blockade Runner" }
+
+event: { event: Display, message: "Trellis Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Blockade Runner", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 22, param: (6, 20), target: "Kitts" }
+event: { event: Display, message: "Dantari Separatists", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Destroyer Squadron 'Kitts'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 40, param: 3, target: "body:Trellis", vec: (0,0,1e8) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, message: "Trellis", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Jalah", vec: (0,0,8e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, message: "Jalah", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: 3, target: "Tal Vesta Stellar Observatory", vec: (0,0,2e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+event: { event: Display, message: "Meridian Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tal Vesta Stellar Observatory", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 80, param: 3, target: "body:Solus", vec: (60,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.14, 0.01, 0.02) }
+
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/02-Coup-Failure.def b/data/shatter/Campaigns/02/Scenes/02-Coup-Failure.def
new file mode 100644
index 0000000..478042d
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/02-Coup-Failure.def
@@ -0,0 +1,219 @@
+MISSION
+
+name: "Cmpn02 News02 - Coup Failure"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29500, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52500, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54600, 32800, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "Downtown Telmera"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "Palace"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55300, 28800, 0)
+}
+
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30700, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30500, 0)
+}
+
+element: {
+ name: "Telmera Starport"
+ design: "Airbase1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55000, 22000, 0)
+}
+
+
+/***
+
+TELMERA CITY, SOLUS - An attempted palace coup by Dantari agents was thwarted
+by alert members of the Provisional Security Directorate early this morning.
+Separatist agents, working from a secret base near the capitol offices, succeeded
+in destroying the executive suite of the presidential palace.
+
+Security service members discovered the bomb only moments before it was detonated
+and were able to escort President Marish and his party to an undisclosed safe
+location. Senators Hamil and Covanon who were to attend a working breakfast with
+the President were killed in the blast, as were two security service agents who
+died trying to protect them. Memorial services for all four men are planned for
+later in the week.
+
+Speaking on behalf of President Marish, executive spokesperson Cyn Talban affirmed
+that the central government had not been struck down by the terrorist-style attack.
+"We are still very much open for business. President Marish is meeting with security
+advisors at this hour, and he will be holding a press conference from the safehouse
+later this morning to address your questions and concerns."
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (0,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Solus System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_02_Coup_Failure.ogg" }
+
+
+event: { event: Camera, time: 13, param: 3, target: "Downtown Telmera", vec: (0,0,5000) }
+event: { event: Camera, param: 5, vec: (-0.08, 0.005, -0.02) }
+
+event: { event: Damage, ship: "Palace", param: 1e6 }
+
+event: { event: Display, message: "Telmera Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Presidential Palace", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/03-Blockade-Broken.def b/data/shatter/Campaigns/02/Scenes/03-Blockade-Broken.def
new file mode 100644
index 0000000..ad5f7b2
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/03-Blockade-Broken.def
@@ -0,0 +1,297 @@
+MISSION
+
+name: "Cmpn02 News03 - Blockade Broken"
+type: "Patrol"
+system: "Solus"
+region: "Trellis"
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+element: {
+ name: "Trellis Docks"
+ design: "Station1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-130000, 160000, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-111503, 155656, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-155657, 148787, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Trellis"
+ loc: (-166015, 151521, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Avengers"
+ design: "Falcon"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Trellis"
+ loc: (-118941, 180411, 0)
+}
+
+element: {
+ name: "Stallions"
+ design: "Stormhawk"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Trellis"
+ loc: (-118754, 143664, 0)
+}
+
+element: {
+ name: "Warbirds"
+ design: "Thunderbolt"
+ carrier: "Archon"
+ commander: "Archon"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 20
+ maint_count: 10
+ iff: 1
+ region: "Trellis"
+ loc: (-135947, 178901, 0)
+}
+
+
+/***
+
+TRELLIS - The Alliance Third Fleet has broken the blockade of the
+Trellis-Solus Farcaster network, a Force:Command spokesperson has
+announced. The minefields surrounding the Farcaster terminus have
+been cleared, and several Separatist squadrons have been eliminated
+or greatly reduced in strength.
+
+Theater commander Admiral Evars has given official authorization for
+the commencement of humanitarian aid traffic to the inner planets.
+Certified non-governmental agencies delivering food, clothing,
+medicines, and emergency equipment will receive protective escorts
+by warships from the Third Fleet.
+
+"Although the blockade has been broken, there are still several
+hostile squadrons in operation near the outer worlds. We strongly
+recommend that only emergency traffic be routed through the Trellis
+sector. Civilian ships are advised to avoid the area until the threat
+can be assessed and appropriate actions taken," Evars was quoted as
+saying.
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Trellis-Solus", vec: (0,0,1000) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Trellis-Solus Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/02/News_03_Blockade_Broken.ogg" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "Archon", vec: (2,0,2700) }
+event: { event: Camera, param: 5, vec: (0.12, 0.006, -0.02) }
+
+event: { event: Display, message: "Task Force 3.7", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "CV-71 'Archon'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 200,100) }
+
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/04-Harmony-Risk.def b/data/shatter/Campaigns/02/Scenes/04-Harmony-Risk.def
new file mode 100644
index 0000000..b0577da
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/04-Harmony-Risk.def
@@ -0,0 +1,171 @@
+MISSION
+
+name: "Cmpn 02 Brief 04"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Solus-Kalon"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (80000, 20000, 0)
+
+ objective: { cmd: Vector, tgt: "Kalon-Solus" }
+}
+
+element: {
+ name: "Kalon-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Kalon"
+ loc: (90000, -54000, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Kalon" }
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Harmony Station"
+ design: "Station2"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Kalon"
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "body:Solus", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** HARMONY STATION \n*** KALON SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+
+event: {
+ event: Message
+ time: 1
+ sound: "Vox/Scenes/02/Briefing_04_sam.ogg"
+}
+
+
+event: { event: Camera, time: 10, param: 3, target: "Solus-Kalon", vec: (7,1,7500) }
+event: { event: Camera, time: 10, param: 5, vec: (-0.12, 0.01, 0.03) }
+event: { event: Display, time: 10, message: "Solus-Kalon Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Kalon-Solus", vec: (1,3,8500) }
+event: { event: Camera, time: 20, param: 5, vec: (0.14, 0.02, 0.03) }
+event: { event: Display, time: 20, message: "Kalon-Solus Farcaster", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Harmony Station", vec: (2,0,15000) }
+event: { event: Camera, time: 30, param: 5, vec: (0.15, 0.01,-0.03) }
+event: { event: Display, time: 30, message: "Harmony Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 50, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/05-Foothill-Ridge.def b/data/shatter/Campaigns/02/Scenes/05-Foothill-Ridge.def
new file mode 100644
index 0000000..db93f94
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/05-Foothill-Ridge.def
@@ -0,0 +1,346 @@
+MISSION
+
+name: "Cmpn 02 Brief 05"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+stardate: 1147287263.0
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (45000, -36000, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ commander: "SAM"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (40000, -35000, 0)
+}
+
+element: {
+ name: "AAA 2"
+ design: "AAA 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 2
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (40000, -60000, 0)
+}
+
+element: {
+ name: "SAM 2"
+ design: "SAM 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (30000, -32000, 0)
+}
+
+element: {
+ name: "Foothill Base"
+ design: "Airbase2"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (56000, -49000, 0)
+}
+
+element: {
+ name: "Adanis"
+ design: "Viper"
+ carrier: "Foothill Base"
+ commander: "Foothill Base"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 12
+ iff: 2
+ region: "Telmera"
+ loc: (38927, -31272, 0)
+}
+
+element: {
+ name: "Cobra Fangs"
+ design: "Cobra"
+ carrier: "Foothill Base"
+ commander: "Foothill Base"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 24
+ maint_count: 12
+ iff: 2
+ region: "Telmera"
+ loc: (46163, -63427, 0)
+}
+
+element: {
+ name: "Reactor"
+ design: "Reac01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (55000, -57000, 0)
+}
+
+element: {
+ name: "Factory 1"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (56000, -55000, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact02"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Telmera"
+ loc: (58000, -56000, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29000, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52000, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54000, 32000, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (52000, -52000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (53000, -55000, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30000, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Foothill Base", vec: (1,0.05,2800) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** FOOTHILL RIDGE \n*** TELMERA SECTOR \n*** CLASSIFIED: SECRET R5 NTK\n*************************************" }
+
+
+event: {
+ event: Message
+ time: 1
+ sound: "Vox/Scenes/02/Briefing_05_sam.ogg"
+}
+
+
+event: { event: Camera, time: 20, param: 3, target: "AAA 1", vec: (7,0.3,1000) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.03) }
+event: { event: Display, message: "AAA Battery", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 25, param: 3, target: "SAM 1", vec: (1,0.5,1000) }
+event: { event: Camera, param: 5, vec: (0.14, 0.02, 0.03) }
+event: { event: Display, message: "SAM Launcher", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Reactor", vec: (2,0.05,3500) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01,-0.03) }
+event: { event: Display, message: "Reactor Complex", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/06-Renser-Buildup.def b/data/shatter/Campaigns/02/Scenes/06-Renser-Buildup.def
new file mode 100644
index 0000000..b484c70
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/06-Renser-Buildup.def
@@ -0,0 +1,117 @@
+MISSION
+
+name: "Cmpn 02 Brief 06"
+type: "Patrol"
+system: "Renser"
+region: "Renser"
+stardate: 1147287263.0
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (5e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-8e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Ironhelm", vec: (1,0.2,350e3) }
+event: { event: Camera, param: 5, vec: (0.10, 0.01, 0.02) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Renser Fleet Mobilization\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Briefing_06.ogg"
+}
+
+
+event: { event: Camera, time: 10, param: 3, target: "Ironhelm", vec: (1,0.05,40e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, message: "Lornas Fleet Yards", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Ironhelm", vec: (-1,-0.07,6e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+event: { event: Display, message: "DESRON 26 'IRONHELM'", font: Limerick18, color: 0xffffff80, fade: (1,3,1), rect: (20,20, 400,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "body:Khaital", vec: (2,-0.06,3e7) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01,-0.02) }
+event: { event: Display, message: "Khaital Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/07-Research-Lab.def b/data/shatter/Campaigns/02/Scenes/07-Research-Lab.def
new file mode 100644
index 0000000..95e0b78
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/07-Research-Lab.def
@@ -0,0 +1,226 @@
+MISSION
+
+name: "Cmpn02 News07 Research Lab"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Tal Vesta Stellar Observatory"
+ design: "Observatory"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Meridian"
+ loc: (75e3, 75e3, 0)
+}
+
+element: {
+ name: "Solus-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (-200e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Solus" }
+}
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150e3, -180e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+element: {
+ name: "Jalah-Trellis"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (120e3, -200e3, 0)
+
+ objective: { cmd: Vector, tgt: "Trellis-Jalah" }
+}
+
+
+element: {
+ name: "Trellis-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (-100e3, -150e3, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Trellis" }
+}
+
+element: {
+ name: "Trellis-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Trellis"
+ loc: (50e3, -100e3, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Trellis" }
+}
+
+
+
+element: {
+ name: "Kendra"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Meridian"
+ loc: (125e3, 180e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Meridian, speed: 500 }
+}
+
+element: {
+ name: "Pelorat"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Meridian"
+ loc: (127e3, 170e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Meridian, speed: 500 }
+}
+
+
+
+/***
+
+MERIDIAN - The Tal Vesta University Stellar Observatory in Meridian
+orbit has been cut off by Separatist patrols and is facing severe
+shortages of food and consumable supplies. University staff indicate
+that the fusion plant on the observatory is still operational, and
+that basic life support functions - water, air, and power - are not
+an immediate concern. "Mainly, the students are just hungry. And
+frustrated," said Research Coordinator Alen Tolap.
+
+Student researchers living at the observatory are protesting the ongoing
+civil war. Native Solusans, ethnic Dantari, and even many Terellian
+Alliance students have issued a joint statement condemning the conflict
+and demanding the resumption of peaceful negotiations. Thus far, neither
+party in the conflict has commented on the student protests.
+
+Alliance Theater Command has promised to make humanitarian aid to the
+Meridian sector a top priority. "We'll find a way to feed these kids,"
+Fleet Admiral Evars was quoted as saying. "There's nothing more ornery
+than a bunch of hungry college students."
+
+
+***/
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Tal Vesta Stellar Observatory", vec: (0,0,5e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_07_Research_Lab.ogg"
+}
+event: { event: Display, message: "Meridian Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tal Vesta Stellar Observatory", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: (6, 25), target: "Kendra" }
+event: { event: Display, message: "Dantari Separatists", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Destroyer Squadron 'Kendra'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 55, param: 3, target: "Tal Vesta Stellar Observatory", vec: (1,-0.1,8e3) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, 0.02) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/08-Renser-Accusation.def b/data/shatter/Campaigns/02/Scenes/08-Renser-Accusation.def
new file mode 100644
index 0000000..684abab
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/08-Renser-Accusation.def
@@ -0,0 +1,183 @@
+MISSION
+
+name: "Cmpn02 News08 Renser"
+type: "Patrol"
+
+system: Renser
+system: Solus
+region: Solus
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-130e3, 160e3, 0)
+
+ navpt: { cmd: Vector, loc: (-130e3, 200e3, 0), speed: 500, rgn: Solus }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-147605, 152855, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-154062, 174318, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-162917, 143104, 0)
+
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (5e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Renser
+ navpt: { cmd: Vector, loc: (-8e3,-50e3,0), speed: 750, rgn: Renser }
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Renser", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.02) }
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_08_Renser_Accusation.ogg"
+}
+event: { event: Display, message: "Renser System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Marakan Hegemony", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 15, param: (6, 15), target: "Ironhelm" }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Archon", vec: (2,-0.05,8e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01, 0.02) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Solus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/09-Senate-Resolution.def b/data/shatter/Campaigns/02/Scenes/09-Senate-Resolution.def
new file mode 100644
index 0000000..7673e3c
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/09-Senate-Resolution.def
@@ -0,0 +1,179 @@
+MISSION
+
+name: "Cmpn02 News09 Senate"
+type: "Patrol"
+
+system: Jarnell
+system: Renser
+system: Solus
+region: Solus
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-130e3, 160e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-130e3, 260e3, 0), speed: 500, rgn: Solus }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-125e3, 155e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-125e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-154e3, 174e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-154e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Solus
+ loc: (-162e3, 143e3, 0)
+ head: 180
+
+ navpt: { cmd: Vector, loc: (-162e3, 260e3, 0), speed: 500, rgn: Solus }
+ objective: { cmd: Escort, tgt: "Archon" }
+}
+
+
+element: {
+ name: Dragon
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-7e3, -2e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 5e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,2), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, message: "Jarnell", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,100) }
+event: { event: Display, time: 5, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Display, image: "Campaigns/02/Scenes/Senate.pcx", color: 0xffffffff, fade: (1,7,1), rect: (-280,-280, 256,256) }
+
+event: {
+ event: Message
+ time: 6
+ sound: "Vox/Scenes/02/News_09_Senate_Resolution.ogg"
+}
+
+
+event: { event: Camera, time: 30, param: 3, target: "Archon", vec: (-1,-0.1,8e3) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Solus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Dragon", vec: ( 1,0.16,9e3) }
+event: { event: Camera, param: 5, vec: ( 0.15,-0.01, 0.01) }
+event: { event: Display, message: "Khaital Sector Staging Area", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/10-Renser-Arrival.def b/data/shatter/Campaigns/02/Scenes/10-Renser-Arrival.def
new file mode 100644
index 0000000..7378fe6
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/10-Renser-Arrival.def
@@ -0,0 +1,161 @@
+MISSION
+
+name: "Cmpn02 Brief10 Jalah"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: Manticore
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-120e3, -50e3, 0)
+ region: Jalah
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-127e3, -52e3, 0)
+ region: Jalah
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: ( 110e3, 105e3, 0)
+ region: Jalah
+ navpt: { cmd: Vector, loc: ( 110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: Martak
+ design: Razor
+ mission: Misc
+
+ intel: Secret
+ count: 2
+ iff: 2
+ loc: (-51e3, -45e3, 0)
+ region: Jalah
+
+ loadout: { ship: -1, name: "ACM Short Range" }
+ navpt: { cmd: Vector, loc: (-110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "body:Jalah", vec: (3,0,2e8) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Hegemony Task Force TF4.3\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 2, sound: "Vox/Scenes/02/Briefing_10-OK.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: Manticore, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, target: Manticore, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Hegemony Carrier Group 'Manticore'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 30, param: (6,16), target: Martak, vec: (-1,-0.1,8e3) }
+
+event: { event: Camera, time: 45, param: 3, target: Mattock, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+
+event: { event: Camera, time: 60, param: 3, target: "Fort Talas", vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Fort Talas Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/11-Dantari-Pullback.def b/data/shatter/Campaigns/02/Scenes/11-Dantari-Pullback.def
new file mode 100644
index 0000000..85fa2bf
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/11-Dantari-Pullback.def
@@ -0,0 +1,234 @@
+MISSION
+
+name: "Cmpn02 Brief11 Pullback"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+objective: "Unspecified"
+
+sitrep: "Unknown"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: Manticore
+ design: Dragon
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-120e3, -50e3, 0)
+ region: Jalah
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-127e3, -52e3, 0)
+ region: Jalah
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: ( 110e3, 105e3, 0)
+ region: Jalah
+ navpt: { cmd: Vector, loc: ( 110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: Martak
+ design: Razor
+ mission: Misc
+
+ intel: Secret
+ count: 2
+ iff: 2
+ loc: (-51e3, -45e3, 0)
+ region: Jalah
+
+ loadout: { ship: -1, name: "ACM Short Range" }
+ navpt: { cmd: Vector, loc: (-110e3,-170e3,0), speed: 750, rgn: Jalah }
+}
+
+
+element: {
+ name: "Goliath"
+ design: "Goliath"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (225e3, 280e3, 0)
+ navpt: { cmd: Vector, loc: (190e3,190e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+element: {
+ name: "Lanner"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (215e3, 290e3, 0)
+ navpt: { cmd: Vector, loc: (210e3,190e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+element: {
+ name: "Kendra"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (125e3, 180e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Jalah, speed: 500 }
+}
+
+element: {
+ name: "Pelorat"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ region: Jalah
+ loc: (127e3, 170e3, 0)
+ navpt: { cmd: Vector, loc: (90e3,90e3,0), rgn: Jalah, speed: 500 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Jalah", vec: (3,0,1e8) }
+event: { event: Camera, param: 5, vec: (0.13, 0.01, 0.01) }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Separatist Withdrawal to Jalah\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 2, sound: "Vox/Scenes/02/Briefing_11-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: Goliath, vec: (-1,-0.1,7e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Dantari Carrier Group 'Goliath'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Jalah Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 25, param: (6,20), target: Kendra, vec: (-1,-0.1,8e3) }
+
+
+event: { event: Camera, time: 40, param: 3, target: Manticore, vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Hegemony Carrier Group 'Manticore'", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 400,100) }
+event: { event: Display, message: "Completing UNREP", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Fort Talas", vec: (-1,-0.1,15e3) }
+event: { event: Camera, param: 5, vec: (-0.16, 0.01, 0.01) }
+event: { event: Display, message: "Fort Talas Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/12-Cease-Fire.def b/data/shatter/Campaigns/02/Scenes/12-Cease-Fire.def
new file mode 100644
index 0000000..ab18a01
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/12-Cease-Fire.def
@@ -0,0 +1,310 @@
+MISSION
+
+name: "Cmpn02 News12 Cease Fire"
+type: "Patrol"
+
+system: Solus
+region: Solus
+
+objective: "Unspecified"
+sitrep: "Unknown"
+start: "33:00:00"
+stardate: 1147384500.0
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Solus-Jalah"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Solus"
+ loc: (150000, -180000, 0)
+
+ objective: { cmd: Vector, tgt: "Jalah-Solus" }
+}
+
+element: {
+ name: "Fort Talas"
+ design: "Station3"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (-150e3, -150e3, 0)
+}
+
+element: {
+ name: "Jalah-Solus"
+ design: "Farcaster"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Jalah"
+ loc: (0, 0, 0)
+
+ objective: { cmd: Vector, tgt: "Solus-Jalah" }
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-140e3, -160e3, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-125e3, -155e3, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-154e3, -174e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Jalah
+ loc: (-162e3, -143e3, 0)
+}
+
+
+
+element: {
+ name: "Admin"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 29500, 0)
+}
+
+element: {
+ name: "Office"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-52500, 28000, 0)
+}
+
+element: {
+ name: "Tower"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-54600, 32800, 0)
+}
+
+element: {
+ name: "Alton"
+ design: "Bldg03"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 26000, 0)
+}
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-60000, 28000, 0)
+}
+
+element: {
+ name: "Downtown Telmera"
+ design: "City02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-56000, 30000, 0)
+}
+
+element: {
+ name: "Palace"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55300, 28800, 0)
+}
+
+
+element: {
+ name: "City Block"
+ design: "City00"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-51000, 30700, 0)
+}
+
+element: {
+ name: "Factory 2"
+ design: "Fact04"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-53000, 30500, 0)
+}
+
+element: {
+ name: "Telmera Starport"
+ design: "Airbase1"
+ mission: "Flight Ops"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ region: "Telmera"
+ loc: (-55000, 22000, 0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/02/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "Stalwart", vec: (4,0,4e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.01, 0.01) }
+event: { event: Display, message: "Jalah Sector", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,100) }
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/News_12_Cease_Fire.ogg"
+}
+
+
+event: { event: Camera, time: 18, param: 3, target: "Downtown Telmera", vec: (1,0.1,4e3) }
+event: { event: Camera, param: 5, vec: (-0.08, 0.005, -0.02) }
+event: { event: Display, message: "Telmera Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Presidential Palace", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 43, param: 3, target: "body:Solus", vec: (-2,-0.1,2e7) }
+event: { event: Camera, param: 5, vec: (-0.10, 0.02, 0.01) }
+
+
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/13-Renser-Invasion.def b/data/shatter/Campaigns/02/Scenes/13-Renser-Invasion.def
new file mode 100644
index 0000000..9226782
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/13-Renser-Invasion.def
@@ -0,0 +1,172 @@
+MISSION
+
+name: "Cmpn02 News13 Invasion"
+type: "Patrol"
+
+system: Jarnell
+system: Renser
+region: Khaital
+
+objective: "Unspecified"
+sitrep: "Unknown"
+start: "00:00:00"
+stardate: 1147400000.0
+
+degrees: true
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-140e3, -160e3, 0)
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-125e3, -155e3, 0)
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-154e3, -174e3, 0)
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ loc: (-162e3, -143e3, 0)
+}
+
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (-2e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Lornas
+ navpt: { cmd: Vector, loc: (11e3,-50e3,0), speed: 750, rgn: Lornas }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2, 0, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, time: 1, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/News_13_Renser_Invasion.ogg"
+}
+
+event: { event: Camera, time: 20, param: 3, target: "Archon", vec: (4,0,5e3) }
+event: { event: Camera, param: 5, vec: (0.15,0.01, 0.01) }
+event: { event: Display, message: "Archon Carrier Group", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Ironhelm", vec: (4,0.2,5e3) }
+event: { event: Camera, param: 5, vec: (-0.15, -0.01, 0.01) }
+event: { event: Display, message: "", font: Limerick18, color: 0xffffff80, fade: (1,9,1), rect: (20,20, 300,300) }
+
+
+event: { event: Camera, time: 70, param: 3, target: "Archon", vec: (2,0,7e3) }
+event: { event: Camera, param: 5, vec: (0.15,-0.01, -0.01) }
+
+event: { event: EndScene, time: 100, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/Defeat1.def b/data/shatter/Campaigns/02/Scenes/Defeat1.def
new file mode 100644
index 0000000..41cf0da
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/Defeat1.def
@@ -0,0 +1,70 @@
+MISSION
+
+name: "Cmpn 02 Defeat 01"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Kitts"
+ design: "Wolf"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ loc: (185e3, -280e3, 0)
+}
+
+element: {
+ name: "Lovo"
+ design: "Baikal"
+ commander: "Kitts"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 2
+ playable: false
+ loc: (187e3, -281e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Solus", vec: (3,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 20, param: 3, target: "Kitts", vec: (1,0.05,4e3) }
+event: { event: Camera, param: 5, vec: (-0.08,-0.005, 0.01) }
+
+event: { event: Display, time: 40, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 42, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/Defeat2.def b/data/shatter/Campaigns/02/Scenes/Defeat2.def
new file mode 100644
index 0000000..dfb12cc
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/Defeat2.def
@@ -0,0 +1,95 @@
+MISSION
+
+name: "Cmpn 02 Defeat 02"
+type: "Patrol"
+system: "Renser"
+region: "Khaital"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Ironhelm
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (0, 0, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (0,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: Mattock
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (10e3, 2e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-10e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: "Oak Hall"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (5e3, 6e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (-2e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+element: {
+ name: "North Point"
+ design: Tiger
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 2
+ loc: (-5e3, -4e3, 0)
+ region: Khaital
+ navpt: { cmd: Vector, loc: (11e3,-50e3,0), speed: 750, rgn: Khaital }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Khaital", vec: (1,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Ironhelm }
+
+event: { event: Display, time: 33, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 35, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/M1-Catching-Up.def b/data/shatter/Campaigns/02/Scenes/M1-Catching-Up.def
new file mode 100644
index 0000000..c47d8f1
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/M1-Catching-Up.def
@@ -0,0 +1,58 @@
+MISSION
+
+name: "Cmpn 02 Mail 01"
+type: "Patrol"
+system: "Solus"
+region: "Solus"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,67,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: CATCHING UP\n-----\nPATH: Magellan IV Shipboard | Loris Station | Northeast Transceiver 4 | Silessian Outer Relay | Silessian Inner Relay | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,65,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate!\n\nI just heard about your promotion and wanted to say congratulations! Sorry I didn't get to give you a proper send-off before you shipped out.\n\nSo, the Force brass is starting to recognize your 'unique talents,' eh? You should have followed in my footsteps and joined the Independent Trade fleet. Too bad you had to get all respectable, you could have been a rich man by now. I'm not a rich man, but I'm sure you would have been. Next time I see you I'll have to remember to salute.\n\nCan't tell you too much from this end. The 'Maggie' just put in for a forty-hour stopover in Loris on the way through to 'parts unknown'. Don't ask me no questions, and I'll tell you no lies. But just between you and me, watch your tail out there, all right?\n\nHey, are you going to the Academy Reunion this year? We should be back in the core systems by then, and I've been meaning to ask the skipper of this here tub for some time off. If you complete your tour by then, I'll catch you at the bar. You can buy me a drink in exchange for that salute.\n\n--Jonas\n\nPS Have you heard from Sara lately? I haven't been able to track her down from way out here. If you talk to her, tell her 'I am the Doorway' for me. -J" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_01a.ogg"
+}
+
+event: {
+ event: Message
+ time: 32
+ sound: "Vox/Scenes/02/Mail_01b.ogg"
+}
+
+event: {
+ event: Message
+ time: 45
+ sound: "Vox/Scenes/02/Mail_01c.ogg"
+}
+
+
+event: { event: EndScene, time: 72, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/M2-New-Digs.def b/data/shatter/Campaigns/02/Scenes/M2-New-Digs.def
new file mode 100644
index 0000000..cbcf052
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/M2-New-Digs.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 02 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,83,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,77,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: NEW DIGS\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,75,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nWell, we're finally just about moved in to the new Ele'aan Consular Center. My new position as the Junior Consular Liason to the Ele'aan Fusion rates a new office with a lovely view of the Endless Falls. At twilight, when the mist shroud catches the light of the setting sun, it's just breathtaking. Ever so much better than that sub-basement hovel I was lurking in on Borova. Yay me!\n\nThanks for relaying that message from Jonas. 'I am the Doorway' Honestly, he's such a character. [giggle] I don't even know where he could have heard that expression - it's part of an old Ele'aan greeting and farewell ritual. The Ele'aans are an advanced race, but they can be pretty inscrutable at times, even for me.\n\nIn fact, right now they are all agitated about the Zolon Empire for some reason. They won't tell anybody what's going on, but I get little bits of messages here and there, and they are definitely worried about something, if you can believe that.\n\nSay, if you talk to Jonas again, see if he knows anything about Zolon activity. I know his trade routes take him through the northern Hegemony systems. I don't know if he's ever been out as far as Nephrys in all his wanderings. That's right on the border of Zolon space. Maybe he's seen or heard something out there...\n\nAnyway, congratulations on your promotion! I knew you'd hit the big time eventually. [grin]\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_02_New_Digs.ogg"
+}
+
+
+event: { event: EndScene, time: 80, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/M3-Why-Renser.def b/data/shatter/Campaigns/02/Scenes/M3-Why-Renser.def
new file mode 100644
index 0000000..d768606
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/M3-Why-Renser.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 02 Mail 03"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,46,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,42,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: WHY RENSER?\n-----\nPATH: PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 3RD FLEET HQ | Trellis Relay | Renser Temporary Transceiver | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,40,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Why are we attacking Renser now? The Separatists started this fight, not the Hegemony. How is this going to help stabilize the crisis in Solus, or improve the safety of the Alliance?\n\nThe Ele'aan Ambassador, Councilor Auris was most... well, I don't think 'upset' is the right word. But he seemed very disconcerted about the potential consequences of this invasion during the Council meeting this morning. I think the Ele'aan delegation tried to talk President Valmar out of this action - I think they wanted him to leave well enough alone and stay out of Hegemony internal affairs.\n\nI hope you're all right out there... I'm worried that we are throwing away lives on a foolish errand, and risking far more in the long run... Just tell me you'll stay safe, OK?\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/02/Mail_03_Why_Renser.ogg"
+}
+
+
+event: { event: EndScene, time: 46, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Scenes/Victory1.def b/data/shatter/Campaigns/02/Scenes/Victory1.def
new file mode 100644
index 0000000..c727ac7
--- /dev/null
+++ b/data/shatter/Campaigns/02/Scenes/Victory1.def
@@ -0,0 +1,90 @@
+MISSION
+
+name: "Cmpn 02 Victory"
+type: "Patrol"
+system: "Renser"
+region: "Renser"
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Renser }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-125e3, 155e3, 0)
+ navpt: { cmd: Vector, loc: (-125e3,-50e3,0), speed: 350, rgn: Renser }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Renser
+ loc: (-154e3, 174e3, 0)
+ navpt: { cmd: Vector, loc: (-154,-50e3,0), speed: 350, rgn: Renser }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Renser", vec: (1,0,5e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Highland", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 300,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 300,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/02/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,22), target: Archon }
+
+event: { event: Display, time: 33, image: "Campaigns/02/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 35, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/02/Templates.def b/data/shatter/Campaigns/02/Templates.def
new file mode 100644
index 0000000..4eb0369
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates.def
@@ -0,0 +1,20 @@
+TEMPLATELIST
+
+// specialized templates first
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_HS.def", rgn: Solus, name: "Harmony Patrol", after: "05/12:00:00", exec_once: 1 }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_HS.def", rgn: Solus, name: "Harmony Patrol", after: "05/12:00:00", exec_once: 1 }
+
+// then general templates
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_01.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_01.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_02.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_02.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_03.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_03.def" }
+
+mission: { type: ESCORT_FREIGHT, group: INTERCEPT_SQUADRON, script: "Templates/IS_Escort_01.def", rgn: Trellis, name: "Humanitarian Aid" }
+mission: { type: ESCORT_FREIGHT, group: FIGHTER_SQUADRON, script: "Templates/FS_Escort_01.def", rgn: Trellis, name: "Humanitarian Aid" }
+mission: { type: ESCORT_FREIGHT, group: INTERCEPT_SQUADRON, script: "Templates/IS_Escort_02.def", rgn: Trellis, name: "Harmony Run" }
+mission: { type: ESCORT_FREIGHT, group: FIGHTER_SQUADRON, script: "Templates/FS_Escort_02.def", rgn: Trellis, name: "Harmony Run" }
+
+mission: { type: ESCORT_FREIGHT, group: DESTROYER_SQUADRON, script: "Templates/DS_Escort_03.def", rgn: Trellis, name: "Freight Escort" }
diff --git a/data/shatter/Campaigns/02/Templates/DS_Escort_03.def b/data/shatter/Campaigns/02/Templates/DS_Escort_03.def
new file mode 100644
index 0000000..af1ea70
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/DS_Escort_03.def
@@ -0,0 +1,175 @@
+MISSION_TEMPLATE
+
+name: "Freight Escort"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: Obs, elem: "Tal Vesta Stellar Observatory" }
+
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: TypeIII,
+ rloc: { ref: FC1, dex: 180e3, dex_var: 50e3, el: 0, el_var: 0 },
+ mission: freight,
+ count: 1,
+ iff: 1,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: Ward, dex: 50e3, dex_var:10e3, el: 0, el_var: 0 }, speed: 450, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: Obs, dex: 40e3, dex_var:10e3, el: 0, el_var: 0 }, speed: 450, rgn: Meridian },
+}
+
+ward: Ward
+
+alias: {
+ name: Player,
+ code: player,
+ mission: escort_freight,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Meridian },
+ navpt: { cmd: rtb, rloc: { ref: Player, dex: 20e3, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "Glad to see you guys! Thanks for escorting us.",
+ event_chance: 50,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "Looks like our pick-up is late.",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "Can you stick with us in case there's any trouble?",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "Thanks for the lift. I think we are clear now.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "Looks like our escort is here. Let's get going.",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "We were expecting some Zodiacs to pick up our cargo.",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "Still can't see them. I hope everything is all right.",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 75e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:1", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 800, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Meridian,
+ rloc: { ref: "Ward:2", dex: 170e3, az: 90, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:2", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 800, rgn: Meridian },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Escort_01.def b/data/shatter/Campaigns/02/Templates/FS_Escort_01.def
new file mode 100644
index 0000000..67269a9
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Escort_01.def
@@ -0,0 +1,222 @@
+MISSION_TEMPLATE
+
+name: "Humanitarian Aid"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 0, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex:100e3, dex_var:30e3, az: 0, az_var: 60, el_var: 0 }, speed: 400, rgn: Solus },
+}
+
+ward: Ward
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 5e3, az: 180, az_var:25, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 30e3, dex_var: 2e3, az: 180, az_var:75, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "Glad to see you guys! Thanks for escorting us.",
+ event_chance: 35,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "OK, we're ready to make the jump.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "Form up and we'll go through together.",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "Looks like our pick-up is late.",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "Can you stick with us in case there's any trouble?",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "Thanks for the lift. I think we are clear now.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "Looks like our escort is here. Let's get going.",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "We were expecting some Zodiacs to pick up our cargo.",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "Still can't see them. I hope everything is all right.",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Escort_02.def b/data/shatter/Campaigns/02/Templates/FS_Escort_02.def
new file mode 100644
index 0000000..1ff4a65
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Escort_02.def
@@ -0,0 +1,255 @@
+MISSION_TEMPLATE
+
+name: "Harmony Run"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+alias: { name: FC3, elem: "Solus-Kalon" }
+alias: { name: FC4, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Ward1,
+ design: IM2800,
+ region: Trellis,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 3, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 20e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var: 5e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+ward: Ward1
+
+element: {
+ name: Ward2,
+ design: IM2800,
+ region: Solus,
+ rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 0, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 22e3, dex_var: 6e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var:20e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ region: Trellis,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward1", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:2", dex: 10e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:4", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:5", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:6", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 18e3, dex_var: 3e3, az: 0, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward1, tgt_desc: "the merchant vessel" },
+ objective: { cmd: escort, tgt: Ward2, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "Glad to see you guys! Thanks for escorting us.",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "OK, we're ready to make the jump.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "Form up and we'll go through together.",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-04.ogg",
+ event_message: "All right, we're half way there.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-05.ogg",
+ event_message: "Next stop: Harmony Station.",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "Thanks for the lift. I think we are clear now.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 6,
+ delay: 2,
+}
+
+event: {
+ id: 8,
+ event: Hold,
+ event_ship: Ward2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 4,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward1:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Ward1:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:5", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Ward1:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Patrol_01.def b/data/shatter/Campaigns/02/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..1e23f72
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Patrol_02.def b/data/shatter/Campaigns/02/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..4f9720e
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Patrol_02.def
@@ -0,0 +1,123 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Patrol_03.def b/data/shatter/Campaigns/02/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..710d72a
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Patrol_03.def
@@ -0,0 +1,119 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Baikal,
+ rloc: { ref: "Player:2", dex: 60e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/FS_Patrol_HS.def b/data/shatter/Campaigns/02/Templates/FS_Patrol_HS.def
new file mode 100644
index 0000000..f0a88e2
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/FS_Patrol_HS.def
@@ -0,0 +1,198 @@
+MISSION_TEMPLATE
+
+name: "Harmony Patrol"
+type: PATROL
+system: Solus
+region: Solus
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Solus-Kalon" }
+alias: { name: FC2, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony Station" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+ward: HS
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ region: Solus,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 25e3, dex_var: 0, az: 180, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus }, // 1
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 0, az: 0, az_var: 30, el_var: 0 }, speed: 500, rgn: Kalon }, // 2
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 0, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 3
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 270, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 4
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 180, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 5
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 90, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 6
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, dex_var: 1e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon }, // 7
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus }, // 8
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Solus }, // 9
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: HS },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:4", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Player:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:3", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Player:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+element: {
+ name: Wolf1,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (250e3, 250e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+element: {
+ name: Wolf2,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (280e3, 280e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Wolf1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 2,
+ event: Hold,
+ event_ship: Wolf2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ event_ship: Player,
+ event_source: HS,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "Mayday! Mayday! We are under attack!",
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+ delay: 120,
+}
+
+event: {
+ id: 20,
+ event: Jump,
+ event_ship: Stalwart,
+ event_target: Kalon,
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 15,
+}
+
+event: {
+ id: 21,
+ event: Objective,
+ event_ship: Stalwart,
+ event_param: 10,
+ event_target: Wolf1,
+
+ trigger: Event,
+ trigger_param: 20,
+ delay: 15,
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Escort_01.def b/data/shatter/Campaigns/02/Templates/IS_Escort_01.def
new file mode 100644
index 0000000..e03ba57
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Escort_01.def
@@ -0,0 +1,222 @@
+MISSION_TEMPLATE
+
+name: "Humanitarian Aid"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 520, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 0, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex:100e3, dex_var:30e3, az: 0, az_var: 60, el_var: 0 }, speed: 400, rgn: Solus },
+}
+
+ward: Ward
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:2", dex: 7e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 5e3, az: 180, az_var:25, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 30e3, dex_var: 2e3, az: 180, az_var:75, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "Glad to see you guys! Thanks for escorting us.",
+ event_chance: 35,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "OK, we're ready to make the jump.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "Form up and we'll go through together.",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-07.ogg",
+ event_message: "Looks like our pick-up is late.",
+ event_chance: 50,
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-08.ogg",
+ event_message: "Can you stick with us in case there's any trouble?",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "Thanks for the lift. I think we are clear now.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward,
+ trigger_param: 4,
+ delay: 2,
+}
+
+// ALTERNATE MESSAGES:
+event: {
+ id: 102,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-09.ogg",
+ event_message: "Looks like our escort is here. Let's get going.",
+
+ trigger: Skipped,
+ trigger_param: 2,
+}
+
+event: {
+ id: 105,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-10.ogg",
+ event_message: "We were expecting some Zodiacs to pick up our cargo.",
+
+ trigger: Skipped,
+ trigger_param: 5,
+}
+
+event: {
+ id: 106,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-11.ogg",
+ event_message: "Still can't see them. I hope everything is all right.",
+
+ trigger: Event,
+ trigger_param: 105,
+ delay: 5,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward, rloc: { ref: "Ward:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Escort_02.def b/data/shatter/Campaigns/02/Templates/IS_Escort_02.def
new file mode 100644
index 0000000..38bbb12
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Escort_02.def
@@ -0,0 +1,255 @@
+MISSION_TEMPLATE
+
+name: "Harmony Run"
+type: ESCORT_FREIGHT
+system: Solus
+region: Trellis
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Trellis-Solus" }
+alias: { name: FC2, elem: "Solus-Trellis" }
+alias: { name: FC3, elem: "Solus-Kalon" }
+alias: { name: FC4, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Ward1,
+ design: IM2800,
+ region: Trellis,
+ rloc: { ref: A1, dex: 130e3, dex_var: 15e3, az: 70, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 900,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 99e3, dex_var:10e3, az: 180, az_var: 45, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 30e3, dex_var: 3e3, az: 180, az_var: 3, el_var: 0 }, speed: 530, rgn: Trellis },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, az: 0, az_var: 3, el_var: 0 }, speed: 520, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 20e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var: 5e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+ward: Ward1
+
+element: {
+ name: Ward2,
+ design: IM2800,
+ region: Solus,
+ rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 0, az_var: 30 },
+ mission: cargo,
+ count: 1,
+ iff: 0,
+ intel: tracked,
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 22e3, dex_var: 6e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 50e3, dex_var:20e3, az: 0, az_var: 60, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: HS, dex: 90e3, dex_var:30e3 }, speed: 450, rgn: Kalon },
+}
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ region: Trellis,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: "Ward1", dex: 15e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:1", dex: 10e3, az: 270, az_var: 30, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:2", dex: 10e3, az: 270, az_var: 20, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:3", dex: 10e3, az: 0, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:4", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:5", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, rloc: { ref: "Ward1:6", dex: 10e3, az: 180, az_var: 20, el_var: 0 }, speed: 500, rgn: Kalon },
+
+ navpt: { cmd: vector, rloc: { ref: FC4, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, rloc: { ref: FC3, dex: 18e3, dex_var: 3e3, az: 0, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 28e3, dex_var: 3e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Trellis },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Trellis },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: escort, tgt: Ward1, tgt_desc: "the merchant vessel" },
+ objective: { cmd: escort, tgt: Ward2, tgt_desc: "the merchant vessel" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Ward1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-01.ogg",
+ event_message: "Glad to see you guys! Thanks for escorting us.",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-02.ogg",
+ event_message: "OK, we're ready to make the jump.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 4,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-03.ogg",
+ event_message: "Form up and we'll go through together.",
+
+ trigger: Event,
+ trigger_param: 3,
+ delay: 2,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward,
+ sound: "Vox/Misc/A01-04.ogg",
+ event_message: "All right, we're half way there.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 3,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ event_ship: Player,
+ sound: "Vox/Misc/A01-05.ogg",
+ event_message: "Next stop: Harmony Station.",
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 2,
+}
+
+event: {
+ id: 7,
+ event: Message,
+ event_ship: Player,
+ event_source: Ward1,
+ sound: "Vox/Misc/A01-06.ogg",
+ event_message: "Thanks for the lift. I think we are clear now.",
+
+ trigger: Navpoint,
+ trigger_ship: Ward1,
+ trigger_param: 6,
+ delay: 2,
+}
+
+event: {
+ id: 8,
+ event: Hold,
+ event_ship: Ward2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 4,
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Ward:1", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:1", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Trellis },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Solus,
+ rloc: { ref: "Ward1:4", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Ward1:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Solus },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Ward1:5", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: "Ward1:6", dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Ward1:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Patrol_01.def b/data/shatter/Campaigns/02/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..7ddb607
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Patrol_02.def b/data/shatter/Campaigns/02/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..5a24576
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Patrol_02.def
@@ -0,0 +1,123 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Patrol_03.def b/data/shatter/Campaigns/02/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..0141a75
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Patrol_03.def
@@ -0,0 +1,119 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Baikal,
+ rloc: { ref: "Player:2", dex: 45e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
diff --git a/data/shatter/Campaigns/02/Templates/IS_Patrol_HS.def b/data/shatter/Campaigns/02/Templates/IS_Patrol_HS.def
new file mode 100644
index 0000000..d1c8f75
--- /dev/null
+++ b/data/shatter/Campaigns/02/Templates/IS_Patrol_HS.def
@@ -0,0 +1,198 @@
+MISSION_TEMPLATE
+
+name: "Harmony Patrol"
+type: PATROL
+system: Solus
+region: Solus
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: FC1, elem: "Solus-Kalon" }
+alias: { name: FC2, elem: "Kalon-Solus" }
+alias: { name: HS, elem: "Harmony Station" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+ward: HS
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ region: Solus,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: escort_freight,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: vector, rloc: { ref: FC1, dex: 25e3, dex_var: 0, az: 180, az_var: 10, el_var: 0 }, speed: 500, rgn: Solus }, // 1
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 30e3, dex_var: 0, az: 0, az_var: 30, el_var: 0 }, speed: 500, rgn: Kalon }, // 2
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 0, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 3
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 270, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 4
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 180, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 5
+ navpt: { cmd: defend, rloc: { ref: HS, dex: 40e3, dex_var: 5e3, az: 90, az_var: 20, el_var: 2 }, speed: 500, rgn: Kalon }, // 6
+
+ navpt: { cmd: vector, rloc: { ref: FC2, dex: 25e3, dex_var: 1e3, az: 180, az_var: 5, el_var: 0 }, speed: 500, rgn: Kalon }, // 7
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 60e3, dex_var: 5e3, az: 150, az_var: 5, el_var: 0 }, speed: 500, rgn: Solus }, // 8
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0, el_var: 0 }, speed: 250, rgn: Solus }, // 9
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: HS },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:4", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward1, rloc: { ref: "Player:5", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 2,
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ region: Kalon,
+ rloc: { ref: HS, dex: 135e3, az: 200, az_var: 30 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+
+ navpt: { cmd: intercept, tgt: Player, rloc: { ref: "Player:3", dex: 40e3, az: 200, az_var: 30 }, speed: 300, rgn: Kalon },
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ region: Kalon,
+ rloc: { ref: HS, dex: 140e3, az: 180, az_var: 45 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+ intel: secret,
+
+ navpt: { cmd: assault, tgt: Ward2, rloc: { ref: "Player:4", dex: 20e3, az: 180, az_var: 20, el_var: 0 }, speed: 200, rgn: Kalon },
+ },
+}
+
+element: {
+ name: Wolf1,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (250e3, 250e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+element: {
+ name: Wolf2,
+ design: Wolf,
+ iff: 2,
+ region: Jalah,
+ loc: (280e3, 280e3, 0),
+ intel: secret,
+ hold: 60,
+
+ objective: { cmd: assault, tgt: HS, rgn: Kalon },
+}
+
+event: {
+ id: 1,
+ event: Hold,
+ event_ship: Wolf1,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 2,
+ event: Hold,
+ event_ship: Wolf2,
+ event_param: 0,
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ event_ship: Player,
+ event_source: HS,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "Mayday! Mayday! We are under attack!",
+
+ trigger: Navpoint,
+ trigger_ship: Player,
+ trigger_param: 2,
+ delay: 120,
+}
+
+event: {
+ id: 20,
+ event: Jump,
+ event_ship: Stalwart,
+ event_target: Kalon,
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 15,
+}
+
+event: {
+ id: 21,
+ event: Objective,
+ event_ship: Stalwart,
+ event_param: 10,
+ event_target: Wolf1,
+
+ trigger: Event,
+ trigger_param: 20,
+ delay: 15,
+}
diff --git a/data/shatter/Campaigns/02/campaign.def b/data/shatter/Campaigns/02/campaign.def
new file mode 100644
index 0000000..3e4eae8
--- /dev/null
+++ b/data/shatter/Campaigns/02/campaign.def
@@ -0,0 +1,1237 @@
+CAMPAIGN
+
+name: "Operation Highland"
+
+desc:
+ "The Independent System of Solus is in danger of being destroyed "
+ "by civil war. Dantari Separatists seeking to join the Hegemony "
+ "Prefecture of Renser have gained control of much of the Solus "
+ "Star Fleet. The Loyalist faction has requested military aid from "
+ "the Terellian Alliance. A Force:Space task force has been dispatched "
+ "to break the blockade, evacuate Alliance citizens from Solus, and "
+ "stabilize the military situation."
+
+situation:
+ "\tThe Independent System of Solus has requested military "
+ "assistance from Terellian Alliance Force:Command. "
+ "Dantari Separatists seeking to join the Hegemony "
+ "Prefecture of Renser have gained control of much of the Solus "
+ "Star Fleet and have established a blockade around the Trellis "
+ "Gate. The Loyalist forces and many Alliance civilians have been "
+ "trapped on the inner planets of the system.\n\n"
+
+ "\tForce:Intel believes that the Separatists are being backed "
+ "with military support from the Prefecture of Renser, a Hegemony "
+ "border system. All Force:Space units are instructed to be on "
+ "the lookout for any Hegemony involvement in this conflict.\n"
+
+orders:
+ "\t* Protect civilian and allied assets in the Independent System of Solus.\n"
+ "\t* Break the Separatist blockade of the inner planets.\n"
+ "\t* Apprehend or destroy military units of the Dantari Separatists.\n"
+ "\t* Determine the extent of Hegemony involvement in this conflict.\n"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: carrier_group, id: 6 },
+ group: { type: destroyer_squadron, id: 43 },
+ group: { type: destroyer_squadron, id: 60 },
+ group: { type: freight, id: 3000 },
+}
+
+combatant: {
+ name: "Dantari Separatists",
+ group: { type: fleet, id: 1 },
+ group: { type: battalion, id: 1 },
+ group: { type: battalion, id: 2 },
+ group: { type: war_production, id: 1 },
+ group: { type: freight, id: 3000 },
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 4 },
+}
+
+combatant: {
+ name: "Independent System of Solus",
+ group: { type: infrastructure, id: 2000 },
+ group: { type: transport, id: 2100 },
+ group: { type: civilian, id: 2200 },
+ group: { type: freight, id: 3000 },
+ group: { type: civilian, id: 5000 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Solus,
+ text: "Solus Directorate Requests Aid",
+ source: News,
+ file: "Actions/01-campaign-start.txt",
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-News-Start.def"
+}
+
+action: {
+ id: 1,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Trellis,
+ image: "Actions/AA-archon-trellis.pcx"
+}
+
+action: {
+ id: 2,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Trellis,
+ image: "Actions/AA-gerrond-trellis.pcx"
+}
+
+action: {
+ id: 50,
+ type: zone,
+ team: 2,
+ asset_type: carrier_group,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 51,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 52,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 6,
+ region: Trellis,
+}
+
+action: {
+ id: 53,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 7,
+ region: Meridian,
+}
+
+action: {
+ id: 60
+ type: event
+ subtype: story
+ team: 1
+ rgn: Loris
+ after: "01/15:00:00"
+ text: "Catching Up With You..."
+ source: Mail
+ file: "Actions/m1-catching-up.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-Catching-Up.def"
+}
+
+
+action: {
+ id: 110,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Trellis,
+ asset_type: minefield,
+ asset_id: 4,
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: LT, score: 10 },
+}
+
+action: {
+ id: 120,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Trellis,
+ asset_type: minefield,
+ asset_id: 5,
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: LT, score: 10 },
+}
+
+
+action: {
+ id: 130,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "02/05:00:00",
+ text: "Coup Attempt Fails",
+ source: News,
+ file: "Actions/02-coup-failure.txt",
+ image: "Actions/02-coup-failure.pcx",
+ scene: "Scenes/02-Coup-Failure.def"
+}
+
+action: {
+ id: 140,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "Minefield A Cleared",
+ file: "Actions/03a-minefield-a.txt",
+ source: TACNET,
+ after: "02/09:00:00",
+ before: "03/09:00:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 1,
+ target_iff: 2,
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+ target_kill: "Minefield A",
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "Minefield B Cleared",
+ file: "Actions/03a-minefield-b.txt",
+ source: TACNET,
+ after: "02/13:30:00",
+ before: "03/13:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 2,
+ target_iff: 2,
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+ target_kill: "Minefield B",
+}
+
+action: {
+ id: 160,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "Minefield C Cleared",
+ file: "Actions/03a-minefield-c.txt",
+ source: TACNET,
+ after: "02/19:20:00",
+ before: "03/19:20:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 3, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 3,
+ target_iff: 2,
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+ target_kill: "Minefield C",
+}
+
+action: {
+ id: 170,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "Minefield D Cleared",
+ file: "Actions/03a-minefield-d.txt",
+ source: TACNET,
+ after: "03/00:45:00",
+ before: "04/00:45:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 4, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 4,
+ target_iff: 2,
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+ target_kill: "Minefield D",
+}
+
+action: {
+ id: 180,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Trellis,
+ text: "Minefield E Cleared",
+ file: "Actions/03a-minefield-e.txt",
+ source: TACNET,
+ after: "03/08:30:00",
+ before: "04/08:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 5, comp: GT, score: 10 },
+
+ target_type: minefield,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+ target_kill: "Minefield E",
+}
+
+action: {
+ id: 190
+ type: event
+ subtype: story
+ team: 1,
+ rgn: Jarnell
+ after: "03/18:00:00"
+ text: "New Digs"
+ source: Mail
+ file: "Actions/m2-new-digs.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-New-Digs.def"
+}
+
+action: {
+ id: 200,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "Blockade Broken",
+ source: News,
+ file: "Actions/03-blockade-broken.txt",
+ image: "Actions/03-blockade-broken.pcx",
+ scene: "Scenes/03-Blockade-Broken.def",
+
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 1, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 2, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 3, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 4, comp: LT, score: 10 },
+ req: { c1: "Dantari Separatists", group_type: minefield, group_id: 5, comp: LT, score: 10 },
+}
+
+action: {
+ id: 210,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tThe Separatist blockade of the Trellis farcaster has been broken, "
+ "and Phase One of Operation Highland has been successfully concluded. "
+ "The minefields in Trellis Sector have been cleared, and mobile "
+ "Separatist forces patrolling the region are beginning to withdraw.\n\n"
+
+ "\tWe are now in Phase Two of the Operation - delivering humanitarian aid "
+ "and securing the inner worlds. Force:Command has authorized emergency "
+ "freight runs, and we will be escorting those civilian ships for the next "
+ "few days.\n",
+
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 230,
+ type: intel,
+ subtype: known,
+ team: 1,
+ rgn: Trellis,
+ asset_type: freight,
+ asset_id: 3000,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 240,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Protect civilian and allied assets in the Independent System of Solus.\n"
+ "\t* Support the delivery of humanitarian aid to the inner planets.\n"
+ "\t* Apprehend or destroy military units of the Dantari Separatists.\n"
+ "\t* Determine the extent of Hegemony involvement in this conflict.\n",
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 250,
+ type: mission,
+ subtype: escort_freight,
+ team: 1,
+ rgn: Trellis,
+ asset_type: fighter_squadron,
+ asset_id: 36,
+ count: 4,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 255,
+ type: mission,
+ subtype: escort_freight,
+ team: 1,
+ rgn: Trellis,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ count: 2,
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 260,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "03/09:15:00",
+ text: "Harmony Station at Risk",
+ source: SECURE,
+ file: "Actions/04-harmony-risk.txt",
+ image: "Actions/04-harmony-risk.pcx",
+ scene: "Scenes/04-Harmony-Risk.def",
+}
+
+action: {
+ id: 270,
+ type: zone,
+ team: 1,
+ after: "03/19:00:00",
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Solus,
+ image: "Actions/AA-archon-solus.pcx"
+}
+
+action: {
+ id: 280,
+ type: zone,
+ team: 1,
+ after: "03/19:30:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Solus,
+ image: "Actions/AA-gerrond-solus.pcx"
+}
+
+action: {
+ id: 300,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "04/04:00:00",
+ text: "Renser Fleet Buildup",
+ source: FORCOM,
+ file: "Actions/06-renser-buildup.txt",
+ image: "Actions/06-renser-buildup.pcx",
+ scene: "Scenes/06-Renser-Buildup.def"
+}
+
+action: {
+ id: 305,
+ type: sitrep,
+ team: 1,
+ after: "04/04:00:00",
+ text:
+ "\tIn response to recent setbacks to Separatist forces, the Prefecture of Renser "
+ "is mobilizing their Fourth Fleet. They are expected to reach "
+ "the Solus system within 40 hours. They claim that the fleet "
+ "will be used for peace keeping operations, but with the high "
+ "tensions in the area, Force:Intel believes that they will use "
+ "our presence as an excuse to attack.\n\n"
+
+ "\tForce:Command needs us to redouble our efforts to protect "
+ "the civilian population and make a decisive strike against "
+ "the Separatist forces before the Hegemony fleet arrives. "
+ "Clearly, we have a lot of work to do in the next 20 to 40 hours.\n",
+}
+
+// if player stumbles upon the base before expected:
+action: {
+ id: 310,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Telmera,
+ before: "04/08:20:00",
+ text: "Separatist Base Discovered",
+ source: SECURE,
+ file: "Actions/05-foothill-ridge.txt",
+ image: "Actions/05-foothill-ridge.pcx",
+ scene: "Scenes/05-Foothill-Ridge.def",
+
+ req: { c1: "Dantari Separatists", group_type: battalion, group_id: 2, comp: GT, intel: SECRET },
+}
+
+action: {
+ id: 315,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:20:00",
+ asset_type: intercept_squadron,
+ asset_id: 3,
+}
+
+action: {
+ id: 320,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ asset_type: attack_squadron,
+ asset_id: 4,
+}
+
+action: {
+ id: 325,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ asset_type: battery,
+ asset_id: 1,
+}
+
+action: {
+ id: 330,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Telmera,
+ after: "04/08:30:00",
+ text: "Separatist Base Discovered",
+ source: SECURE,
+ file: "Actions/05-foothill-ridge.txt",
+ image: "Actions/05-foothill-ridge.pcx",
+ scene: "Scenes/05-Foothill-Ridge.def",
+
+ req: { action: 310, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 350,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Meridian,
+ after: "04/15:00:00",
+ text: "Research Lab Isolated",
+ source: News,
+ file: "Actions/07-research-lab.txt",
+ image: "Actions/07-research-lab.pcx",
+ scene: "Scenes/07-Research-Lab.def"
+}
+
+action: {
+ id: 370,
+ type: zone,
+ team: 1,
+ after: "04/16:30:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Meridian,
+ image: "Actions/AA-gerrond-meridian.pcx"
+}
+
+action: {
+ id: 375,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "04/20:00:00",
+ text: "Renser Accuses Alliance",
+ source: News,
+ file: "Actions/08-renser-accusation.txt",
+ image: "Actions/08-renser-accusation.pcx",
+ scene: "Scenes/08-Renser-Accusation.def"
+}
+
+action: {
+ id: 410,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ after: "05/12:00:00",
+ text: "Senate Resolution Passes",
+ source: News,
+ file: "Actions/09-senate-resolution.txt",
+ image: "Actions/09-senate-resolution.pcx",
+ scene: "Scenes/09-Senate-Resolution.def"
+}
+
+// RENSER TASK FORCE ARRIVES IN SOLUS (JALAH SECTOR)
+
+action: {
+ id: 420,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/21:15:00",
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+}
+
+action: {
+ id: 421,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/22:45:00",
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+}
+
+action: {
+ id: 422,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Jalah,
+ after: "06/23:30:00",
+ asset_type: carrier_group,
+ asset_id: 4,
+}
+
+// KEEP RENSER TASK FORCE IN JALAH SECTOR
+
+action: {
+ id: 425,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/21:15:00",
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+}
+
+action: {
+ id: 426,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/22:45:00",
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+}
+
+action: {
+ id: 427,
+ type: zone,
+ team: 2,
+ rgn: Jalah,
+ after: "06/23:30:00",
+ asset_type: carrier_group,
+ asset_id: 4,
+}
+
+action: {
+ id: 440,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jalah,
+ after: "06/23:45:00",
+ text: "Hegemony Task Force TF4.3",
+ source: FORCOM,
+ file: "Actions/10-renser-arrival.txt",
+ image: "Actions/10-renser-arrival.pcx",
+}
+
+action: {
+ id: 450,
+ type: sitrep,
+ team: 1,
+ after: "06/23:45:00",
+ text:
+ "\tForce:Command reports that task force TF4.3 from the Hegemony Fourth Fleet 'Manticore' "
+ "has successfuly translated in system. The task force is currently in Jalah orbit, and "
+ "we expect them to remain in that sector at least until tomorrow.\n\n"
+
+ "\tThere is still plenty of civilian traffic in the system, and several Dantari groups are "
+ "still ready and willing to fight. We need "
+ "all Force:Space units to give their best effort in protecting these "
+ "people and until we can restore the peace.\n"
+}
+
+action: {
+ id: 455,
+ type: orders,
+ team: 1,
+ after: "06/23:45:00",
+ text:
+ "\t* Protect civilian and allied assets in the Independent System of Solus.\n"
+ "\t* Apprehend or destroy military units of the Dantari Separatists.\n"
+ "\t* Prevent Hegemony units from striking Solusan or allied assets.\n"
+}
+
+// DANTARI FORCES FALL BACK TO JALAH TO REGROUP WITH RENSER TASK FORCE
+
+action: {
+ id: 500,
+ type: zone,
+ team: 2,
+ after: "07/18:00:00",
+ asset_type: carrier_group,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 501,
+ type: zone,
+ team: 2,
+ after: "07/20:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 5,
+ region: Jalah,
+}
+
+action: {
+ id: 502,
+ type: zone,
+ team: 2,
+ after: "07/21:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 6,
+ region: Jalah,
+}
+
+action: {
+ id: 503,
+ type: zone,
+ team: 2,
+ after: "07/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 7,
+ region: Jalah,
+}
+
+action: {
+ id: 510,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jalah,
+ after: "07/22:15:00",
+ text: "Separatist Withdrawal to Jalah",
+ source: FORCOM,
+ file: "Actions/11-dantari-pullback.txt",
+ image: "Actions/11-dantari-pullback.pcx",
+ scene: "Scenes/11-Dantari-Pullback.def"
+}
+
+action: {
+ id: 515,
+ type: sitrep,
+ team: 1,
+ after: "07/22:15:00",
+ text:
+ "\tAll mobile Separatist forces have withdrawn from the inner planets to "
+ "Jalah Sector. We believe they plan to regroup and integrate with "
+ "Hegemony TF4.3 before resuming the offensive in the Solus and "
+ "Kalon Sectors.\n\n"
+
+ "\tOur plan is to strike the Separatist forces at Jalah before they "
+ "can regroup. If we can keep them off balance in a defensive posture "
+ "there, we believe they will be prevented from mounting an effective attack "
+ "on Solus.\n"
+}
+
+// ALLIANCE FORCES PURSUE THEM INTO JALAH
+
+action: {
+ id: 520,
+ type: zone,
+ team: 1,
+ after: "08/00:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Jalah,
+ image: "Actions/AA-gerrond-jalah.pcx"
+}
+
+action: {
+ id: 521,
+ type: zone,
+ team: 1,
+ after: "08/01:00:00",
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Jalah,
+ image: "Actions/AA-archon-jalah.pcx"
+}
+
+action: {
+ id: 530,
+ type: intel,
+ subtype: known,
+ team: 1,
+ after: "08/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Jalah,
+}
+
+action: {
+ id: 535,
+ type: zone,
+ team: 1,
+ after: "08/22:00:00",
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Jalah,
+ image: "Actions/AA-shadow-jalah.pcx",
+
+ req: { action: 735, status: COMPLETE, not: true }
+}
+
+// DON'T PROLONG THE SUFFERING INDEFINITELY
+
+action: {
+ id: 550,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "Wolf DESRON Eliminated",
+ file: "Actions/11a-wolf.txt",
+ source: TACNET,
+ after: "10/13:30:00",
+ before: "11/13:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 5, comp: GT, score: 100 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Wolf",
+ target_kill: "Halas",
+ target_kill: "Baikal",
+ target_kill: "Kyren",
+}
+
+action: {
+ id: 555,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "Kitts DESRON Eliminated",
+ file: "Actions/11a-kitts.txt",
+ source: TACNET,
+ after: "10/20:30:00",
+ before: "11/20:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 6, comp: GT, score: 200 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 6,
+ target_iff: 2,
+ target_kill: "Kitts",
+ target_kill: "Tomal",
+ target_kill: "Loval",
+ target_kill: "Udel",
+}
+
+action: {
+ id: 560,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "Kendra DESRON Eliminated",
+ file: "Actions/11a-kendra.txt",
+ source: TACNET,
+ after: "11/10:30:00",
+ before: "12/10:30:00",
+
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 7, comp: GT, score: 300 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: destroyer_squadron,
+ target_id: 7,
+ target_iff: 2,
+ target_kill: "Kendra",
+ target_kill: "Sayal",
+ target_kill: "Baionne",
+ target_kill: "Pelorat",
+}
+
+action: {
+ id: 565,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "Goliath CVBG Eliminated",
+ file: "Actions/11a-goliath.txt",
+ source: TACNET,
+ after: "12/10:20:00",
+ before: "13/10:20:00",
+
+ req: { c1: "Dantari Separatists", group_type: carrier_group, group_id: 5, comp: GT, score: 500 },
+ req: { action: 600, status: COMPLETE, not: true },
+
+ target_type: carrier_group,
+ target_id: 5,
+ target_iff: 2,
+ target_kill: "Goliath",
+ target_kill: "Lanner",
+ target_kill: "Connel",
+ target_kill: "Ganat",
+}
+
+// AFTER JALAH FALLS, TASK FORCE RETREATS TO RENSER
+
+action: {
+ id: 600,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "Solus Victory",
+ source: News,
+ file: "Actions/12-cease-fire.txt",
+ image: "Actions/12-cease-fire.pcx",
+
+ req: { c1: "Dantari Separatists", group_type: carrier_group, group_id: 5, comp: LT, score: 500 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 5, comp: LT, score: 100 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 6, comp: LT, score: 200 },
+ req: { c1: "Dantari Separatists", group_type: destroyer_squadron, group_id: 7, comp: LT, score: 300 },
+}
+
+action: {
+ id: 620,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 621,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 622,
+ type: intel,
+ subtype: known,
+ team: 2,
+ rgn: Lornas,
+ asset_type: carrier_group,
+ asset_id: 4,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+// KEEP RENSER TASK FORCE IN KHAITAL SECTOR
+
+action: {
+ id: 630,
+ type: zone,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 640,
+ type: zone,
+ team: 2,
+ rgn: Khaital,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+
+ req: { action: 621, status: COMPLETE }
+}
+
+action: {
+ id: 650,
+ type: zone,
+ team: 2,
+ rgn: Lornas,
+ asset_type: carrier_group,
+ asset_id: 4,
+
+ req: { action: 622, status: COMPLETE }
+}
+
+// ALLIANCE FORCES ARRIVE IN KHAITAL
+
+action: {
+ id: 700,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Solus,
+ text: "Renser Invasion",
+ source: News,
+ file: "Actions/13-renser-invasion.txt",
+ image: "Actions/13-renser-invasion.pcx",
+ scene: "Scenes/13-Renser-Invasion.def",
+ delay: 19800, // five and a half hours after 600
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 701,
+ type: event,
+ subtype: story
+ team: 1
+ rgn: Jarnell
+ text: "Why Renser?"
+ source: Mail
+ file: "Actions/m3-why-renser.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M3-Why-Renser.def"
+ delay: 21600 // six hours after 700
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 710,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tLoyalist and Separatist leaders have signed a cease-fire agreement "
+ "and hostile action in this system is winding down. Phase Two of Operation "
+ "Highland has been successfully completed, and President Valmar has ordered "
+ "us to commence Phase Three - the disarming of Renser Prefecture.\n\n"
+
+ "\tHegemony Task Force TF4.3 has withdrawn from Solus to the Khaital Sector "
+ "of the Renser System. We have been ordered to pursue them into Renser space "
+ "and eliminate their ability to project force to any of the neighboring "
+ "Independent systems.\n",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 711,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Pursue Hegemony Task Force TF4.3 into Renser space.\n"
+ "\t* Eliminate Renser's ability to project force to neighboring systems.\n"
+ "\t* Destroy all military units of the Task Force TF4.3.\n"
+ "\t* Withdraw safely back to the Alliance base in Janus System.\n",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 720,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ region: Khaital,
+ image: "Actions/AA-gerrond-khaital.pcx",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 725,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ region: Khaital,
+ image: "Actions/AA-archon-khaital.pcx",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 735,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ region: Khaital,
+ image: "Actions/AA-shadow-khaital.pcx",
+
+ req: { action: 530, status: COMPLETE },
+ req: { action: 700, status: COMPLETE }
+}
+
+// ALLIANCE FORCES PURSUE FLEET INTO LORNAS
+
+action: {
+ id: 660,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 25,
+ delay: 90e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 670,
+ type: zone,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 26,
+ delay: 90e3,
+
+ req: { action: 621, status: COMPLETE }
+}
+
+action: {
+ id: 680,
+ type: zone,
+ team: 2,
+ asset_type: carrier_group,
+ asset_id: 4,
+ delay: 90e3,
+
+ req: { action: 622, status: COMPLETE }
+}
+
+action: {
+ id: 721,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 43,
+ delay: 36000,
+
+ req: { action: 660, status: COMPLETE },
+ req: { action: 720, status: COMPLETE }
+}
+
+action: {
+ id: 726,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 6,
+ delay: 36000,
+
+ req: { action: 670, status: COMPLETE },
+ req: { action: 725, status: COMPLETE }
+}
+
+action: {
+ id: 736,
+ type: zone,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 60,
+ delay: 36000,
+
+ req: { action: 680, status: COMPLETE },
+ req: { action: 735, status: COMPLETE }
+}
+
+// THE BITTER END
+
+action: {
+ id: 997
+ type: event
+ subtype: campaign_fail
+ team: 1
+ rgn: Solus
+ text: "Operation Highland Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 6, comp: LT, score: 3000 },
+ req: { action: 600, status: COMPLETE, not: true },
+}
+
+action: {
+ id: 998
+ type: event
+ subtype: campaign_fail
+ team: 1
+ rgn: Solus
+ text: "Operation Highland Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 6, comp: LT, score: 3000 }
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 999
+ type: event
+ subtype: campaign_end // successful ending
+ team: 1
+ rgn: Solus
+ text: "Operation Highland Victory"
+ file: "Actions/campaign_end.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 4, comp: LT, score: 4000 }
+}
diff --git a/data/shatter/Campaigns/02/zones.def b/data/shatter/Campaigns/02/zones.def
new file mode 100644
index 0000000..58a118e
--- /dev/null
+++ b/data/shatter/Campaigns/02/zones.def
@@ -0,0 +1,55 @@
+ZONES
+
+zone: {
+ system: Solus,
+ region: Meridian
+}
+
+zone: {
+ system: Solus,
+ region: Solus,
+ region: Telmera,
+ region: Kalon
+}
+
+zone: {
+ system: Solus,
+ region: Jalah
+}
+
+zone: {
+ system: Solus,
+ region: Trellis
+}
+
+
+
+zone: {
+ system: Renser,
+ region: Garana
+}
+
+zone: {
+ system: Renser,
+ region: Rhomindal
+}
+
+zone: {
+ system: Renser,
+ region: Renser
+}
+
+zone: {
+ system: Renser,
+ region: Marisol
+}
+
+zone: {
+ system: Renser,
+ region: Lornas
+}
+
+zone: {
+ system: Renser,
+ region: Khaital
+}
diff --git a/data/shatter/Campaigns/03/Actions/01-campaign-start.txt b/data/shatter/Campaigns/03/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..6c1d0f2
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/01-campaign-start.txt
@@ -0,0 +1,7 @@
+JARNELL - Just four local months after the success of Operation Highland, the Terellian Alliance has once more been plunged into violent conflict. For the first time in its five hundred year history, enemy forces have invaded core Alliance systems and attacked civilian ships and property.
+
+"Using the Force involvement in the Solusan-Renser Conflict as a pretext, two key systems within the Marakan Hegemony have formally declared war on the people of the Terellian Alliance," Force:Space Fleet Commander A. Evars was quoted as saying.
+
+The attack has employed two bold thrusts. The Hegemony Sixth Fleet out of Kolchev System has taken the Independent Civil Protectorate of Haiche and proceeded to assault targets at the Force proving grounds in Janus System. Simultaneously, the Hegemony Seventh Fleet has left its home port in Loris and bypassed the neutral Silessian Confederacy to begin a rapid invasion of the Borovan Republic (see diagram at right).
+
+Alliance forces are said to be scrambling to defend and hold these two key systems before the invasions can be completed. Force:Command joint chiefs expressed cautious optimism that early and decisive containment could prevent this conflict from developing into a full scale war. \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Actions/02-president-speech.txt b/data/shatter/Campaigns/03/Actions/02-president-speech.txt
new file mode 100644
index 0000000..93ebfc8
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/02-president-speech.txt
@@ -0,0 +1,11 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, together we now face an unprecedented crisis in the long history of our proud nation. The Terellian Alliance is under attack by an implacable enemy. Warships from systems under the control of the Marakan Hegemony are even now invading core Alliance systems, including Janus and the Borovan Republic.
+
+To meet this threat before it can engulf any more of our sovreign territory or endanger any more civilian lives, I have authorized and commanded Force combined military to begin Operation Shining Fortress in defense of our home worlds. The cost of this defense will be great, but the cost of surrender would be even greater.
+
+As another great leader once told his people, 'I have nothing to offer you but blood, toil, tears, and sweat.' The time of this war will not be short, but together we will stand victorious, made fast to the resolve that freedom, honor, and justice shall not perish from our worlds.
+
+I urge each of you to remain calm through this long, dark night. Brace yourselves to your individual duties, and together we shall greet a new dawn of peace.
+
+Thank you, and may fortune favor our brave men and women at arms. \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Actions/03-titan-destroyed.txt b/data/shatter/Campaigns/03/Actions/03-titan-destroyed.txt
new file mode 100644
index 0000000..ac0dadf
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/03-titan-destroyed.txt
@@ -0,0 +1,6 @@
+BOROVA - In a devastating surprise attack, Hegemony destroyers and cruisers assaulted the Titan 7th CVBG while in Borova orbit. The fleet carrier CV-72 Titan is believed lost with all hands, although some of the embarked 21st Tactical Fighter Wing may have been able to escape. Damage from the fighting was extensive, and several other ships in the Titan battle group may have been damaged or destroyed.
+
+The sudden reversal has staggered the Seventh Fleet. All surviving units are rapidly withdrawing before Hegemony forces can strike again. A temporary strategic loss of the Borovan system seems likely at this point.
+
+Force:Space 12th CVBG led by CV-77 Chronos is being readied in Jarnell fleet yards to take over for the Titan. However, this CVBG is generally reserved for systemic defense. The 29th Tactical Fighter Wing attached to the carrier contains only half the number of fighters of the Wing it will be asked to replace.
+
diff --git a/data/shatter/Campaigns/03/Actions/04-fort-talden.txt b/data/shatter/Campaigns/03/Actions/04-fort-talden.txt
new file mode 100644
index 0000000..04b6ff3
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/04-fort-talden.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** FORT TALDEN ADVANCED PROJECTS
+*** BOROVA SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Fort Talden Advanced Projects Laboratory Attacked
+
+Force:Intel field agents in the Borovan Capitol report extensive fighting by advance units of the Hegemony invasion force. The Fort Talden Advanced Projects Laboratory has been attacked and is now in the hands of Hegemony AAF. Force:Intel field agents are attempting to infiltrate the laboratory and destroy sensitive materials before they can be captured or documented.
+
+Force:Intel recommends Force:Space accelerate deployment of transorbital platforms in Borova Sector. A package of air strikes could reduce the risk of intel compromise, if assets can be deployed within ten hours.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/03/Actions/05-grand-concourse.txt b/data/shatter/Campaigns/03/Actions/05-grand-concourse.txt
new file mode 100644
index 0000000..d96ed8d
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/05-grand-concourse.txt
@@ -0,0 +1,5 @@
+VESTAPOL, BOROVA - The Borovan planetary capitol was a scene of fierce fighting in last night's raids by Hegemony advanced ground forces. Military, logistic, and even civilian targets on the Grand Concourse suffered extensive damage.
+
+Tourist Sara Hunter was an eyewitness to the action: "It was a long night. I'm still a bit shaken. I had just left the Museum of Precolonial Antiquities when Hegemony forces started hitting it with rocket fire. Fortunately, I was able to take shelter in a small shop across from the museum district. About twenty minutes later, there was a huge explosion and the MPCA was nothing but ashes." Military analysts believe that low-yield shaped plasma charges were used on some of the targets.
+
+The pattern to the attacks is unclear, and may be the result of spotty intelligence gathering by Hegemony forces. "I have no idea why they hit the museum district so hard. I'm just glad I got out before they did," said Hunter. \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Actions/06-eleaan-diplomats.txt b/data/shatter/Campaigns/03/Actions/06-eleaan-diplomats.txt
new file mode 100644
index 0000000..9e0eb23
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/06-eleaan-diplomats.txt
@@ -0,0 +1,5 @@
+BOROVA - The Ambassador for the Ele'aan Fusion announced the recall of diplomatic missions to the Marakan Hegemony and the Zolon Empire today. "Our fact-finding mission to Borova is complete and our findings are conclusive. We return to Jarnell to present the detailed information directly to the Terellian President and his advisors. The Zolon Empire and the states of the Marakan Hegemony act together in this invasion, in direct violation of the Korian Treaty. We recall all of our diplomatic missions to those systems."
+
+Force military analysts insist that they can find no evidence of Zolon involvement in the recent invasion, which seems to be a purely human affair. "The Zolon Empire has never shown much interest in the core Alliance systems, since they contain no worlds suitable for Zolon life. Thus far, we haven't detected any prohibited weapons technology in use by the Hegemony invasion force. Our main goal is to regain control of the system and bring Operation Shining Fortress to a successful conclusion. Accusing the Zolon Empire of involvement is not consistent with that goal."
+
+The Zolons are a hive-like hereditary empire on the northern border of Hegemony space. Zolon drones are outwardly similar to Earth crabs, although they evolved in a desert climate without liquid water. They are less than one meter in height but their six legs can reach a span of over two meters. The Zolon species is very intelligent, but also very different from humans. They use neither written nor spoken languages, instead communicating through chemical messengers, gestures, and a form of electromagnetic radiation that may serve them as telepathy. These differences make it very difficult for Zolons and humans to communicate effectively. \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Actions/07-athenar.txt b/data/shatter/Campaigns/03/Actions/07-athenar.txt
new file mode 100644
index 0000000..fb52ec9
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/07-athenar.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Hegemony Forces Invade Athenar
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Part of the Hegemony Seventh Fleet has broken off from the main formation in Janus. Hegemony 17th Battle Group led by the heavy cruiser "Intruder" has successfully breached the Athenar system.
+
+This invasion places our forces in a difficult position. Until now, we have had the advantage of position in the Janus system. The Hegemony invasion fleet has been operating with a stretched supply line, while we have had greater reserves of fuel and ordnance and the backing of ground bases to exploit them. The Hegemony invasion of Athenar will now force us to defend two systems with our smaller fleet. Although this invasion divides the Hegemony forces, it is a net tactical advantage for them.
+
+At this point in the campaign, we can not tolerate additional civilian casualties in the core systems. Force:Command has therefore decided to commit sufficient force to eliminate the Hegemony battle group in Athenar before it can be reinforced by additional supporting units. Fifth Fleet battle group "Furious" and destroyer squadron "Enigma" will proceed to Athenar immediately and engage all Hegemony units therein.
+
+Good luck and good hunting.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/03/Actions/08-liberation.txt b/data/shatter/Campaigns/03/Actions/08-liberation.txt
new file mode 100644
index 0000000..fdd578b
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/08-liberation.txt
@@ -0,0 +1,9 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+Today is Liberation Day. The tide has turned in the battle to secure our homelands and protect our way of life. The men and women of the various branches of Force have fought and bled, and their toil and suffering has been rewarded with a string of decisive military victories in the core systems. At this hour, I am pleased to announce that Hegemony forces are rapidly withdrawing from our borders to seek safety in the independent systems of Silessia and Haiche to the west.
+
+Force:Command has already issued clearance for reconstruction efforts to get underway. Later this morning I will be meeting with key members of the Combined Senate to prepare contingent appropriations and authorize emergency funding for aid to the affected systems of Janus, Borova, and Athenar. I know how hard it has been for those of you caught on the ground in this conflict, and I know how many of your loved ones have been lost in the ground attacks and in the cold vacuum of space. Although this administration can never fully heal the losses you have suffered, take comfort in knowing that help is on the way for you to recover, rebuild, and ultimately move on.
+
+However, while reconstruction begins at home, the job of our forces in the field is not yet fully complete. The peace can not stand while Hegemony forces lie in wait on the edge of our space. And so I must order a continuation of Operation Shining Fortress to extend the peace from our own borders to those of our independent neighbors. We must liberate Haiche and Silessia, just as our own systems have been liberated. Hegemony forces must return to their antebellum status in Loris and Kolchev.
+
+Only then shall we find respite from sorrow, and rediscover the joy of peace.
diff --git a/data/shatter/Campaigns/03/Actions/09-silessia.txt b/data/shatter/Campaigns/03/Actions/09-silessia.txt
new file mode 100644
index 0000000..11bf7cb
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/09-silessia.txt
@@ -0,0 +1,18 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Silessian Confederacy
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space Fourth Fleet has been assigned to engage Hegemony forces operating in the independent system of Silessia. Our main goals are to force the Hegemony to withdraw, while minimizing civilian casualties and property damage.
+
+The Silessian Confederacy has been an outspokenly neutral power in this region for centuries. Official government policy here is to avoid taking sides in any conflict, to the extent that Silessia maintains no armed forces beyond those needed for commercial traffic enforcement. Neutrality has worked out very well here, and the banking and communications sectors have become quite wealthy.
+
+In fact, they have become so wealthy that the Silessian government is planning a colonial expedition to an undeveloped system far to the north of the Blue Drift region. They have a colony ship in orbit around the main planet preparing to depart. We believe the ship is complete and is in the process of boarding the passengers and cargo for the expedition.
+
+Fourth Fleet will have two main defensive priorities during the next hundred hours - defending the colony ship and protecting the swarm of communications satellites that keep the banks and telcos in operation.
+
+More detailed analyses will be made available as the situation develops.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/03/Actions/10-haiche.txt b/data/shatter/Campaigns/03/Actions/10-haiche.txt
new file mode 100644
index 0000000..c032a69
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/10-haiche.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Haiche Protectorate
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Force:Space Fifth Fleet has been assigned to engage Hegemony forces operating in the Haiche Protectorate. Our main goals are to force the Hegemony to withdraw, while minimizing civilian casualties and property damage.
+
+Haiche is a protected independent outpost with a small indigenous population. The system contains two medium size gas giant planets, and one very dry and very dusty world of approximately terrestrial conditions. The desert planet, which is also named Haiche, is sparsely populated. The inhabitants are mainly mineral researchers, xenoarchaeologists, and enough trades to support and feed the general population.
+
+The Haiche Protectorate has never had the funds to adequately police the outer gas giants. They have become havens for traders and pirates due to their large collection of small moons. We may expect to encounter some surprises in the Cygnus and Tal Amin sectors.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/03/Actions/11-tantalus.txt b/data/shatter/Campaigns/03/Actions/11-tantalus.txt
new file mode 100644
index 0000000..2a96c7c
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/11-tantalus.txt
@@ -0,0 +1,14 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Tantalus Sector
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Haiche has been a protected independent outpost for the past sixty years, since the Korian treaty was signed. Per the treaty, neither Hegemony nor Alliance citizens may establish residence in the system, and all travel through the system has been strictly controlled. The main planet, Haiche, is the reason for the regulations. In the past, many nations have made claims on the wealth of heavy metals buried deep beneath its surface.
+
+Force:Intel field operatives were able to pass through the Haiche system recently. Their report indicates that the Hegemony Seventh Fleet has invaded in force and reopened an illegal mining operation in the Tantalus sector. Haiche has deep seams of tantalum, iridium, and even some gold.
+
+As part of Operation Shining Fortress, Fifth Fleet has been tasked with eliminating the Hegemony mining operation in the Tantalus Sector. Force:Command will be working closely with the Corps of Engineers and other materials experts to assess any risks to the local population that may arise either from the Hegemony operation working the mine or Alliance forces attacking it.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/03/Actions/12-colony-ship.txt b/data/shatter/Campaigns/03/Actions/12-colony-ship.txt
new file mode 100644
index 0000000..a4fd263
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/12-colony-ship.txt
@@ -0,0 +1,8 @@
+'FAR HORIZON' SILESSIA ORBIT - Even shrouded as she is by the pre-launch support framework, the Far Horizon is an awesome sight. The colony ship is kilometers long - larger than some groundside cities - a series of silver-white cylinders sparkling from within through hundreds of port windows. The central habitation pillar is surrounded by a ring of six fusion drive units that will one day propel this ship into the great unknown, north of the Blue Drift.
+
+When fully loaded, the Far Horizon will become home to fifty thousand colonists and flight crew members. To accompany the human colonists are more than ten million terrestrial animals stored as cryogenically frozen embryos, each smaller than the period at the end of this sentence. However, while the embryos are all on board in special refrigeration modules, most of the human colonists remain on the planet below.
+
+"When we are operating at full capacity, we can bring two thousand people aboard the ship every day," said the expedition leader, Captain Anders. "Two thousand people is pretty much the limit of both our heavy lift capacity, and the airlock and berthing systems. Unfortunately, since the Hegemony lock-down we haven't been able to bring aboard two people, much less two thousand."
+
+The Marakan Hegemony fleet occupying the Silessian system has imposed a moratorium on all in-system travel by civilian personnel, ostensibly to prevent terrorists and saboteurs from striking the colony ship. However, until the embargo is lifted, no progress can be made in bringing aboard the more than forty thousand colonists living in the quarantine center on Silessia. "For now, we can only watch and wait. And hope that this delay doesn't cause us to miss our launch window," said Captain Anders.
+
diff --git a/data/shatter/Campaigns/03/Actions/13-marauder.txt b/data/shatter/Campaigns/03/Actions/13-marauder.txt
new file mode 100644
index 0000000..d6ca7f6
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/13-marauder.txt
@@ -0,0 +1,16 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Brotherhood of Iron
+Classified: CONFIDENTIAL DND/CRYPTO
+
+Advance trading scouts have reported that pirates from the so-called Brotherhood of Iron criminal organization are taking advantage of the Hegemony invasion to prey on civillian transports in the Silessian system. Reports indicate the presence of small and medium starships as well as several fighter class vessels. One of the scouts was able to deliver a sensor snapshot of the "Marauder" class starship shown at the right.
+
+The Brotherhood of Iron has been spreading through the unpoliced sectors of the Marakan Hegemony for several decades. In recent years they have grown more bold and started to establish a presence in the outback. Most of these characters are wanted by police organizations in both the Alliance and the Hegemony. Under normal circumstances, we would be expected to follow security protocols and allow civillian authorities to apprehend them.
+
+However, these are no longer normal circumstances. The President's mandate for Operation Shining Fortress has effectively asked us to assert martial law in the Silessian system. If you have a safe opportunity to engage Brotherhood forces without undue danger to civillian lives or property then you have permission to take them out.
+
+Good hunting.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
+
diff --git a/data/shatter/Campaigns/03/Actions/m1-almost-home.txt b/data/shatter/Campaigns/03/Actions/m1-almost-home.txt
new file mode 100644
index 0000000..22d0c4f
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/m1-almost-home.txt
@@ -0,0 +1,19 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: ALMOST HOME
+-----
+PATH: Magellan IV Shipboard | Janek Station Courier Drop | 3RD FLEET HQ | Force Command Transceiver | Lost and Found | $GROUP
+-----
+
+Hey Mate,
+
+I don't know if you made the Academy Reunion or not, sorry I missed catching you there. This has been a bloody awful year. The trade scouting mission did not go as well as I had hoped.
+
+We were delayed in Nephrys System for two months when the Loris Trade Executive cancelled our return visas. Nephrys is really out on the rim, I thought we'd never get back. As it was, it took weeks to find the right sort of contact to forge a new registration for the Maggie and get us cleared through Korius to try the southern route back home. We had to sneak the long way around - four hops - to avoid the military build-up in Kolchev.
+
+We jumped out of Haiche only a couple of days ahead of the invasion force. (In case you haven't heard yet, you're under attack mate.) Right lovely dump you got here in Janus. Not a decent bar in sight, and I could really use a drink or ten. We're pretty banged up, but I think we can make Jarnell and maybe sit down at Thralis for repairs.
+
+Good luck, mate. It's getting nasty out there.
+
+--Jonas
diff --git a/data/shatter/Campaigns/03/Actions/m2-back-to-borova.txt b/data/shatter/Campaigns/03/Actions/m2-back-to-borova.txt
new file mode 100644
index 0000000..ac99802
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/m2-back-to-borova.txt
@@ -0,0 +1,20 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: BACK TO BOROVA
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 4TH FLEET HQ | $GROUP
+-----
+
+Hello,
+
+I still can't quite bring myself to believe that we are at war with the Hegemony. The Consulate is leaving on a 'Fact Finding' mission to Borova, and I'll be going along to support the diplomatic corps. We should be in system within thirty hours or less, although it doesn't really feel like 'going home.'
+
+Isn't your unit patrolling the outer sectors? I think this may be the first time we've been in the same system at the same time since university. Strange that it should be under such circumstances.
+
+The Ele'aan Ambassador still thinks the Zolon Empire is behind the Marakan invasion. Although, I still don't see how that is even possible. Zolons can barely communicate with humans. I know the Ele'aans have access to information way beyond our capabilities, but Zolon involvement just seems so... unlikely.
+
+Anyway, I don't know if I'll get any free time while we are in-system. If I do, I'll try to make it over to Vestapol and see your parents. I'd love to see the museums on the Grand Concourse. Come to think of it, I haven't been shopping in Vestapol in ages. But that would be too much to hope for, I suppose.
+
+Love from
+Sara \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Actions/m3-down-for-repairs.txt b/data/shatter/Campaigns/03/Actions/m3-down-for-repairs.txt
new file mode 100644
index 0000000..bc4b314
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/m3-down-for-repairs.txt
@@ -0,0 +1,19 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Capt. Jonas Devlin - Magellan IV
+RE: DOWN FOR REPAIRS
+-----
+PATH: Magellan IV Shipboard | Organon Motives | Thralis Relay | Force Command Transceiver | 4TH FLEET HQ | $GROUP
+-----
+
+Hey Mate,
+
+Well, Maggie is in the shop. We made it into Thralis just in time to lose the quantum drive. We're sitting in the Organon Motives repair yard waiting on parts for a drive overhaul while I try to call in every favor I have left in the system. I'm just about ready to steal the whole drive system from the next Force Cruiser that passes by just so that we can get back underway.
+
+At least I've had a chance to get caught up on the local nets. This war of yours is big news out here mate, and Thralis isn't exactly on the front lines. The Thracian Titans even canceled their season ending match against Sparta in honor of the lost crew of the CV-72. Really though, I think Thrace just needed an excuse to avoid the match. Hollis is the worst manager they've had in a decade. Anyway, I was glad to see your name wasn't on the missing in action list.
+
+Hey, did you see the news interview with Sara the first night of the fighting in Vestapol? Strange coincidence that she would happen to be on the ground just when a squad of Hegemony goons shows up to knock over the museum. Glad she's all right. Good thing that guardian angel of hers was working over time.
+
+Stay sharp out there. I don't think anyone is looking out for your welfare except you!
+
+--Jonas
diff --git a/data/shatter/Campaigns/03/Actions/victory.txt b/data/shatter/Campaigns/03/Actions/victory.txt
new file mode 100644
index 0000000..9a9f0bb
--- /dev/null
+++ b/data/shatter/Campaigns/03/Actions/victory.txt
@@ -0,0 +1,5 @@
+Alliance forces have completed operations in the independent systems of Silessia and Haiche. The Hegemony invasion has been forced to withdraw completely from Alliance controlled space, and is now preparing to abandon their positions in the neutral territories as well. Given the circumstances, both Force and civillian casualties have been remarkably light.
+
+The President of the Terellian Alliance will be addressing all members of Force in the field within a few hours. In the meantime, hold your positions and observe the temporary cease fire.
+
+Well done, Commander! \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Scenes/01-Campaign-Start.def b/data/shatter/Campaigns/03/Scenes/01-Campaign-Start.def
new file mode 100644
index 0000000..2cf3108
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/01-Campaign-Start.def
@@ -0,0 +1,228 @@
+MISSION
+
+name: "Cmpn03 News01 - Campaign Start"
+type: "Patrol"
+system: "Janus"
+system: "Borova"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (22e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, 70e3, 0), rgn: Janek, speed: 700 }
+ head: 180
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (-10e3, -8e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (-14e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (8e3, -4e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (12e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (-10e3, -8e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (8e3, -4e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (11e3, 9e3, 0)
+ navpt: { cmd: Vector, loc: (16e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.015, 0.05) }
+
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Display, time: 10, image: "Campaigns/03/Scenes/Map.pcx", color: 0xffffffff, fade: (1,6,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 20, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony 24th DESRON", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Entering Janek Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Ascendance", vec: (-400,10,800) }
+event: { event: Display, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: (6, 40), target: "Archon", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 85, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/02-President-Speech.def b/data/shatter/Campaigns/03/Scenes/02-President-Speech.def
new file mode 100644
index 0000000..6bfa86f
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/02-President-Speech.def
@@ -0,0 +1,224 @@
+MISSION
+
+name: "Cmpn03 News01 - Campaign Start"
+type: "Patrol"
+system: "Janus"
+system: "Borova"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (12e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (22e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-14e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, 70e3, 0), rgn: Janek, speed: 700 }
+ head: 180
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (-10e3, -8e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (-14e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Janek
+ loc: (8e3, -4e3, 0)
+ head: 180
+ navpt: { cmd: Vector, loc: (12e3, 70e3, 0), rgn: Janek, speed: 700 }
+}
+
+
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (2e3, 14e3, 0)
+ navpt: { cmd: Vector, loc: (2e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (-10e3, -8e3, 0)
+ navpt: { cmd: Vector, loc: (-14e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (8e3, -4e3, 0)
+ navpt: { cmd: Vector, loc: (12e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Danova
+ loc: (11e3, 9e3, 0)
+ navpt: { cmd: Vector, loc: (16e3, -70e3, 0), rgn: Danova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2,0,1e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, sound: "Vox/Scenes/03/News_02_President_Speech.ogg" }
+
+
+event: { event: Display, time: 10, image: "Campaigns/03/Scenes/Map.pcx", color: 0xffffffff, fade: (1,6,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 20, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony 24th DESRON", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Entering Janek Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Ascendance", vec: (-400,10,800) }
+event: { event: Display, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: Camera, time: 65, param: (6, 40), target: "Archon", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/03-Titan-Destroyed.def b/data/shatter/Campaigns/03/Scenes/03-Titan-Destroyed.def
new file mode 100644
index 0000000..5833a33
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/03-Titan-Destroyed.def
@@ -0,0 +1,349 @@
+MISSION
+
+name: "Cmpn03 News03 - Titan Destroyed"
+type: "Patrol"
+system: Jarnell
+system: Borova
+region: Borova
+stardate: 1155770000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0, 0, 0), rgn: "Borova", speed: 50 }
+}
+
+element: {
+ name: Titan
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Borova"
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: "Borova", speed: 600 }
+}
+
+element: {
+ name: "Windriders"
+ design: "Falcon"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Chargers"
+ design: "Stormhawk"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 32
+ maint_count: 16
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Razorbacks"
+ design: "Thunderbolt"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 20
+ maint_count: 10
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Artemis"
+ design: "Zodiac"
+ carrier: "Titan"
+ commander: "Titan"
+ mission: "Misc"
+
+ intel: "Known"
+ count: 8
+ maint_count: 4
+ iff: 1
+ region: "Borova"
+ loc: (10e3, 0, 0)
+}
+
+element: {
+ name: "Omega"
+ design: "Falcon"
+ squadron: "Windriders"
+ commander: "Titan"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (18e3, -18e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: "Vulcan"
+ design: "Stormhawk"
+ squadron: "Chargers"
+ commander: "Titan"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Borova"
+ loc: (-6e3, -23e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+element: {
+ name: Ascendance
+ design: Imperial
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (40e3, 40e3, 0)
+ navpt: { cmd: Assault, tgt: Titan, rgn: Borova, loc: (0,0,0), speed: 500 }
+}
+
+element: {
+ name: Throne
+ design: Imperial
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (-30e3, -50e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Titan, rgn: Borova, loc: (0,0,0), speed: 500 }
+}
+
+
+element: {
+ name: "Nels Berens"
+ design: Volnaris
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (28e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+element: {
+ name: Sabre
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (38e3, -24e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+element: {
+ name: Lance
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (48e3, 24e3, 0)
+ navpt: { cmd: Assault, tgt: Stalwart, rgn: Borova, loc: (10e3,20e3,0), speed: 500 }
+}
+
+
+element: {
+ name: "Sirocco"
+ design: Tiger
+ mission: Fleet
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Borova
+ loc: (-41e3, 29e3, 0)
+}
+
+element: {
+ name: "Sorrin"
+ design: "Viper"
+ squadron: "Vipers"
+ commander: "Cyclops"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Borova"
+ loc: (-34e3, 28e3, 0)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: "Amnar"
+ design: "Cobra"
+ mission: Assault
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 2
+ playable: false
+ region: "Borova"
+ loc: (-45e3, 25e3, 0)
+
+ loadout: { ship: -1, name: "Ship Strike" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Display, message: "Force:Space Fourth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "7th Carrier Group 'Titan'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, param: 3, target: "Titan", vec: (0.3, -0.15, 3e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.03) }
+
+
+event: { event: Camera, time: 10, param: (6, 7), target: "Vulcan 1" }
+
+event: { event: Camera, time: 15, param: (6, 7), target: "Omega 1" }
+
+event: { event: Camera, time: 20, param: (6,23), target: "Throne" }
+
+event: { event: Camera, time: 25, param: 3, target: "Stalwart", vec: (0.2,0,3e3) }
+event: { event: Camera, param: 5, vec: (-0.13, 0.01, 0.01) }
+
+event: { event: Message, time: 28, sound: "Vox/Scenes/03/News_03_Titan_Destroyed.ogg" }
+
+event: { event: Camera, time: 30, param: (6,10), target: "Titan", vec: (15e3,0,6e3) }
+
+
+event: { event: Damage, time: 33, param: 1e9, ship: "Titan" }
+
+
+event: { event: Camera, time: 40, param: (6,15), target: "Ascendance", vec: (2.3,0,3e3) }
+
+event: { event: Camera, time: 50, param: 3, target: "Gerson", vec: (0.7,0.7,4e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.02) }
+
+event: { event: Camera, time: 70, param: 3, target: "Simmons", vec: (1.7,0,4e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/04-Fort-Talden.def b/data/shatter/Campaigns/03/Scenes/04-Fort-Talden.def
new file mode 100644
index 0000000..200a004
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/04-Fort-Talden.def
@@ -0,0 +1,157 @@
+MISSION
+
+name: "Cmpn03 Brief 04 Fort Talden"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1155990000
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "AAA 2"
+ design: "AAA 2"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-27e3, -13e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+event: { event: Camera, param: 3, target: "Fort Talden 1", vec: (1,0,7000) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.01) }
+event: { event: Damage, time: 1, ship: "AAA 1", param: 2e5 }
+event: { event: Damage, time: 1, ship: "AAA 2", param: 2e5 }
+event: { event: Damage, ship: "Fort Talden 2", param: 2300 }
+event: { event: Damage, time: 2, ship: "Fort Talden 2", param: 2300 }
+event: { event: Damage, time: 3, ship: "Fort Talden 2", param: 2300 }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "Force:Intel Briefing" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** FORT TALDEN ADVANCED PROJECTS\n*** BOROVA SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+event: { event: Message, time: 5, sound: "Vox/Scenes/03/Briefing_04_sam.ogg" }
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/05-Grand-Concourse.def b/data/shatter/Campaigns/03/Scenes/05-Grand-Concourse.def
new file mode 100644
index 0000000..d489f9a
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/05-Grand-Concourse.def
@@ -0,0 +1,164 @@
+MISSION
+
+name: "Cmpn03 News 05 Grand Concourse"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1166833811.0
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "Museum"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-8500, -1e3, 0)
+}
+
+element: {
+ name: "Target"
+ design: "Bldg02"
+ mission: "Misc"
+
+ intel: "Located"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-9000, -1e3, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (2,0,1e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+
+event: { event: Display, time: 5, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_05_Grand_Concourse.ogg" }
+
+event: { event: Camera, time: 10, param: 3, target: "Museum", vec: (-0.6,0.06,4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Vestapol", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Museum District", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Damage, time: 11, ship: "Target", param: 3000 }
+event: { event: Damage, time: 12, ship: "Target", param: 3000 }
+event: { event: Damage, time: 14, ship: "Target", param: 1500 }
+event: { event: Damage, time: 30, ship: "Target", param: 2500 }
+
+event: { event: EndScene, time: 50, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/06-Eleaan-Diplomats.def b/data/shatter/Campaigns/03/Scenes/06-Eleaan-Diplomats.def
new file mode 100644
index 0000000..684a4a0
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/06-Eleaan-Diplomats.def
@@ -0,0 +1,99 @@
+MISSION
+
+name: "Cmpn03 News 06 Ele'aan Diplomats"
+type: "Patrol"
+system: "Jarnell"
+system: "Nephrys"
+system: "Borova"
+region: "Borova"
+stardate: 1166770000.0
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ count: 1
+ iff: 1
+ player: 1
+ rgn: Borova
+ loc: (0, 0, 0)
+}
+
+
+element: {
+ name: Consul
+ design: Transport
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+
+element: {
+ name: "Force:Space HQ"
+ design: Station1
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+ head: 90
+}
+
+
+element: {
+ name: Krill
+ design: ZZF
+ mission: Patrol
+
+ count: 2
+ iff: 4
+ loc: (0,0,0)
+ rgn: Nergal
+ navpt: { cmd: Vector, loc: (0,-100e3,0), rgn: Nergal, speed: 1e3 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,3,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/03/Scenes/News.pcx", color: 0xffffffff, fade: (1,2,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (2,0,1.3e7) }
+event: { event: Camera, param: 5, vec: (0.12, 0.012, 0.025) }
+event: { event: Display, time: 4, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/03/News_06_Ele'aan_Diplomats.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,30), target: Consul }
+event: { event: Display, message: "Ele'aan Consular Starship", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Leaving Borova Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Force:Space HQ", vec: (-2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, message: "Force:Space HQ", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Jarnell Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 68, param: 3, target: "body:Nergal", vec: (2, -0.2, 4e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.005) }
+event: { event: Display, message: "Nephrys System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "On the Hegemony Border", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 100, param: (6,22), target: "Krill 1" }
+
+event: { event: EndScene, time: 120, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/07-Athenar.def b/data/shatter/Campaigns/03/Scenes/07-Athenar.def
new file mode 100644
index 0000000..915e571
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/07-Athenar.def
@@ -0,0 +1,227 @@
+MISSION
+
+name: "Cmpn03 Brief 07 Athenar"
+type: "Patrol"
+system: Janus
+system: Athenar
+region: Pallas
+stardate: 1177880000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// FORCE:SPACE 17TH BATTLE GROUP 'FURIOUS'
+
+element: {
+ name: Furious
+ design: Devastator
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Valiant
+ design: Courageous
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Honorable
+ design: Courageous
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: Janek, speed: 600 }
+}
+
+element: {
+ name: Salas
+ design: Asher
+ commander: Furious
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Janek
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: Janek, speed: 600 }
+}
+
+// FORCE:SPACE 48TH DESTROYER SQUADRON 'ENIGMA'
+
+element: {
+ name: Enigma
+ design: Spectre
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+element: {
+ name: Gorgon
+ design: Spectre
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (3e3, 1e3, 0)
+ navpt: { cmd: Vector, loc: (4e3, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+
+element: {
+ name: Normandy
+ design: Berents
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Navara
+ loc: (-4e3, -1e3, 0)
+ navpt: { cmd: Vector, loc: (-6e3, -70e3, 0), rgn: Navara, speed: 600 }
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Intruder
+ design: Vendetta
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (0, 0, 0)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (-2e3, 15e3, 0)
+ navpt: { cmd: Vector, loc: (-8e3, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (25e3, -15e3, 0)
+ navpt: { cmd: Vector, loc: (25e3, -90e3, 0), rgn: Pallas, speed: 600 }
+}
+
+element: {
+ name: "Fourth Sector"
+ design: Tiger
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Pallas
+ loc: (-11e3, -12e3, 0)
+ navpt: { cmd: Vector, loc: (-24e3, -70e3, 0), rgn: Pallas, speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "Intruder", vec: (1.3, -0.15, 3e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, 0.025) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Hegemony Forces Invade Athenar\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B07-OK.ogg" }
+
+
+event: { event: Camera, time: 20, param: (6,23), target: "Royale" }
+
+
+event: { event: Camera, time: 40, param: (6,12), target: "Furious" }
+
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Force:Space 17th Battle Group 'Furious'" }
+
+event: { event: Camera, time: 50, param: (6,12), target: "Valiant" }
+
+event: { event: Camera, time: 60, param: 3, target: "Enigma", vec: (0.7,0.2,4e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.02) }
+
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Force:Space 48TH DESTROYER SQUADRON 'ENIGMA'" }
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/08-Liberation.def b/data/shatter/Campaigns/03/Scenes/08-Liberation.def
new file mode 100644
index 0000000..d0121a7
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/08-Liberation.def
@@ -0,0 +1,117 @@
+MISSION
+
+name: "Cmpn03 News 08 Liberation"
+type: "Patrol"
+system: "Jarnell"
+system: "Haiche"
+system: "Silessia"
+system: "Borova"
+region: "Borova"
+stardate: 1166770000.0
+
+degrees: true
+
+element: {
+ name: "Camera"
+ design: CameraPod
+ mission: Misc
+
+ count: 1
+ iff: 1
+ player: 1
+ rgn: Borova
+ loc: (-100e3, 0, 0)
+}
+
+
+element: {
+ name: Chronos
+ design: Orion
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+element: {
+ name: Asher
+ design: Asher
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (-3e3, 2e3, 40)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (-3e3,-50e3,40), rgn: Borova, speed: 500 }
+}
+
+
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (220e3, 350e3, 0)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (220e3,-50e3,0), rgn: Borova, speed: 500 }
+}
+
+
+element: {
+ name: Hauler
+ design: IM4300
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (221e3, 351e3, 30)
+ rgn: Borova
+ navpt: { cmd: Vector, loc: (220e3,-50e3,30), rgn: Borova, speed: 500 }
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2, 0, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, time: 2, sound: "Vox/Scenes/03/News_08_Liberation.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,45), target: Chronos }
+
+event: { event: Camera, time: 40, param: (6,50), target: Cargo }
+
+
+event: { event: Camera, time: 85, param: 3, target: "body:Haiche", vec: (5, -0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "Haiche Protectorate", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,300) }
+event: { event: Display, message: "Independent", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,300) }
+
+
+event: { event: Camera, time: 95, param: 3, target: "body:Silessia", vec: (1.5, 0, 2e7) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, 0.01) }
+event: { event: Display, message: "Silessian Confederacy", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,300) }
+event: { event: Display, message: "Independent", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,300) }
+
+
+event: { event: Camera, time: 105, param: 3, target: "body:Jarnell", vec: (1.5, 0, 2.2e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+
+
+event: { event: EndScene, time: 120, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/09-Silessia.def b/data/shatter/Campaigns/03/Scenes/09-Silessia.def
new file mode 100644
index 0000000..8414e97
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/09-Silessia.def
@@ -0,0 +1,150 @@
+MISSION
+
+name: "Cmpn03 Brief 09 Silessia"
+type: "Patrol"
+system: Silessia
+region: Silessia
+stardate: 1177881122.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// SILESSIAN COLONY SHIP 'FAR HORIZON'
+
+element: {
+ name: "Far Horizon"
+ design: Colony
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Silessia
+}
+
+element: {
+ name: Relay
+ design: Relay1
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Prosenar
+}
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Nero
+ loc: (12e3, 15e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (18e3, -70e3, 0), rgn: Nero, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Nero
+ loc: (25e3, 13e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (27e3, -90e3, 0), rgn: Nero, speed: 600 }
+}
+
+
+// CIVILIAN FREIGHT TRAFFIC
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (223e3, 350e3, 0)
+ rgn: Prosenar
+ navpt: { cmd: Vector, loc: (223e3,-50e3,0), rgn: Prosenar, speed: 500 }
+}
+
+
+element: {
+ name: Tanker
+ design: IM1912
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (221e3, 351e3, 60)
+ rgn: Prosenar
+ navpt: { cmd: Vector, loc: (220e3,-50e3,60), rgn: Prosenar, speed: 500 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.3e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Silessian Confederacy\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B09-OK.ogg" }
+
+
+event: { event: Camera, time: 8, param: (6,25), target: "Royale" }
+
+
+event: { event: Camera, time: 22, param: (6,25), target: "Tanker" }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Far Horizon", vec: (1,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.02, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Colony Ship 'Far Horizon'" }
+
+event: { event: Camera, time: 50, param: 3, target: "body:Prosenar", vec: (3, -0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Prosenar Sector" }
+
+
+event: { event: Camera, time: 58, param: 3, target: "Relay", vec: (4, -0.1, 3e3) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "DataComm Relay 105/AX" }
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/10-Haiche.def b/data/shatter/Campaigns/03/Scenes/10-Haiche.def
new file mode 100644
index 0000000..40b20ea
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/10-Haiche.def
@@ -0,0 +1,59 @@
+MISSION
+
+name: "Cmpn03 Brief 10 Haiche"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177883344.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Haiche Protectorate\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B10-OK.ogg" }
+
+
+
+event: { event: Camera, time: 38, param: 3, target: "body:Cygnus", vec: (1, -0.1, 7e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Cygnus Sector" }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Tal Amin", vec: (3, 0.2, 8e7) }
+event: { event: Camera, param: 5, vec: (0.14, -0.02, -0.01) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Tal Amin Sector" }
+
+
+
+event: { event: EndScene, time: 62, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/11-Tantalus.def b/data/shatter/Campaigns/03/Scenes/11-Tantalus.def
new file mode 100644
index 0000000..2f3ed0c
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/11-Tantalus.def
@@ -0,0 +1,239 @@
+MISSION
+
+name: "Cmpn03 Brief 11 Tantalus"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177665544.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+}
+
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (2e3,1e3,100)
+}
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Tantalus Sector\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B11-OK.ogg" }
+
+
+event: { event: Camera, time: 20, param: 3, target: "Broadsword", vec: (2, -0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (0.10, 0.02, -0.015) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tantalus Mining Station", vec: (0,0.005,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Downtown", vec: (1,0.005,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/12-Colony-Ship.def b/data/shatter/Campaigns/03/Scenes/12-Colony-Ship.def
new file mode 100644
index 0000000..77bc4f8
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/12-Colony-Ship.def
@@ -0,0 +1,99 @@
+MISSION
+
+name: "Cmpn03 News 12 Colony Ship"
+type: "Patrol"
+system: Silessia
+region: Silessia
+stardate: 1177883355.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+// SILESSIAN COLONY SHIP 'FAR HORIZON'
+
+element: {
+ name: "Far Horizon"
+ design: Colony
+ mission: Misc
+ count: 1
+ iff: 0
+ loc: (0,0,0)
+ rgn: Silessia
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Silessia
+ loc: (34e3, 15e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (38e3, -70e3, 0), rgn: Silessia, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Silessia
+ loc: (37e3, 13e3, 0)
+ head: 90
+ navpt: { cmd: Vector, loc: (43e3, -90e3, 0), rgn: Silessia, speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.3e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Silessian Confederacy" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: Limerick12, color: 0xffffff80,
+ message: "Capitol" }
+
+event: { event: Message, time: 5, sound: "Vox/Scenes/03/News_12_Colony_Ship.ogg" }
+event: { event: Camera, time: 8, param: 3, target: "Far Horizon", vec: (1,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (0.15, 0.02, 0.02) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Colony Ship 'Far Horizon'" }
+
+
+event: { event: Camera, time: 50, param: (6,25), target: "Royale" }
+
+event: { event: Camera, time: 65, param: 3, target: "Far Horizon", vec: (2,-0.2,25e3) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.02,-0.01) }
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/13-Marauder.def b/data/shatter/Campaigns/03/Scenes/13-Marauder.def
new file mode 100644
index 0000000..f3f8d8c
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/13-Marauder.def
@@ -0,0 +1,97 @@
+MISSION
+
+name: "Cmpn03 Brief 13 Marauder"
+type: "Patrol"
+system: Silessia
+region: Vesta
+stardate: 1177887766.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Devastator
+ design: Devastator
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ loc: (0,0,0)
+ rgn: Nero
+ navpt: { cmd: Vector, loc: (0,-70e3,0), rgn: Nero, speed: 500 }
+}
+
+element: {
+ name: Spectre
+ design: Spectre
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ loc: (3e3,2e3,100)
+ rgn: Nero
+ navpt: { cmd: Vector, loc: (4e3,-70e3,100), rgn: Nero, speed: 500 }
+}
+
+
+element: {
+ name: Cutlass
+ design: Cutlass
+ iff: 3
+ count: 2
+ intel: Secret
+ loc: (0,0,0)
+ rgn: Vesta
+ navpt: { cmd: Vector, loc: (5e3,-100e3, 1e3), rgn: Vesta, speed: 1000 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.02) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Brotherhood of Iron\nClassified: CONFIDENTIAL DND/CRYPTO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/03/C3-B13-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Vesta", vec: (1, -0.15, 6e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.015, 0.015) }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Vesta Sector" }
+
+event: { event: Display, time: 20, fade: (1,8,1), rect: (-280,-280, 256,256), color: 0xffffffff,
+ image: "Campaigns/03/Scenes/Marauder.pcx" }
+
+
+event: { event: Camera, time: 35, param: (6,15), target: "Cutlass 1" }
+
+event: { event: Camera, time: 45, param: 3, target: "Devastator", vec: (4,0.005,6e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/Defeat1.def b/data/shatter/Campaigns/03/Scenes/Defeat1.def
new file mode 100644
index 0000000..51d215d
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/Defeat1.def
@@ -0,0 +1,98 @@
+MISSION
+
+name: "Cmpn 03 Defeat 01"
+type: "Patrol"
+system: "Borova"
+region: "Borova"
+stardate: 1177889900
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Dragon
+ design: Dragon
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (0,0,0)
+ navpt: { cmd: Vector, loc: (0,-100e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ commander: Dragon
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (8e3,2e3,-400)
+ navpt: { cmd: Vector, loc: (9e3,-100e3,-400), speed: 500 }
+}
+
+element: {
+ name: Viper
+ design: Viper
+ commander: Dragon
+ count: 2
+ iff: 0
+ loc: (4e3,6e3,200)
+ navpt: { cmd: Vector, loc: (5e3,-100e3,300), speed: 1000 }
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ loc: (-30e3,-100e3,0)
+ navpt: { cmd: Vector, loc: (-30e3, 100e3,0), speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (3,0,4e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,25), target: Dragon }
+
+event: { event: Camera, time: 30, param: (6,15), target: Vendetta }
+
+event: { event: Display, time: 38, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/Defeat2.def b/data/shatter/Campaigns/03/Scenes/Defeat2.def
new file mode 100644
index 0000000..e2ab9be
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/Defeat2.def
@@ -0,0 +1,72 @@
+MISSION
+
+name: "Cmpn 03 Defeat 02"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1177889900
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (0,0,0)
+ navpt: { cmd: Vector, loc: (0,-100e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ commander: Vendetta
+ mission: "Misc"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 0
+ playable: false
+ loc: (5e3,0,-300)
+ navpt: { cmd: Vector, loc: (7e3,-100e3,-300), speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (1,0,2e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Stalemate", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,40), target: Vendetta }
+
+event: { event: Display, time: 43, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/M1-Almost-Home.def b/data/shatter/Campaigns/03/Scenes/M1-Almost-Home.def
new file mode 100644
index 0000000..bb40e29
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/M1-Almost-Home.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 01"
+type: "Patrol"
+system: "Janus"
+region: "Janek"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,60,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: ALMOST HOME\n-----\nPATH: Magellan IV Shipboard | Janek Station Courier Drop | 3RD FLEET HQ | Force Command Transceiver | Lost and Found | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,60,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nI don't know if you made the Academy Reunion or not, sorry I missed catching you there. This has been a bloody awful year. The trade scouting mission did not go as well as I had hoped.\n\nWe were delayed in Nephrys System for two months when the Loris Trade Executive cancelled our return visas. Nephrys is really out on the rim, I thought we'd never get back. As it was, it took weeks to find the right sort of contact to forge a new registration for the Maggie and get us cleared through Korius to try the southern route back home. We had to sneak the long way around - four hops - to avoid the military build-up in Kolchev.\n\nWe jumped out of Haiche only a couple of days ahead of the invasion force. (In case you haven't heard yet, you're under attack mate.) Right lovely dump you got here in Janus. Not a decent bar in sight, and I could really use a drink or ten. We're pretty banged up, but I think we can make Jarnell and maybe sit down at Thralis for repairs.\n\nGood luck, mate. It's getting nasty out there.\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_01_Almost_Home.ogg"
+}
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/M2-Back-to-Borova.def b/data/shatter/Campaigns/03/Scenes/M2-Back-to-Borova.def
new file mode 100644
index 0000000..08df240
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/M2-Back-to-Borova.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: BACK TO BOROVA\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 4TH FLEET HQ | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nI still can't quite bring myself to believe that we are at war with the Hegemony. The Consulate is leaving on a 'Fact Finding' mission to Borova, and I'll be going along to support the diplomatic corps. We should be in system within thirty hours or less, although it doesn't really feel like 'going home.'\n\nIsn't your unit patrolling the outer sectors? I think this may be the first time we've been in the same system at the same time since university. Strange that it should be under such circumstances.\n\nThe Ele'aan Ambassador still thinks the Zolon Empire is behind the Marakan invasion. Although, I still don't see how that is even possible. Zolons can barely communicate with humans. I know the Ele'aans have access to information way beyond our capabilities, but Zolon involvement just seems so... unlikely.\n\nAnyway, I don't know if I'll get any free time while we are in-system. If I do, I'll try to make it over to Vestapol and see your parents. I'd love to see the museums on the Grand Concourse. Come to think of it, I haven't been shopping in Vestapol in ages. But that would be too much to hope for, I suppose.\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_02_Back_to_Borova.ogg"
+}
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/M3-Down-for-Repairs.def b/data/shatter/Campaigns/03/Scenes/M3-Down-for-Repairs.def
new file mode 100644
index 0000000..ff90e69
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/M3-Down-for-Repairs.def
@@ -0,0 +1,48 @@
+MISSION
+
+name: "Cmpn 03 Mail 03"
+type: "Patrol"
+system: Thralis
+region: Thrale
+
+element: {
+ name: "Magellan IV"
+ design: IM2800
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+event: { event: Hold, param: 90, event_ship: "Magellan IV" }
+event: { event: Camera, time: 0, param: (6, 90), target: "Magellan IV" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,90,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,90,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Capt. Jonas Devlin - Magellan IV\nRE: DOWN FOR REPAIRS\n-----\nPATH: Magellan IV Shipboard | Organon Motives | Thralis Relay | Force Command Transceiver | 4TH FLEET HQ | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,90,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nWell, Maggie is in the shop. We made it into Thralis just in time to lose the quantum drive. We're sitting in the Organon Motives repair yard waiting on parts for a drive overhaul while I try to call in every favor I have left in the system. I'm just about ready to steal the whole drive system from the next Force Cruiser that passes by just so that we can get back underway.\n\nAt least I've had a chance to get caught up on the local nets. This war of yours is big news out here mate, and Thralis isn't exactly on the front lines. The Thracian Titans even canceled their season ending match against Sparta in honor of the lost crew of the CV-72. Really though, I think Thrace just needed an excuse to avoid the match. Hollis is the worst manager they've had in a decade. Anyway, I was glad to see your name wasn't on the missing in action list.\n\nHey, did you see the news interview with Sara the first night of the fighting in Vestapol? Strange coincidence that she would happen to be on the ground just when a squad of Hegemony goons shows up to knock over the museum. Glad she's all right. Good thing that guardian angel of hers was working over time.\n\nStay sharp out there. I don't think anyone is looking out for your welfare except you!\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/03/Mail_03_Down_for_Repairs.ogg"
+}
+
+
+event: { event: EndScene, time: 83, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scenes/Victory1.def b/data/shatter/Campaigns/03/Scenes/Victory1.def
new file mode 100644
index 0000000..1d3de15
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scenes/Victory1.def
@@ -0,0 +1,91 @@
+MISSION
+
+name: "Cmpn 03 Victory"
+type: "Patrol"
+system: "Silessia"
+region: "Silessia"
+stardate: 1177889900
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Archon"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-125e3, 155e3, 0)
+ navpt: { cmd: Vector, loc: (-125e3,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Silessia
+ loc: (-154e3, 174e3, 0)
+ navpt: { cmd: Vector, loc: (-154,-50e3,0), speed: 350, rgn: Silessia }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Silessia", vec: (1,0,2e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Shining Fortress", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/03/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Archon }
+
+event: { event: Display, time: 38, image: "Campaigns/03/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/03/Scripts/FS_Patrol_Iron.def b/data/shatter/Campaigns/03/Scripts/FS_Patrol_Iron.def
new file mode 100644
index 0000000..4f866fa
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scripts/FS_Patrol_Iron.def
@@ -0,0 +1,124 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+system: "Silessia"
+region: "Vesta"
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Cutlass,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cutlass,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Saber,
+ rloc: { ref: "Player:3", dex: 20e3, dex_var: 5e3 },
+ count: 2,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Marauder,
+ design: Marauder,
+ rloc: { ref: "Player:3", dex: 33e3, dex_var: 5e3 },
+ count: 1,
+ iff: 3,
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/Scripts/IS_Patrol_Iron.def b/data/shatter/Campaigns/03/Scripts/IS_Patrol_Iron.def
new file mode 100644
index 0000000..baba172
--- /dev/null
+++ b/data/shatter/Campaigns/03/Scripts/IS_Patrol_Iron.def
@@ -0,0 +1,124 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 1"
+type: PATROL
+system: "Silessia"
+region: "Vesta"
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 3 }
+callsign: { name: Bravo, iff: 3 }
+callsign: { name: Charlie, iff: 3 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 1,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Cutlass
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cutlass
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Saber
+ rloc: { ref: "Player:3", dex: 20e3, dex_var: 5e3 },
+ count: 2,
+ iff: 3,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Marauder,
+ design: Marauder,
+ rloc: { ref: "Player:3", dex: 33e3, dex_var: 5e3 },
+ count: 1,
+ iff: 3,
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/Templates.def b/data/shatter/Campaigns/03/Templates.def
new file mode 100644
index 0000000..7c47670
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates.def
@@ -0,0 +1,9 @@
+TEMPLATELIST
+
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_01.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_01.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_02.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_02.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_03.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_03.def" }
+
diff --git a/data/shatter/Campaigns/03/Templates/FS_Defend_Titan.def b/data/shatter/Campaigns/03/Templates/FS_Defend_Titan.def
new file mode 100644
index 0000000..96d6d9b
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/FS_Defend_Titan.def
@@ -0,0 +1,236 @@
+MISSION_TEMPLATE
+
+name: "Fleet Defense"
+type: DEFEND
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Cobra1, iff: 2 }
+callsign: { name: Cobra2, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 25e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 150e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+element: {
+ name: Cobra1,
+ design: Cobra,
+ rloc: { ref: "Player:1", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+element: {
+ name: Cobra2,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+
+optional: {
+ min: 4,
+ max: 8,
+
+ element: {
+ name: DB1,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: DB2,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV1,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T1,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV1 },
+ },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV2,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T2,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV2 },
+ },
+ },
+
+ element: {
+ name: DB3,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+
+ element: {
+ name: DB4,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+}
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_ship: Player,
+ event_source: A1,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "Mayday! Mayday! We are under attack!",
+
+ trigger: Time,
+ time: 38,
+}
+
+event: {
+ id: 2,
+ event: Damage,
+ event_ship: Defender,
+ event_param: 40e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 35,
+}
+
+event: {
+ id: 3,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 67,
+}
+
+event: {
+ id: 4,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 112,
+}
+
+event: {
+ id: 5,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 138,
+} \ No newline at end of file
diff --git a/data/shatter/Campaigns/03/Templates/FS_Patrol_01.def b/data/shatter/Campaigns/03/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..82fdc6b
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 5,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/Templates/FS_Patrol_02.def b/data/shatter/Campaigns/03/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..8850c14
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/FS_Patrol_02.def
@@ -0,0 +1,118 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+ element: {
+ name: Alpha,
+ design: Razor,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ }
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ }
+
+ optional: { min: 1, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+ }
diff --git a/data/shatter/Campaigns/03/Templates/FS_Patrol_03.def b/data/shatter/Campaigns/03/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..1e50ac7
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/FS_Patrol_03.def
@@ -0,0 +1,125 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 75e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:3", dex: 50e3, dex_var: 15e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/Templates/IS_Defend_Titan.def b/data/shatter/Campaigns/03/Templates/IS_Defend_Titan.def
new file mode 100644
index 0000000..8a34565
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/IS_Defend_Titan.def
@@ -0,0 +1,225 @@
+MISSION_TEMPLATE
+
+name: "Fleet Defense"
+type: DEFEND
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Cobra1, iff: 2 }
+callsign: { name: Cobra2, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 25e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 150e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+element: {
+ name: Cobra1,
+ design: Cobra,
+ rloc: { ref: "Player:1", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+element: {
+ name: Cobra2,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: assault,
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 40e3, dex_var: 10e3, az: 0, az_var: 70 }, speed: 750 },
+}
+
+
+optional: {
+ min: 4,
+ max: 8,
+
+ element: {
+ name: DB1,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: DB2,
+ design: Broadsword,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV1,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T1,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV1 },
+ },
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: DV2,
+ design: Volnaris,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 60e3, dex_var: 20e3, az: 0, az_var: 70 }, speed: 750 },
+ },
+
+ element: {
+ name: T2,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: escort, tgt: DV2 },
+ },
+ },
+
+ element: {
+ name: DB3,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+
+ element: {
+ name: DB4,
+ design: Broadsword,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 7e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: A1 },
+ navpt: { cmd: assault, tgt: A1, rloc: { ref: A1, dex: 70e3, dex_var: 20e3, az: 0, az_var: 30 }, speed: 750 },
+ },
+}
+
+
+event: {
+ id: 1,
+ event: Message,
+ event_ship: Player,
+ event_source: A1,
+ sound: "Vox/Misc/A02-01.ogg",
+ event_message: "Mayday! Mayday! We are under attack!",
+
+ trigger: Time,
+ time: 38,
+}
+
+event: {
+ id: 3,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 82,
+}
+
+event: {
+ id: 4,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 148,
+}
+
+event: {
+ id: 5,
+ event: Damage,
+ event_ship: A1,
+ event_param: 30e3,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 186,
+}
diff --git a/data/shatter/Campaigns/03/Templates/IS_Patrol_01.def b/data/shatter/Campaigns/03/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..0b78ab7
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 1,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cobra,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/Templates/IS_Patrol_02.def b/data/shatter/Campaigns/03/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..2a5e412
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/IS_Patrol_02.def
@@ -0,0 +1,130 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 22e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/03/Templates/IS_Patrol_03.def b/data/shatter/Campaigns/03/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..ef1bb9b
--- /dev/null
+++ b/data/shatter/Campaigns/03/Templates/IS_Patrol_03.def
@@ -0,0 +1,109 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 65e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:1", dex: 50e3, dex_var: 25e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/03/campaign.def b/data/shatter/Campaigns/03/campaign.def
new file mode 100644
index 0000000..d7ba6ca
--- /dev/null
+++ b/data/shatter/Campaigns/03/campaign.def
@@ -0,0 +1,834 @@
+CAMPAIGN
+
+name: "Operation Shining Fortress"
+
+desc:
+ "The war begins. Hegemony forces have begun to invade the core "
+ "Alliance systems. Starfleets from Loris and Kolchev, moving "
+ "through the independent systems Silessia and Haiche, have attacked "
+ "key targets in the Janus and Borovan systems. The Alliance Fourth "
+ "and Fifth Fleets are fighting a defensive battle trying to halt "
+ "the Hegemony advance, evacuate civilians, and form an effective "
+ "counterattack."
+
+situation:
+ "\tThe Terellian Alliance is facing the first true interstellar "
+ "war in nearly five hundred years. Hegemony forces have begun to invade the core "
+ "Alliance systems. Starfleets from Loris and Kolchev, moving "
+ "through the independent systems Silessia and Haiche, have attacked "
+ "key targets in the Janus and Borovan systems.\n\n"
+
+ "\tForce:Space Fourth Fleet (Titan) is stationed in the Borovan "
+ "system, and is deploying in a defensive posture to meet the invasion "
+ "threat. Fifth Fleet (Hyperion) is divided. Task force TF5.15 is "
+ "assigned to the Janus proving grounds for training exercises. "
+ "The remainder of Fifth Fleet is spread throughout the Athenar system."
+
+orders:
+ "\t* Protect Alliance civilians and assets in Janus and Borova.\n"
+ "\t* Evacuate civilians and government personnel as necessary.\n"
+ "\t* Stop the Hegemony advance until a counterattack can be mounted.\n"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 4 },
+ group: { type: fleet, id: 5 },
+ group: { type: battalion, id: 5 },
+ group: { type: civilian, id: 2100 },
+ group: { type: freight, id: 3000 },
+ group: { type: infrastructure, id: 5000 },
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 6 },
+ group: { type: fleet, id: 7 },
+ group: { type: battalion, id: 8 },
+ group: { type: war_production, id: 3000 },
+}
+
+combatant: {
+ name: "Brotherhood of Iron",
+ group: { type: fleet, id: 2 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Borova,
+ text: "Hegemony Forces Invade Alliance",
+ source: News,
+ file: "Actions/01-campaign-start.txt"
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-Campaign-Start.def"
+}
+
+action: {
+ id: 1,
+ type: system,
+ team: 2,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display"
+}
+
+action: {
+ id: 2,
+ type: system,
+ team: 2,
+ sys: Janus,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display"
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 1,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 4,
+ text: "do-not-display"
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 1,
+ sys: Janus,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display"
+}
+
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Navara,
+ after: "01/04:00:00",
+ text: "Almost Home",
+ source: Mail,
+ file: "Actions/m1-almost-home.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-Almost-Home.def"
+}
+
+action: {
+ id: 30,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "01/12:00:00",
+ text: "Operation Shining Fortress",
+ source: News,
+ file: "Actions/02-president-speech.txt"
+ image: "Actions/Alliance.pcx"
+ scene: "Scenes/02-President-Speech.def"
+}
+
+action: {
+ id: 100,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "02/07:30:00",
+ text: "Back to Borova",
+ source: Mail,
+ file: "Actions/m2-back-to-borova.txt",
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-Back-to-Borova.def"
+}
+
+action: {
+ id: 120,
+ type: zone,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 7,
+ region: Borova,
+ image: "Actions/02-borova.pcx",
+ after: "02/21:30:00",
+}
+
+
+// LOSE BOROVA
+
+action: {
+ id: 200,
+ type: mission,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ asset_type: intercept_squadron,
+ asset_id: 93,
+ count: 1,
+
+ text: "Templates/IS_Defend_Titan.def",
+
+ after: "03/08:00:00",
+ before: "03/19:59:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 3000 },
+}
+
+action: {
+ id: 210,
+ type: mission,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ asset_type: fighter_squadron,
+ asset_id: 33,
+ count: 1,
+
+ text: "Templates/FS_Defend_Titan.def",
+
+ after: "03/08:00:00",
+ before: "03/19:59:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 3000 },
+}
+
+action: {
+ id: 250,
+ type: event,
+ subtype: defend,
+ team: 1,
+ rgn: Borova,
+ after: "03/20:00:00",
+ text: "CV-72 Titan Destroyed",
+ source: TACNET,
+ file: "Actions/03-titan-destroyed.txt"
+ image: "Actions/03-titan-destroyed.pcx"
+ scene: "Scenes/03-Titan-Destroyed.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: GT, score: 2000 },
+
+ asset_type: carrier_group,
+ asset_id: 7,
+ asset_iff: 1,
+ asset_kill: "Titan",
+}
+
+action: {
+ id: 290,
+ type: intel,
+ subtype: reserve,
+ sys: Jarnell,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 7,
+ after: "03/20:00:00",
+}
+
+action: {
+ id: 291,
+ type: intel,
+ subtype: known,
+ sys: Jarnell,
+ team: 1,
+ asset_type: carrier_group,
+ asset_id: 12,
+ after: "03/20:00:00",
+}
+
+action: {
+ id: 300,
+ type: system,
+ team: 1,
+ sys: Jarnell,
+ asset_type: fleet,
+ asset_id: 4,
+ after: "03/20:00:00",
+ image: "Actions/03-jarnell.pcx",
+}
+
+action: {
+ id: 310,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tHegemony destroyers and cruisers have reduced the Titan 7th CVBG "
+ "while in Borova orbit. The fleet carrier CV-72 Titan is believed "
+ "lost with all hands. Damage from the fighting was extensive, and "
+ "several other ships in the Titan battle group may have been damaged "
+ "or destroyed. A temporary strategic loss of the Borovan system "
+ "seems likely at this point\n\n"
+
+ "\tForce:Space 12th CVBG led by CV-77 Chronos is being readied in "
+ "Jarnell fleet yards to take over for the Titan. All surviving units "
+ "of the Fourth Fleet are to fall back to Jarnell and regroup with the "
+ "Chronos CVBG.\n",
+
+ req: { action: 300, status: COMPLETE }
+}
+
+
+// STORY ELEMENTS OF HEGEMONY INVASION
+
+action: {
+ id: 320,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/02:30:00",
+ text: "Fort Talden Attacked",
+ source: SECURE,
+ file: "Actions/04-fort-talden.txt",
+ image: "Actions/04-fort-talden.pcx",
+}
+
+action: {
+ id: 330,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/09:30:00",
+ text: "Grand Concourse Attacked",
+ source: News,
+ file: "Actions/05-grand-concourse.txt"
+ image: "Actions/05-grand-concourse.pcx"
+ scene: "Scenes/05-Grand-Concourse.def"
+}
+
+action: {
+ id: 340,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "04/15:00:00",
+ text: "Ele'aan Diplomats Withdrawn",
+ source: News,
+ file: "Actions/06-eleaan-diplomats.txt"
+ image: "Actions/06-eleaan-diplomats.pcx"
+ scene: "Scenes/06-Eleaan-Diplomats.def"
+}
+
+
+action: {
+ id: 350,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Athenar,
+ after: "04/18:35:00",
+ text: "Hegemony Invades Athenar",
+ source: FORCOM,
+ file: "Actions/07-athenar.txt"
+ image: "Actions/07-athenar.pcx"
+ scene: "Scenes/07-Athenar.def"
+}
+
+action: {
+ id: 351,
+ type: system,
+ team: 2,
+ sys: Athenar,
+ asset_type: battle_group,
+ asset_id: 17,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 352,
+ type: system,
+ team: 1,
+ sys: Athenar,
+ asset_type: battle_group,
+ asset_id: 17,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 353,
+ type: system,
+ team: 1,
+ sys: Athenar,
+ asset_type: destroyer_squadron,
+ asset_id: 48,
+ text: "do-not-display",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+action: {
+ id: 360,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tHegemony forces have gained temporary control of the Borovan Capitol. "
+ "Planetary Self Defense Forces are struggling to protect civilian assets "
+ "as best they can.\n\n"
+
+ "\tThe Fourth Fleet has fallen back to Jarnell to regroup with "
+ "Force:Space 12th CVBG led by CV-77 Chronos. Fourth Fleet must be prepared "
+ "to resume operations in Borova within twenty hours.\n\n"
+
+ "\tThe Hegemony Seventh Fleet in Janus has now also invaded the Athenar "
+ "system. Force:Space Fifth Fleet has divided into two action "
+ "groups in an attempt to defend both systems simultaneously.",
+
+ req: { action: 350, status: COMPLETE }
+}
+
+// RETURN TO BOROVA
+
+action: {
+ id: 400,
+ type: system,
+ team: 1,
+ sys: Borova,
+ asset_type: fleet,
+ asset_id: 4,
+ after: "05/01:00:00",
+}
+
+action: {
+ id: 410,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tHegemony forces have caused considerable destruction to ground-side "
+ "assets in their attack on the Borovan Capitol. Planetary Self Defense "
+ "Forces have been fighting valiantly, but they are not equipped to handle "
+ "an invasion force of this strength without Force aid.\n\n"
+
+ "\tThe Fourth Fleet must regain control of the Borovan System as soon as "
+ "possible to prevent further loss of civilian lives and property.\n",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+
+action: {
+ id: 450,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "05/22:17:00",
+ text: "Down for Repairs",
+ source: Mail,
+ file: "Actions/m3-down-for-repairs.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M3-Down-for-Repairs.def"
+}
+
+// ON TO HAICHE AND SILESSIA
+
+action: {
+ id: 590,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Athenar,
+ after: "08/08:30:00",
+ text: "Liberation Day",
+ source: News,
+ file: "Actions/08-liberation.txt"
+ image: "Actions/banner-alliance.pcx"
+ scene: "Scenes/08-Liberation.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RGT, score: 1000 }
+}
+
+action: {
+ id: 600,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "08/08:35:00",
+ text: "Silessian Confederacy",
+ source: FORCOM,
+ file: "Actions/09-silessia.txt",
+ image: "Actions/09-silessia.pcx",
+
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 601,
+ type: system,
+ team: 2,
+ sys: Silessia,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 602,
+ type: system,
+ team: 1,
+ sys: Silessia,
+ asset_type: fleet,
+ asset_id: 4,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 610,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tAlliance forces have regained control of the Borovan System and "
+ "Hegemony units are retreating to Silessian space. The Fourth Fleet "
+ "is to pursue and eliminate as much of the Hegemony force as possible. "
+ "A token force will be left behind in Borova to finish mopping up.\n\n",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 700,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Haiche,
+ after: "08/12:15:00",
+ text: "Haiche Protectorate",
+ source: FORCOM,
+ file: "Actions/10-haiche.txt",
+ image: "Actions/10-haiche.pcx",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 701,
+ type: system,
+ team: 2,
+ sys: Haiche,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 702,
+ type: zone,
+ team: 1,
+ region: Kala,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 710,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tAlliance forces have regained control of the Borovan System and "
+ "Hegemony units are retreating to Silessian space. The Fourth Fleet "
+ "is to pursue and eliminate as much of the Hegemony force as possible. "
+ "A token force will be left behind in Borova to finish mopping up.\n\n",
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 750,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Haiche,
+ after: "09/08:30:00",
+ text: "Tantalus",
+ source: FORCOM,
+ file: "Actions/11-tantalus.txt"
+ image: "Actions/11-Tantalus.pcx"
+ scene: "Scenes/11-Tantalus.def"
+
+ req: { action: 700, status: COMPLETE }
+}
+
+action: {
+ id: 751,
+ type: system,
+ team: 1,
+ sys: Haiche,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 750, status: COMPLETE }
+}
+
+action: {
+ id: 770,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "09/22:00:00",
+ text: "Far Horizon",
+ source: News,
+ file: "Actions/12-colony-ship.txt"
+ image: "Actions/12-Colony-Ship.pcx"
+ scene: "Scenes/12-Colony-Ship.def"
+
+ req: { action: 750, status: COMPLETE }
+}
+
+action: {
+ id: 830,
+ type: event,
+ subtype: story,
+ team: 1,
+ sys: Silessia,
+ after: "10/05:30:00",
+ text: "Brotherhood of Iron",
+ source: FORCOM,
+ file: "Actions/13-marauder.txt"
+ image: "Actions/13-Marauder.pcx"
+ scene: "Scenes/13-Marauder.def"
+
+ req: { action: 770, status: COMPLETE }
+}
+
+action: {
+ id: 831,
+ type: intel,
+ subtype: known,
+ sys: Silessia,
+ team: 3,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 830, status: COMPLETE }
+}
+
+action: {
+ id: 832,
+ type: system,
+ sys: Silessia,
+ team: 3,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+action: {
+ id: 860,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Vesta,
+ asset_type: intercept_squadron,
+ asset_id: 133,
+ count: 3,
+
+ text: "Scripts/IS_Patrol_Iron.def",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+action: {
+ id: 861,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Vesta,
+ asset_type: fighter_squadron,
+ asset_id: 53,
+ count: 3,
+
+ text: "Scripts/FS_Patrol_Iron.def",
+
+ req: { action: 831, status: COMPLETE }
+}
+
+
+// THE THRILL OF VICTORY
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Victory",
+ file: "Actions/victory.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory1.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 6, comp: LT, score: 7000 },
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 7, comp: LT, score: 7000 },
+}
+
+
+// THE AGONY OF DEFEAT
+
+action: {
+ id: 993,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat1.def"
+ after: "11/12:00:00",
+
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2500 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+ before: "03/08:00:00",
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 7, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 12, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 4, comp: LT, score: 9000 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 8, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE, not: true }
+}
+
+// defeat after saving the alliance systems
+
+action: {
+ id: 984,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2500 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 986,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 12, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 987,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 4, comp: LT, score: 9000 },
+ req: { action: 590, status: COMPLETE }
+}
+
+action: {
+ id: 988,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Shining Fortress Defeat",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 8, comp: LT, score: 3200 },
+ req: { action: 590, status: COMPLETE }
+}
diff --git a/data/shatter/Campaigns/03/zones.def b/data/shatter/Campaigns/03/zones.def
new file mode 100644
index 0000000..ee6d4a4
--- /dev/null
+++ b/data/shatter/Campaigns/03/zones.def
@@ -0,0 +1,138 @@
+ZONES
+
+// SILESSIA
+
+zone: {
+ system: Silessia,
+ region: Silessia,
+}
+
+zone: {
+ system: Silessia,
+ region: Prosenar,
+}
+
+zone: {
+ system: Silessia,
+ region: Vesta,
+}
+
+zone: {
+ system: Silessia,
+ region: Nero,
+}
+
+// HAICHE
+
+zone: {
+ system: Haiche,
+ region: Haiche,
+ region: Tantalus,
+}
+
+zone: {
+ system: Haiche,
+ region: Cygnus,
+}
+
+zone: {
+ system: Haiche,
+ region: "Tal Amin",
+}
+
+zone: {
+ system: Haiche,
+ region: Kala,
+}
+
+// JANUS
+
+zone: {
+ system: Janus,
+ region: Dante,
+}
+
+zone: {
+ system: Janus,
+ region: Janek,
+ region: "Janek Station",
+}
+
+zone: {
+ system: Janus,
+ region: Alystra,
+ region: Navara,
+}
+
+zone: {
+ system: Janus,
+ region: Dante,
+}
+
+// BOROVA
+
+zone: {
+ system: Borova,
+ region: Talistar,
+}
+
+zone: {
+ system: Borova,
+ region: Maraner,
+}
+
+zone: {
+ system: Borova,
+ region: Borova,
+}
+
+zone: {
+ system: Borova,
+ region: Danova,
+}
+
+zone: {
+ system: Borova,
+ region: Zhalisal,
+}
+
+zone: {
+ system: Borova,
+ region: Tulkas,
+}
+
+// JARNELL
+
+zone: {
+ system: Jarnell,
+ region: Adonai,
+}
+
+zone: {
+ system: Jarnell,
+ region: Jarnell,
+}
+
+zone: {
+ system: Jarnell,
+ region: Caladan,
+}
+
+zone: {
+ system: Jarnell,
+ region: Dawn,
+}
+
+// ATHENAR
+
+zone: {
+ system: Athenar,
+ region: Athenar,
+}
+
+zone: {
+ system: Athenar,
+ region: Pallas,
+}
+
+
diff --git a/data/shatter/Campaigns/04/Actions/01-campaign-start.txt b/data/shatter/Campaigns/04/Actions/01-campaign-start.txt
new file mode 100644
index 0000000..86809ff
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/01-campaign-start.txt
@@ -0,0 +1,7 @@
+JARNELL - The ink is barely dry on the cease-fire order that brought a halt to Operation Shining Fortress but Alliance Force starships are once again being sent into harm's way. The Sixth Fleet left Force Yards in Jarnell several days ago, and after proceeding along the southern route through recently-liberated Haiche, has begun operations in the Hegemony border system of Ostara. (See diagram at right)
+
+Force officials have so far downplayed the importance of this fleet engagement. "Shortly before the war began, long range scouts detected a secret Hegemony base in the Ostara system, near the planet Aram. In the interest of establishing a safe buffer zone for the Haiche Protectorate, we are taking this opportunity to encourage those forces to return to the core Hegemony worlds," Force:Space Fleet Commander A. Evars was quoted as saying.
+
+Independent military analysts at the prestigious Wiggen Institute think-tank have observed that another Alliance fleet is also being prepared in the Paragon system. "Having two additional expeditionary fleets in operation right now strongly suggests that Force is preparing for a wider conflict in the near future," said Chu Vo of the institute.
+
+Force:Command joint chiefs declined to comment on speculations that a major offensive was being planned against the middle Hegemony systems. "I have no information on that subject that I can share with you at the present time," said Evars. \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/02-borovan-archaelith.txt b/data/shatter/Campaigns/04/Actions/02-borovan-archaelith.txt
new file mode 100644
index 0000000..3a7f787
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/02-borovan-archaelith.txt
@@ -0,0 +1,11 @@
+VESTAPOL, BOROVA - Museum of Precolonial Antiquities
+
+Sifting through the debris and damage left behind by the Hegemony attack has been an arduous process for museum curator Josef Severn. Large portions of the museum complex were leveled by plasma weapons used during the fighting, and advanced scientific intrustments have been needed to sort out fragments of ancient artifacts from the scattered pieces of the walls and display cases that once housed them. After weeks of painstaking work, most of the museum's collection of antiquities have been identified. However, the Borovan Archaelith remains among the missing.
+
+The Museum of Precolonial Antiquities was established sixty years ago by the Borovan Government to preserve and research xeno-archaelogical discoveries on the Baradan Peninsula. The Museum specializes in the ancient artifacts of the unknown "Precursor" civilization that inhabited the Blue Drift Region some eight million years ago. Little is known about the Precursor species, and only a few of their technological works have survived the eight thousand millenia since their demise.
+
+The Borovan Archaelith is the oldest and most complete artifact in the museum collection. The object is a perfect black crystal, almost half a meter in length. To the naked eye, the Archaelith appears to be a smooth hexagonal prism. However, deep sonic imaging has revealed a surprisingly complex inner structure of facets and fissures of unknown purpose.
+
+When the museum clean-up process began to recover fragments of the other Precursor artifacts, there was initial hope that the Archaelith might be recovered intact. The ancient crystal had been removed from public display and taken to a scanning laboratory in a separate part of the museum only hours before the attack began. The scanning facility was heavily sheltered to prevent ambient radiation from interfering with the sensitive tests, and this served to protect the laboratory from the worst damage of the heavy plasma weapons.
+
+However, it now appears that some Hegemony ground forces may have entered the laboratory wing of the museum during the battle. Much of the equipment in the area was destroyed by small arms fire, and several rooms were forcibly entered. The Hegemony has officially denied removing any of the ancient artifacts from the museum or laboratories. But today, weeks after the fighting has ended, the location of the Borovan Archaelith remains a mystery. \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/03-technite-found.txt b/data/shatter/Campaigns/04/Actions/03-technite-found.txt
new file mode 100644
index 0000000..f397d75
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/03-technite-found.txt
@@ -0,0 +1,19 @@
+*************************************
+*** FLASH CODED +$TIME
+*** TECHNITE FOUND ON HAICHE
+*** TANTALUS SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Traces of Technite Discovered on Tantalus Mining Station
+
+Force:Intel field agents involved in clean-up and security operations at Tantalus Mining Station on Haiche have reported detecting traces of Technite in unprocessed ores stockpiled at the refinery. Technite does not occur naturally on Haiche, or any other known planet in the periphery. Neither the Alliance nor the Hegemony have found a way to synthesize it. The only known sources of the material are archaic; trace deposits were found on Borova on the Baradan Peninsula near the Precursor discoveries.
+
+Further analysis of the ore and the recovered mining equipment from Tantalus Station suggests that the site contained only small amounts of rare earth metals of any value. It seems unlikely that the Hegemony would risk an illegal mining operation to recover such small amounts of tantalum and iridium. It appears that Tantalus Mining Station was specifically tasked with recovering technite from Haiche. It is presently impossible to determine how much technite was extracted, refined, and shipped off planet prior to Force capture of the planet.
+
+Force:Intel does not have an analysis of possible Hegemony motives at this time. Technite is considered a laboratory curiousity and has no known practical applications. Borovan technite deposits were of such small quantities that our best materials science expert have not yet fully classified all of its physical properties.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/04/Actions/04-zolon-ambassador.txt b/data/shatter/Campaigns/04/Actions/04-zolon-ambassador.txt
new file mode 100644
index 0000000..fa8b970
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/04-zolon-ambassador.txt
@@ -0,0 +1,17 @@
+STRATPLAN BRIEFING
+Timestamp: 02/06:00:00
+Subject: Zolon Ambassador
+Classified: SECRET R2 NTK
+
+The Zolon Ambassador to Tarsus has offered to broker peace negotiations between the Terellian Alliance and the Marakan Hegemony. The Zolons have invited representatives from both sides to meet aboard their Consular Starship in Tarsus orbit to discuss plans to de-escalate the current conflict.
+
+Militarily, this seems an unlikely plan. It is doubtful that the Hegemony is ready to make serious concessions at this time as they probably see the outcome of the war to be too hard to predict. They are still very much in this fight, and they have not yet lost any real territory to our advance.
+
+Politically however, this is not an opportunity that we can simply ignore. A diplomatic team has been dispatched from Haiche to rendezvous with Sixth Fleet. The fleet will then translate to the Tarsus system to rendezvous with the Zolon Consular Starship.
+
+Realistically, we knew we would have to invade Tarsus in force sooner or later. This development simply advances the time table and gives us an opportunity to enter the system relatively unopposed.
+
+Note that we are now operating under a flag of truce until the negotiations have concluded. Rules of Engagement: Do not fire unless you are fired upon. Stay alert. There will be plenty of Hegemony warships in the area. Anything could happen if we are not careful.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/04/Actions/05-operation-firestorm.txt b/data/shatter/Campaigns/04/Actions/05-operation-firestorm.txt
new file mode 100644
index 0000000..5c4bd8e
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/05-operation-firestorm.txt
@@ -0,0 +1,11 @@
+The PRESIDENT of the TERELLIAN ALLIANCE :
+
+My fellow citizens, once again the dark shadow of a violent foe has darkened our hope for lasting interstellar peace. Even as an Alliance diplomatic team was at work in the Tarsus system negotiating a peace treaty to end the ongoing conflict with the Hegemony, a surprise enemy attack has devestated the peace process and thrown us all even further into chaos and war. Zolon warships acting in concert with Hegemony agents have attacked the peace conference, killing our negotiating team even at the expense of destroying every member of the Zolon Consulate in Tarsus.
+
+Even more disturbing, we have confirmed reports from Force:Intelligence, combined with information provided by the Ele'aan Ambassador that lead us to only one conclusion. The recent Hegemony attacks on Alliance territory were carried out with the specific intention of recovering ancient artifacts and rare materials for use in developing a devestating new type of weapon. The Ele'aan Ambassador has informed us that the Hegemony military are working with scientists of the Zolon Empire to use the Borovan Archaelith to process Technite to create a "Quantum Disruptor" that will destroy computer systems and render even our strongest warships incapable of faster-than-light travel.
+
+Within the past hour, this office has received the official declaration of war by the combined systems of the Marakan Hegemony. Our response is simple. Though now as ever we have no interest in conquest, we shall meet every enemy with strength, every treason with vengeance, every attack with justice.
+
+And so, however reluctantly, I hereby order Force to commence OPERATION FIRESTORM: all out war with the Marakan Hegemony. Once more we shall take up arms against agression. Once more, our brave men and women shall pass through the gauntlet of hardship and danger to emerge victorious and proud. Once more unto the breach, for honor, for courage, and enduring freedom.
+
+Thank you, and good evening. \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/06-strategy.txt b/data/shatter/Campaigns/04/Actions/06-strategy.txt
new file mode 100644
index 0000000..9acb718
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/06-strategy.txt
@@ -0,0 +1,15 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Operation Firestorm
+Classified: SECRET R3 NTK
+
+Our strategic plan for Operation Firestorm is to employ the Sixth and Seventh Fleets as two arms in a giant pincer maneuver. The Sixth Fleet is currently deployed in the southern systems. By proceding from Haiche to Ostara to Tarsus, we have effectively flanked the heavier concentration of Hegemony firepower in the Kolchev system. The Seventh Fleet is already in Silessia on its way to the Loris system in the north. Once Loris is secure, the Seventh Fleet will proceed south to Korius and Adantar. Additional Fleets will then become available to backfill and secure the territory we have won.
+
+For those of you in the Sixth Fleet, we expect Tarsus to be an easy victory. The system is isolated and not well defended. However, the Kolchev system will be no pushover. There is a major Hegemony starbase in the northern mountains of Lovo Sector on Kolchev, and we expect their star fleet to fall back and regroup in that system as soon as we begin to gain the upper hand in Tarsus.
+
+Finally, it looks like we will have to watch out for Zolon involvement after all. Zolon fighters and cruisers played a key role in eliminating the peace conference and escalating the war. Unfortunately, we have very little information on their capabilities. Reports from officers who engaged them in the Tarsus system suggest that their ships are very tough and have weapons at least the equal of our own. They also seem to have developed some new type of faster than light drive. We assume that is operates on a principle entirely different than our own quantum drives. Even their smallest fighters have independent FTL capability, so they can both run and fight.
+
+Well, we have a job to do. Stay sharp out there.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/04/Actions/07-Loris-Collapse.txt b/data/shatter/Campaigns/04/Actions/07-Loris-Collapse.txt
new file mode 100644
index 0000000..0e05f49
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/07-Loris-Collapse.txt
@@ -0,0 +1,19 @@
+*************************************
+*** FLASH CODED +$TIME
+*** LORIS GOVERNMENT COLLAPSE
+*** LORIS SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The Government of the Loris System has Collapsed.
+
+Force:Intel field agents report that the system is in a state of near-anarchy. Hegemony military losses sustained during Operation Shining Fortress have eroded popular support for the government. New demands to defend the system for Operation Firestorm have strained resources to the breaking point.
+
+The Brotherhood of Iron criminal organization saw this an opportunity to attack. The Loris Trade Secretary was assassinated and replaced, and trade enforcement was weakened as a result. Brotherhood Marauders and Raiders began preying on traffic in the outer sectors. Now, fighting has erupted throughout the entire Loris System. The government has collapsed, and Hegemony military units are attempting to control the political situation and deal with the pirates at the same time.
+
+It is unfortunate that we cannot wait for this local conflict to burn itself out before we invade the Loris system. Unfortunately, Force Seventh Fleet needs to get to the Korius system to complete the pincer strategy or the Sixth Fleet will be trapped in hostile territory. Taking control of the Loris system is quickest way to achieve that goal. And that means that both the pirates and the Hegemony warships are legal targets.
+
+---
+Jonas Devlin, Force:Intel Third Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/04/Actions/08-masil-gannet.txt b/data/shatter/Campaigns/04/Actions/08-masil-gannet.txt
new file mode 100644
index 0000000..66c7016
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/08-masil-gannet.txt
@@ -0,0 +1,7 @@
+TANIS FIELD COMMAND CENTER, ADANTAR -
+
+The Tanis Field Command Center is very well secured. Only true Dantari are ever allowed within the secret location, and only those of the inmost circle are permitted any knowledge of its location on Adantar. Rare visitors from the outside are brought to and from the command center in a state of suspended animation, and are rigorously checked for hidden recording devices and location transponders. Automatic weapons are kept trained on visitors at all times.
+
+Such is the atmosphere that surrounds the Warlord Masil Gannet. The former Solusan Senator returned to the world of his ancestors following a failed political movement to ally Solus with nearby Renser Prefecture. When he arrived here, he found the Ulset Nar political organization, originally founded by his grandfather, in a state of disarray. Gannet quickly used his wealth and political connections among ultra conservative Dantari to reform the group and setup a new base of operations in the Tanis Sector.
+
+Under Gannet's leadership, the Ulset Nar group became focused - one might even say obsessed - with establishing the supremacy of true ethnic Dantari throughout the Korius system. Although the group claims to be interested only in peaceful leadership of those willing to follow, the massive store of weapons in their desert fortress may give a deeper sense of their true aims.
diff --git a/data/shatter/Campaigns/04/Actions/09-kolchev.txt b/data/shatter/Campaigns/04/Actions/09-kolchev.txt
new file mode 100644
index 0000000..eaa9b98
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/09-kolchev.txt
@@ -0,0 +1,15 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Kolchev System
+Classified: SECRET R3 NTK
+
+As expected, the Hegemony Third Fleet has fallen back to the Kolchev system. Once it became clear that they could not contest our control of Tarsus, they elected to abandon that system in hopes that we could be drawn into a trap by attacking them where they are well defended. Of course, being aware of the trap is our first step in evading it.
+
+The Kolchev system will present some unique challenges for Force Sixth Fleet. Hegemony forces are scattered across four planetary orbits. The capital Kolchev is the only planet capable of sustaining a human population. The northern mountains of the Lovo sector on Kolchev are home to a significant military presence.
+
+Taking control of the Kolchev system will require us to choose our battles. Always engage the enemy where we can muster a local tactical advantage, and be prepared to withdraw to protect your ships if necessary. Remember that the Hegemony forces have the advantage of local supplies, while we are stretched across half the Blue Drift region.
+
+Good luck.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/04/Actions/10-korius.txt b/data/shatter/Campaigns/04/Actions/10-korius.txt
new file mode 100644
index 0000000..632758b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/10-korius.txt
@@ -0,0 +1,11 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Korius System
+Classified: SECRET R3 NTK
+
+As you know, the Korian System consists of two major planets surrounded by a sparse outer asteroid belt. The outer planet, Rhomin, is a medium gas giant with several large moons. Two of these moons sustain human populations. The larger inhabited moon is Korius, the system capital. The smaller moon is Adantar, a cold desert with a thin atmosphere.
+
+Adantar is the homeworld of the ethnic Dantari who started the Solusan conflict. In fact, there are reliable reports that the Separatist leader Masil Gannet has returned to Adantar and established himself as a local warlord. Although Adantar itself is heavily armed, we do not have any good data on the strength of space forces in the Korian system. It does not seem likely that Masil Gannet would be able to construct a new navy in the short period of time he has been in this system. At the same time, we should not underestimate his financial reserves. With that kind of personal wealth comes power and the political connections to achieve many ends.
+
+Vice Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/04/Actions/def1.txt b/data/shatter/Campaigns/04/Actions/def1.txt
new file mode 100644
index 0000000..9fe115c
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Firestorm has collapsed. The Hegemony Third Fleet has gained a tactical advantage over the Force:Space Expeditionary Force in the southern systems.
+
+The Alliance has sustained devastating losses in these attacks and has been forced to withdraw. The Sixth Fleet is attempting to fall back to safe positions within Alliance controlled space. Reinforcements are being called up from the home systems. With luck, they will arrive in time to hold off the Hegemony counter invasion and force a settlement. \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/def2.txt b/data/shatter/Campaigns/04/Actions/def2.txt
new file mode 100644
index 0000000..efaabeb
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/def2.txt
@@ -0,0 +1,9 @@
+Operation Highland has failed in its mission to secure the peace. Alliance losses
+in the Renser system have been severe, including the loss of the Fleet Carrier
+Battle Group Archon. The CEO, with the approval of the Combined Senate, has
+ordered the immediate withdrawal of all remaining Force:Space units from the
+Prefecture of Renser.
+
+At least one additional Hegemony fleet is being mobilized from the Korius System.
+We can only hope that this failure does not result in the unilateral escalation on
+the part of Hegemony forces... \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/m1-new-job.txt b/data/shatter/Campaigns/04/Actions/m1-new-job.txt
new file mode 100644
index 0000000..8426c66
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/m1-new-job.txt
@@ -0,0 +1,17 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Jonas Devlin, Force:Intel Third Directorate
+RE: NEW JOB
+-----
+PATH: FI3D HQ | Thralis Relay | Force Command Transceiver | 6TH FLEET HQ | $GROUP
+-----
+
+Hey Mate,
+
+Well, it looks like my trade scouting days are officially over. This may come as some surprise, but I've been working as a Force:Intel field agent for the past two years. I got recruited at a traders conference here in Thralis. Anyway, after that series of scrapes I went through trying to get out of the Nephrys system, my boss decided he wanted to keep me where he could see that I was in one piece. So he kicked me upstairs and made me an Analyst in Third Directorate. Now I just get to read the kinds of reports I used to submit.
+
+I guess I'm not that surprised to hear the Zolons have gotten actively involved in the fight. The Nephrys system was crawling with them when I was out there. It seems to be their main hangout in Hegemony space. Still, something seems really off about the "phony peace treaty" ruse. I can't put my finger on it, but something doesn't add up.
+
+Good luck, mate. Watch your back out there.
+
+--Jonas
diff --git a/data/shatter/Campaigns/04/Actions/m2-need-to-know.txt b/data/shatter/Campaigns/04/Actions/m2-need-to-know.txt
new file mode 100644
index 0000000..8f39cd0
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/m2-need-to-know.txt
@@ -0,0 +1,18 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: SOMETHING YOU NEED TO KNOW
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 6TH FLEET HQ | $GROUP
+-----
+
+Hello $NAME,
+
+Councilor Auris just left here to return home to Ele'aan space. The Consulate Center feels really strange with no ambassador here. He said it was just a routine trip, but I have a feeling he isn't planning on coming back. Now that he has convinced the President that the Zolons are behind this whole war, I think he feels like his job is done here.
+
+But there's more - something else you need to know. I'm afraid to discuss it on an open channel like this; I don't know who else might have access to the fleet mail feed. I think it might be really important, I don't know. I wish I could see you face to face. I'm afraid to just sit on this information, and I don't know who else I can trust.
+
+I just need someone to tell me that we are all doing the right thing...
+
+Love from
+Sara \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Actions/victory.txt b/data/shatter/Campaigns/04/Actions/victory.txt
new file mode 100644
index 0000000..08e1421
--- /dev/null
+++ b/data/shatter/Campaigns/04/Actions/victory.txt
@@ -0,0 +1,5 @@
+The Hegemony systems Kolchev and Korius have agreed to an unconditional cease fire.
+
+Force:Ground Special Ops have captured Masil Gannet's headquarters in the Tanis sector on Adantar, and recovered Gannet's body. It is believed that he was assassinated by his own forces just prior to the final raid.
+
+Force:Intel field agents have begun searching both planets for evidence of either technite processing or the stolen Borovan artifact. Now that we have military control of these systems, it is only a matter of time before this evidence is found. \ No newline at end of file
diff --git a/data/shatter/Campaigns/04/Scenes/01-Campaign-Start.def b/data/shatter/Campaigns/04/Scenes/01-Campaign-Start.def
new file mode 100644
index 0000000..43ba90a
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/01-Campaign-Start.def
@@ -0,0 +1,198 @@
+MISSION
+
+name: "Cmpn04 News01 - Campaign Start"
+type: "Patrol"
+system: "Ostara"
+system: "Paragon"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1188000000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+element: {
+ name: "Aram Station"
+ design: Station4
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Aram
+ loc: (0,0,0)
+}
+
+
+element: {
+ name: Atlas
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Aram"
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Aram", speed: 300 }
+}
+
+element: {
+ name: "Stalwart"
+ design: "Courageous"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (98e3, 311e3, 0)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Gerson"
+ design: "Asher"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (112e3, 314e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Simmons"
+ design: "Asher"
+ commander: Atlas
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (94e3, 292e3, 0)
+ navpt: { cmd: Vector, loc: (84e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+
+
+
+
+element: {
+ name: "Heracles"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (100e3, 100e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Paragon", speed: 300 }
+}
+
+element: {
+ name: "Forthright"
+ design: "Courageous"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (106e3, 101e3, 0)
+ navpt: { cmd: Vector, loc: (110e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+element: {
+ name: "Arthur",
+ design: "Asher"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (116e3, 94e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+element: {
+ name: "Smith"
+ design: "Asher"
+ commander: "Heracles"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Paragon
+ loc: (97e3, 97e3, 0)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 0), rgn: "Paragon", speed: 600 }
+}
+
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1,0,1.8e7) }
+event: { event: Camera, param: 5, vec: (0.11, 0.015, 0.05) }
+
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Messasge, sound: "Vox/Scenes/04/News_01_Campaign_Start.ogg" }
+
+
+event: { event: Display, time: 15, image: "Campaigns/04/Scenes/Map.pcx", color: 0xffffffff, fade: (1,12,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Aram Station", vec: (0.7,0.1,38e3) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.01) }
+
+
+event: { event: Camera, time: 45, param: (6, 30), target: "Atlas" }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 65, param: (6, 35), target: "Forthright" }
+event: { event: Display, message: "Force:Space Seventh Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "11th Carrier Group 'Heracles'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 92, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/02-Borovan-Archaelith.def b/data/shatter/Campaigns/04/Scenes/02-Borovan-Archaelith.def
new file mode 100644
index 0000000..8d06d28
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/02-Borovan-Archaelith.def
@@ -0,0 +1,174 @@
+MISSION
+
+name: "Cmpn04 News02 - Borovan Archaelith"
+type: "Patrol"
+system: "Museum"
+system: "Borova"
+region: "Borova"
+stardate: 1188022555.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Borova
+}
+
+element: {
+ name: "Downtown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-10e3, 0, 0)
+}
+
+element: {
+ name: "Crosstown"
+ design: "City03"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-16e3, 5e3, 0)
+ head: 270
+}
+
+element: {
+ name: "Fort Talden 1"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -10e3, 0)
+}
+
+element: {
+ name: "Fort Talden 2"
+ design: "Bldg00"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-25e3, -10e3, 0)
+}
+
+element: {
+ name: "Barracks 1"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-22e3, -12e3, 0)
+}
+
+element: {
+ name: "Barracks 2"
+ design: "Bldg05"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-24e3, -12e3, 0)
+}
+
+element: {
+ name: "Museum"
+ design: "Bldg01"
+ mission: "Misc"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: "Vestapol"
+ loc: (-8500, -1e3, 0)
+}
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,5,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Borova", vec: (1,0,1.5e7) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, 0.03) }
+
+event: { event: Display, time: 5, message: "Borovan Republic", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+event: { event: Message, sound: "Vox/Scenes/04/News_02_Borovan_Archaelith.ogg" }
+
+
+
+event: { event: Camera, time: 35, param: 3, target: "Archaelith", vec: (1.00, 0.100, 220) }
+event: { event: Camera, param: 5, vec: (0.12, 0.015, -0.02) }
+event: { event: Display, message: "Borovan Archaelith", font: Limerick18, color: 0xff202020, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "File Footage", font: Limerick12, color: 0xff202020, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 60, param: 3, target: "Museum", vec: (-0.77, 0.17, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Vestapol", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Museum District", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 90, param: 3, target: "Archaelith", vec: (3.00, 0.2, 170) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.02) }
+
+
+event: { event: EndScene, time: 105, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/03-Technite-Found.def b/data/shatter/Campaigns/04/Scenes/03-Technite-Found.def
new file mode 100644
index 0000000..65cd43e
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/03-Technite-Found.def
@@ -0,0 +1,211 @@
+MISSION
+
+name: "Cmpn04 Brief 03 - Technite"
+type: "Patrol"
+system: Haiche
+region: Haiche
+stardate: 1188008811.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Haiche", vec: (2, -0.15, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,250), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** TECHNITE FOUND ON HAICHE\n*** TANTALUS SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/Briefing_03_sam.ogg" }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tantalus Mining Station", vec: (0,0.005,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Downtown", vec: (1,0.005,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+
+event: { event: EndScene, time: 82, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/04-Zolon-Ambassador.def b/data/shatter/Campaigns/04/Scenes/04-Zolon-Ambassador.def
new file mode 100644
index 0000000..38bf64b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/04-Zolon-Ambassador.def
@@ -0,0 +1,154 @@
+MISSION
+
+name: "Cmpn04 Brief 04 - Zolon Ambassador"
+type: "Patrol"
+system: Haiche
+system: Ostara
+system: Tarsus
+region: Tarsus
+stardate: 1188009977.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Zolon Ambassador"
+ design: ZZCS
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ loc: (0, 0, 0)
+ rgn: Tarsus
+ navpt: { cmd: Vector, loc: (100e3, -200e3, 20e3), rgn: Tarsus }
+}
+
+
+
+element: {
+ name: Consul
+ design: Transport
+ mission: Misc
+ invulnerable: true
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Haiche
+ navpt: { cmd: Vector, loc: (0,-50e3,0), rgn: Haiche, speed: 500 }
+}
+
+
+
+element: {
+ name: Atlas
+ design: "Orion"
+ mission: "Flight Ops"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Aram"
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: "Aram", speed: 300 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (98e3, 311e3, 0)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (112e3, 314e3, 0)
+ navpt: { cmd: Vector, loc: (122e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Aram
+ loc: (94e3, 292e3, 0)
+ navpt: { cmd: Vector, loc: (84e3, -70e3, 0), rgn: "Aram", speed: 600 }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Tarsus I", vec: (2, -0.15, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Zolon Ambassador\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B04-OK.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6,30), target: "Zolon Ambassador" }
+event: { event: Display, message: "Zolon Consular Starship", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tarsus Orbit", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+
+event: { event: Camera, time: 30, param: (6,30), target: "Consul" }
+event: { event: Display, message: "Alliance Diplomatic Corps", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "En Route to Sixth Fleet", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Atlas", vec: (-2, 0.1, 25e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Ostara System", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/05-Operation-Firestorm.def b/data/shatter/Campaigns/04/Scenes/05-Operation-Firestorm.def
new file mode 100644
index 0000000..3837f58
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/05-Operation-Firestorm.def
@@ -0,0 +1,239 @@
+MISSION
+
+name: "Cmpn04 News05 - Operation Firestorm"
+type: "Patrol"
+system: "Janus"
+system: "Museum"
+system: "Tarsus"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155670000.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+
+element: {
+ name: "Atlas"
+ design: "Orion"
+ mission: "Flight Ops"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Tarsus"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Tarsus", speed: 300 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (0, 0, 1e3)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (-5e3, 0, -2e3)
+ navpt: { cmd: Vector, loc: (-5e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (14e3, 0, 3e3)
+ navpt: { cmd: Vector, loc: (14e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Sentry"
+ design: "Falcon"
+ commander: "Atlas"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Tarsus
+ loc: (18e3, -18e3, -2e3)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+ navpt: { cmd: Vector, loc: (20e3,-50e3, 0), rgn: Tarsus }
+}
+
+element: {
+ name: "Victor"
+ design: "Stormhawk"
+ commander: "Atlas"
+ mission: "Patrol"
+
+ intel: "Known"
+ count: 4
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Tarsus
+ loc: (-6e3, -23e3, 3e3)
+
+ loadout: { ship: -1, name: "ACM Medium Range" }
+ navpt: { cmd: Vector, loc: (-10e3,-50e3, 0), rgn: Tarsus }
+}
+
+
+
+
+
+element: {
+ name: Morningstar
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (52e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+element: {
+ name: Crossbow
+ design: Broadsword
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (70e3, -58e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+element: {
+ name: Gunston
+ design: Tiger
+ mission: Fleet
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 2
+ region: Tarsus
+ loc: (68e3, -44e3, 0)
+ head: 180
+ navpt: { cmd: Assault, tgt: Loyalty, loc: (0,0,0), rgn: Tarsus }
+}
+
+
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ intel: Secret
+ iff: 0
+ count: 1
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (2,0,1.5e7) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, 0.01) }
+event: { event: Display, message: "The PRESIDENT of the TERELLIAN ALLIANCE", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,300) }
+
+event: { event: Messasge, time: 3, sound: "Vox/Scenes/04/News_05_Operation_Firestorm.ogg" }
+
+
+event: { event: Camera, time: 10, param: (6, 40), target: "Morningstar", vec: (300,0,1200) }
+event: { event: Display, message: "Hegemony Forces", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Tarsus System", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 25, param: (6, 15), target: "Victor 1" }
+
+event: { event: Camera, time: 35, param: (6, 15), target: "Sentry 1" }
+
+
+event: { event: Camera, time: 45, param: (6, 40), target: "Atlas", vec: (0,0,1800) }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 70, param: 3, target: "Archaelith", vec: (3.00, 0.05, 170) }
+event: { event: Camera, param: 5, vec: (0.12, 0.01, -0.02) }
+event: { event: Display, message: "Borovan Archaelith", font: Limerick18, color: 0xff202020, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "File Footage", font: Limerick12, color: 0xff202020, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 90, param: 3, target: "Atlas", vec: (-3, 0, 18e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Camera, time: 110, param: (6, 25), target: "Vernor" }
+
+event: { event: Camera, time: 125, param: (6, 25), target: "Nichols" }
+
+
+event: { event: Camera, time: 140, param: 3, target: "Atlas", vec: (3, -0.2, 10e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.02, -0.01) }
+
+
+event: { event: EndScene, time: 155, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/06-Strategy.def b/data/shatter/Campaigns/04/Scenes/06-Strategy.def
new file mode 100644
index 0000000..43d00b2
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/06-Strategy.def
@@ -0,0 +1,181 @@
+MISSION
+
+name: "Cmpn04 Brief06 - Strategy"
+type: "Patrol"
+system: "Loris"
+system: "Tarsus"
+system: "Jarnell"
+region: "Jarnell"
+stardate: 1155773311.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+}
+
+
+element: {
+ name: "Force:Space HQ"
+ design: Station1
+ mission: Misc
+
+ count: 1
+ iff: 1
+ loc: (0, 0, 0)
+ rgn: Jarnell
+ head: 90
+}
+
+
+
+element: {
+ name: "Atlas"
+ design: "Orion"
+ mission: "Flight Ops"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: "Tarsus"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Tarsus", speed: 400 }
+}
+
+element: {
+ name: "Loyalty"
+ design: "Courageous"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (0, 0, 1e3)
+ navpt: { cmd: Vector, loc: (0, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Vernor"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (-5e3, 0, -2e3)
+ navpt: { cmd: Vector, loc: (-5e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+element: {
+ name: "Nichols"
+ design: "Asher"
+ commander: "Atlas"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 1
+ region: Tarsus
+ loc: (14e3, 0, 3e3)
+ navpt: { cmd: Vector, loc: (14e3, -70e3, 0), rgn: "Tarsus", speed: 600 }
+}
+
+
+
+
+element: {
+ name: "Z1"
+ design: "ZZDD"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 1
+ command_ai:1
+ iff: 0
+ region: "Theramin"
+ loc: (10e3, 0, 0)
+ navpt: { cmd: Vector, loc: (10e3, -70e3, 0), rgn: "Theramin", speed: 500 }
+}
+
+
+
+
+element: {
+ name: "Z2"
+ design: "ZZA"
+ mission: "Fleet"
+ invulnerable: true
+
+ intel: "Secret"
+ count: 3
+ command_ai:1
+ iff: 0
+ region: "Theramin"
+ loc: (30e3, 0, 0)
+ navpt: { cmd: Vector, loc: (30e3, -70e3, 0), rgn: "Theramin", speed: 900 }
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "Force:Space HQ", vec: (-2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Operation Firestorm\nClassified: SECRET R3 NTK" }
+
+event: { event: Messasge, time: 3, sound: "Vox/Scenes/04/C4-B06-OK.ogg" }
+
+event: { event: Display, time: 5, image: "Campaigns/04/Scenes/Strat.pcx", color: 0xffffffff, fade: (1,9,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 22, param: 3, target: "body:Loris", vec: (2, -0.2, 2e7) }
+event: { event: Camera, param: 5, vec: (0.09, 0.007, -0.005) }
+event: { event: Display, message: "Loris System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Marakan Hegemony", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: (6, 30), target: "Atlas" }
+event: { event: Display, message: "Force:Space Sixth Fleet", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "9th Carrier Group 'Atlas'", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 50, param: (6, 30), target: "Z1" }
+
+event: { event: Camera, time: 65, param: (6, 20), target: "Z2" }
+
+event: { event: Camera, time: 80, param: 3, target: "Force:Space HQ", vec: ( 2, 0.1, 5e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, 0.01) }
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/07-Loris-Collapse.def b/data/shatter/Campaigns/04/Scenes/07-Loris-Collapse.def
new file mode 100644
index 0000000..9c3dcac
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/07-Loris-Collapse.def
@@ -0,0 +1,146 @@
+MISSION
+
+name: "Cmpn04 Brief07 - Loris"
+type: "Patrol"
+system: Loris
+region: Loris
+stardate: 1177553311.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (1e3, 30e3, 0)
+}
+
+
+// HEGEMONY 17TH BATTLE GROUP 'INTRUDER'
+
+element: {
+ name: Royale
+ design: Imperial
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Loris
+ loc: (12e3, 15e3, 2e3)
+ head: 90
+ navpt: { cmd: Vector, loc: (78e3, -70e3, 2e3), rgn: Loris, speed: 600 }
+}
+
+
+element: {
+ name: "Merin Asgar"
+ design: Volnaris
+ mission: Fleet
+
+ intel: Secret
+ count: 1
+ command_ai:1
+ iff: 0
+ region: Loris
+ loc: (25e3, 13e3, -1e3)
+ head: 90
+ navpt: { cmd: Vector, loc: (87e3, -90e3, -1e3), rgn: Loris, speed: 600 }
+}
+
+
+// CIVILIAN FREIGHT TRAFFIC
+
+element: {
+ name: Cargo
+ design: IM3500
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (23e3, 50e3, 0)
+ rgn: Casalle
+ navpt: { cmd: Vector, loc: (23e3,-50e3,0), rgn: Casalle, speed: 500 }
+}
+
+
+element: {
+ name: Tanker
+ design: IM1912
+ mission: Misc
+
+ count: 1
+ iff: 0
+ loc: (21e3, 51e3, 60)
+ rgn: Casalle
+ navpt: { cmd: Vector, loc: (20e3,-50e3,60), rgn: Casalle, speed: 500 }
+}
+
+element: {
+ name: Cutlass
+ design: Cutlass
+ iff: 3
+ count: 4
+ intel: Secret
+ loc: (10e3,20e3,0)
+ rgn: Casalle
+ navpt: { cmd: Assault, tgt: Tanker, loc: (20e3, 45e3, 0), rgn: Casalle, speed: 1000 }
+}
+
+element: {
+ name: Marauder
+ design: Marauder
+ iff: 3
+ count: 1
+ intel: Secret
+ loc: (-30e3, -40e3, 2e3)
+ navpt: { cmd: Vector, loc: (20e3, 40e3,0), rgn: Casalle, speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,1,1), rect: (0,0,0,0) }
+
+event: { event: Camera, param: 3, target: "body:Loris", vec: (5, -0.15, 2.2e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME\n*** LORIS GOVERNMENT COLLAPSE\n*** LORIS SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/Briefing_07_Loris_Collapse.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Casalle", vec: (0, -0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.15, 0.01, 0.02) }
+event: { event: Display, fade: (1,3,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Casalle Sector" }
+
+event: { event: Camera, time: 15, param: (6,90), target: "Tanker" }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Civilian Freight Traffic" }
+
+
+event: { event: Camera, time: 25, param: (6,25), target: "Cutlass 1" }
+event: { event: Display, fade: (1,7,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Brotherhood of Iron Fighters" }
+
+
+event: { event: Camera, time: 37, param: (6,17), target: "Marauder" }
+
+
+event: { event: Camera, time: 50, param: (6,30), target: "Royale" }
+
+event: { event: EndScene, time: 77, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/08-Masil-Gannet.def b/data/shatter/Campaigns/04/Scenes/08-Masil-Gannet.def
new file mode 100644
index 0000000..ccfb6e0
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/08-Masil-Gannet.def
@@ -0,0 +1,171 @@
+MISSION
+
+name: "Cmpn04 News08 - Masil Gannet"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1177889900.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tanis Base"
+ design: "Airbase3"
+ count: 1
+ iff: 2
+ region: Tanis
+ loc: (-54e3, 5e3, 0)
+}
+
+element: {
+ name: "Tanis Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (0, -67e3, 0)
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (3e3, -70e3, 0)
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (-4e3, -67e3, 0)
+}
+
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (5e3, -67e3, 0)
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (9e3, -9e3, 0)
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (10e3, -12e3, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -3e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -1e3, 0)
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/04/Scenes/News.pcx", color: 0xffffffff, fade: (1,4,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (2, -0.15, 2.1e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.015, -0.015) }
+
+event: { event: Display, time: 4, message: "Adantar Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Korius System", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+
+event: { event: Message, time: 5, sound: "Vox/Scenes/04/News_08_Masil_Gannet.ogg" }
+
+
+
+event: { event: Camera, time: 10, param: 3, target: "Tanis Mining Station", vec: (0,0.05,9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+
+
+event: { event: Camera, time: 30, param: 3, target: "Downtown", vec: (1,0.1,7e3) }
+event: { event: Camera, param: 5, vec: (0.06, 0.007, 0.01) }
+
+
+
+event: { event: Camera, time: 50, param: 3, target: "Tanis Base", vec: (3,0.125,7e3) }
+event: { event: Camera, param: 5, vec: (0.05, 0.007, 0.01) }
+
+
+
+
+event: { event: Camera, time: 70, param: 3, target: "SAM 1", vec: (1,0.320,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "AAA 1", vec: (2,0.365,7e3) }
+event: { event: Camera, param: 5, vec: (-0.10, 0.007, 0.01) }
+
+
+
+event: { event: EndScene, time: 90, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/09-Kolchev.def b/data/shatter/Campaigns/04/Scenes/09-Kolchev.def
new file mode 100644
index 0000000..bcc65f9
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/09-Kolchev.def
@@ -0,0 +1,115 @@
+MISSION
+
+name: "Cmpn04 Brief09 - Kolchev"
+type: "Patrol"
+system: "Kolchev"
+region: "Kolchev"
+stardate: 1177883311.0
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+ invulnerable: true
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (0, 0, 0)
+ rgn: Kolchev
+}
+
+
+element: {
+ name: Gryphon
+ design: Dragon
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Kolchev, speed: 500 }
+}
+
+element: {
+ name: "Gol Duvain"
+ design: Volnaris
+ iff: 0
+ loc: (23e3, 0, 0)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (24e3, -100e3, 0), rgn: Kolchev, speed: 700 }
+}
+
+element: {
+ name: "Tol Branta"
+ design: Volnaris
+ iff: 0
+ loc: (18e3, 0, -2e3)
+ rgn: Kolchev
+ navpt: { cmd: Vector, loc: (15e3, -100e3, -2e3), rgn: Kolchev, speed: 600 }
+}
+
+
+element: {
+ name: Wrath
+ design: Vendetta
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Anatoly
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Anatoly, speed: 600 }
+}
+
+
+element: {
+ name: Narom
+ design: Raptor
+ iff: 0
+ count: 4
+ loc: (20e3, 0, 0)
+ rgn: Volova
+ navpt: { cmd: Vector, loc: (220e3, -100e3, 0), rgn: Volova, speed: 700 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Kolchev", vec: (-2, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Kolchev System\nClassified: SECRET R3 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B09-OK.ogg" }
+
+event: { event: Camera, time: 12, param: (6,13), target: "Gryphon" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Kolchev Sector" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "body:Ilya", vec: (5, 0.1, 1.8e7) }
+event: { event: Camera, param: 5, vec: (0.1, 0.007, -0.01) }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Ilya Sector" }
+event: { event: Display, fade: (1,5,1), rect: (20,40, 300,100), font: Limerick12, color: 0xffffff80,
+ message: "Kolchev System" }
+
+
+event: { event: Camera, time: 35, param: (6,20), target: "Narom 1" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 48, param: (6,20), target: "Wrath" }
+event: { event: Display, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffff80,
+ message: "Anatoly Sector" }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/10-Korius.def b/data/shatter/Campaigns/04/Scenes/10-Korius.def
new file mode 100644
index 0000000..4ad4653
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/10-Korius.def
@@ -0,0 +1,190 @@
+MISSION
+
+name: "Cmpn04 Brief10 - Korius"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1178019500
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Tanis Base"
+ design: "Airbase3"
+ count: 1
+ iff: 2
+ region: Tanis
+ loc: (-54e3, 5e3, 0)
+}
+
+element: {
+ name: "Tanis Mining Station",
+ design: "Dsrt05",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (0, -67e3, 0)
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (3e3, -70e3, 0)
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (-4e3, -67e3, 0)
+}
+
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (5e3, -67e3, 0)
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (9e3, -9e3, 0)
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tanis",
+ loc: (10e3, -12e3, 0)
+}
+
+
+element: {
+ name: "SAM 1"
+ design: "SAM 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -3e3, 0)
+}
+
+element: {
+ name: "AAA 1"
+ design: "AAA 1"
+ count: 1
+ iff: 2
+ region: "Tanis"
+ loc: (-60e3, -1e3, 0)
+}
+
+
+element: {
+ name: "Gannet"
+ design: "Viper"
+ count: 4
+ iff: 2
+ region: "Tanis"
+ loc: (-54e3, 5e3, 7e3)
+ navpt: { cmd: Vector, loc: (0, 0, 8e3), rgn: Tanis, speed: 500 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+
+element: {
+ name: Kinch
+ design: Wolf
+ iff: 2
+ region: Solnas
+ loc: (-54e3, 5e3, 7e3)
+ navpt: { cmd: Vector, loc: (0, 0, 8e3), rgn: Solnas, speed: 500 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Rhomin", vec: (-2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Kolchev System\nClassified: SECRET R3 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/04/C4-B10-OK.ogg" }
+
+event: { event: Camera, time: 10, param: 3, target: "body:Korius", vec: (-2, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Korius Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+
+event: { event: Camera, time: 18, param: 3, target: "body:Adantar", vec: ( 3, 0.1, 2e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+
+event: { event: Display, message: "Adantar Sector", font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Korius System", font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 30, param: 3, target: "Tanis Mining Station", vec: (3,0.155,7e3) }
+event: { event: Camera, param: 5, vec: (0.07, 0.007, 0.01) }
+
+event: { event: Camera, time: 38, param: 3, target: "Tanis Base", vec: (3,0.255,7e3) }
+event: { event: Camera, param: 5, vec: (0.08, 0.007, 0.01) }
+
+
+event: { event: Camera, time: 45, param: (6,20), target: "Gannet 1" }
+
+
+event: { event: Camera, time: 55, param: 3, target: "Kinch", vec: (3,-0.05,25e3) }
+event: { event: Camera, param: 5, vec: (0.08, 0.007, 0.01) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/Defeat1.def b/data/shatter/Campaigns/04/Scenes/Defeat1.def
new file mode 100644
index 0000000..38c78eb
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/Defeat1.def
@@ -0,0 +1,76 @@
+MISSION
+
+name: "Cmpn 04 Defeat 01"
+type: "Patrol"
+system: "Ostara"
+region: "Aram"
+stardate: 1177998877
+
+element: {
+ name: Falcon
+ design: CameraPod
+ count: 1
+ iff: 0
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ iff: 2
+ loc: (8e3,2e3,0)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (9e3,-100e3, 0), rgn: Aram, speed: 500 }
+}
+
+element: {
+ name: Avenger
+ design: Avenger
+ count: 4
+ iff: 2
+ loc: (34e3,6e3,200)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (35e3,-100e3,300), rgn: Aram, speed: 1000 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ count: 1
+ command_ai:1
+ iff: 2
+ loc: (-20e3,-100e3,0)
+ rgn: Aram
+ navpt: { cmd: Vector, loc: (-20e3, 100e3,0), rgn: Aram, speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Aram", vec: (1,0.3,1.2e6) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,22), target: Volnaris }
+
+event: { event: Camera, time: 20, param: (6,15), target: "Avenger 1" }
+
+event: { event: Camera, time: 30, param: (6,32), target: Vendetta }
+
+event: { event: Display, time: 38, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/Defeat2.def b/data/shatter/Campaigns/04/Scenes/Defeat2.def
new file mode 100644
index 0000000..f4e4333
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/Defeat2.def
@@ -0,0 +1,86 @@
+MISSION
+
+name: "Cmpn 04 Defeat 02"
+type: "Patrol"
+system: Korius
+region: Adantar
+stardate: 1177998877
+
+element: {
+ name: Falcon
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Heracles
+ design: Orion
+ iff: 1
+ loc: (0, -30e3, 0)
+ rgn: Adantar
+ navpt: { cmd: Vector, loc: (-25e3, -100e3, 0), rgn: Adantar, speed: 780 }
+}
+
+element: {
+ name: Devastator
+ design: Devastator
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Adantar
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,20), target: Vendetta }
+
+event: { event: Camera, time: 20, param: (6,11), target: Heracles }
+event: { event: Damage, time: 22, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 24, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 25, param: 1e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 27, param: 1e4, ship: Heracles, target: Heracles }
+
+event: { event: Camera, time: 30, param: 3, target: Devastator, vec: (2,0,5e3) }
+event: { event: Camera, param: 5, vec: (0.1,0,0) }
+
+event: { event: Damage, time: 32, param: 1e9, ship: Heracles, target: Heracles }
+
+event: { event: Display, time: 43, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/M1-New-Job.def b/data/shatter/Campaigns/04/Scenes/M1-New-Job.def
new file mode 100644
index 0000000..8bce735
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/M1-New-Job.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 04 Mail 01"
+type: "Patrol"
+system: "Thralis"
+region: "Thrale"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,73,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,60,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Jonas Devlin, Force:Intel Third Directorate\nRE: NEW JOB\n-----\nPATH: FI3D HQ | Thralis Relay | Force Command Transceiver | 6TH FLEET HQ | $GROUP\n-----" }
+
+event: { event: Display, time: 5, fade: (0,60,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hey Mate\n\nWell, it looks like my trade scouting days are officially over. This may come as some surprise, but I've been working as a Force:Intel field agent for the past two years. I got recruited at a traders conference here in Thralis. Anyway, after that series of scrapes I went through trying to get out of the Nephrys system, my boss decided he wanted to keep me where he could see that I was in one piece. So he kicked me upstairs and made me an Analyst in Third Directorate. Now I just get to read the kinds of reports I used to submit.\n\nI guess I'm not that surprised to hear the Zolons have gotten actively involved in the fight. The Nephrys system was crawling with them when I was out there. It seems to be their main hangout in Hegemony space. Still, something seems really off about the "phony peace treaty" ruse. I can't put my finger on it, but something doesn't add up.\n\nGood luck, mate. Watch your back out there.\n\n--Jonas" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/04/Mail_01_New_Job.ogg"
+}
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/M2-Need-to-Know.def b/data/shatter/Campaigns/04/Scenes/M2-Need-to-Know.def
new file mode 100644
index 0000000..11d90df
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/M2-Need-to-Know.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 03 Mail 02"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: SOMETHING YOU NEED TO KNOW\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 6TH FLEET HQ |$GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nCouncilor Auris just left here to return home to Ele'aan space. The Consulate Center feels really strange with no ambassador here. He said it was just a routine trip, but I have a feeling he isn't planning on coming back. Now that he has convinced the President that the Zolons are behind this whole war, I think he feels like his job is done here.\n\nBut there's more - something else you need to know. I'm afraid to discuss it on an open channel like this; I don't know who else might have access to the fleet mail feed. I think it might be really important, I don't know. I wish I could see you face to face. I'm afraid to just sit on this information, and I don't know who else I can trust.\n\nI just need someone to tell me that we are all doing the right thing...\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/04/Mail_02_Something_you_need_to_know.ogg"
+}
+
+
+event: { event: EndScene, time: 70, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scenes/Victory1.def b/data/shatter/Campaigns/04/Scenes/Victory1.def
new file mode 100644
index 0000000..11f40ca
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scenes/Victory1.def
@@ -0,0 +1,89 @@
+MISSION
+
+name: "Cmpn 04 Victory"
+type: "Patrol"
+system: "Korius"
+region: "Adantar"
+stardate: 1177998877
+
+element: {
+ name: Falcon
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Heracles"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Adantar }
+}
+
+element: {
+ name: "Forthright"
+ design: "Courageous"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-135e3, 158e3, -550)
+ navpt: { cmd: Vector, loc: (-132e3,-50e3,-550), speed: 450, rgn: Adantar }
+}
+
+element: {
+ name: "Arthur"
+ design: "Asher"
+ commander: "Archon"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Adantar
+ loc: (-145e3, 162e3, -1e3)
+ navpt: { cmd: Vector, loc: (-147,-50e3,-1e3), speed: 350, rgn: Adantar }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Adantar", vec: (1,0,1.3e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Firestorm", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/04/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 15, param: (6,30), target: Heracles }
+
+event: { event: Display, time: 38, image: "Campaigns/04/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_AS_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_AS_Patrol.def
new file mode 100644
index 0000000..8d4284b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_AS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Thunderbolt,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "Well, that didn't go exactly as planned...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "All units return to base",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_Asher_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_Asher_Patrol.def
new file mode 100644
index 0000000..e355b65
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_Asher_Patrol.def
@@ -0,0 +1,473 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "So much for the peace conference, I guess...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "All units stand down.",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_BG_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_BG_Patrol.def
new file mode 100644
index 0000000..f6c9486
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_BG_Patrol.def
@@ -0,0 +1,472 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 110,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "So much for the peace conference, I guess...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 112,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "All units stand down.",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def
new file mode 100644
index 0000000..032137a
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_CVBG_Patrol.def
@@ -0,0 +1,445 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 60e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 500 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-09.ogg",
+ event_message: "All units alert: we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-10.ogg",
+ event_message: "All units: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_DS_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_DS_Patrol.def
new file mode 100644
index 0000000..9757e6b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_DS_Patrol.def
@@ -0,0 +1,473 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+alias: { name: A1, elem: "Atlas" }
+
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+
+alias: {
+ name: Player,
+ code: player,
+ mission: patrol,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-07.ogg",
+ event_message: "So much for the peace conference, I guess...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-08.ogg",
+ event_message: "All units stand down.",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_FS_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_FS_Patrol.def
new file mode 100644
index 0000000..bd9a3fe
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_FS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: "Patrol"
+system: "Tarsus"
+region: "Tarsus"
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "Well, that didn't go exactly as planned...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "All units return to base",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Scripts/Zolon_IS_Patrol.def b/data/shatter/Campaigns/04/Scripts/Zolon_IS_Patrol.def
new file mode 100644
index 0000000..9d080b8
--- /dev/null
+++ b/data/shatter/Campaigns/04/Scripts/Zolon_IS_Patrol.def
@@ -0,0 +1,488 @@
+MISSION_TEMPLATE
+
+name: "Zolon Patrol"
+type: Patrol
+system: Tarsus
+region: Tarsus
+
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+alias: { name: ZCS, elem: "Consular Starship", loc: (0,0,0) }
+alias: { name: ZD1, elem: "ZD02" }
+alias: { name: ZD2, elem: "ZD03" }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: ZF1, iff: 4 }
+callsign: { name: ZF2, iff: 4 }
+callsign: { name: ZF3, iff: 4 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 0, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 90, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, dex_var: 15e3, az: 170, az_var: 10 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: ZCS, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "suspected enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+
+// ZOLON FORCES:
+
+element: {
+ name: ZF1,
+ design: ZZF,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-20000, -25000, 0),
+}
+
+element: {
+ name: ZF2,
+ design: ZZA,
+ mission: Assault,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-30000, -25000, 0),
+}
+
+element: {
+ name: ZF3,
+ design: ZZF,
+ mission: Patrol,
+
+ intel: Secret,
+ count: 4,
+ command_ai:1,
+ iff: 4,
+ playable: false,
+ region: Theramin,
+ loc: (-40000, -25000, 0),
+}
+
+
+
+// ZOLON EVENTS:
+
+event: {
+ id: 1,
+ time: 200.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 2,
+ time: 201.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 3,
+ time: 203.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 4,
+ time: 203.5,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 5,
+ event: Objective,
+ event_ship: ZF1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF1 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF1 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF1 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF1 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+
+event: {
+ id: 11,
+ time: 220.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 12,
+ time: 221.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 13,
+ time: 223.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 14,
+ time: 223.5,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 15,
+ event: Objective,
+ event_ship: ZF2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 14,
+ delay: 2,
+}
+
+event: {
+ id: 16,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF2 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 17,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF2 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 18,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF2 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 19,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF2 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 21,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 22,
+ time: 301.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 23,
+ time: 303.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 24,
+ time: 303.5,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 26,
+ time: 0.0,
+ delay: 180.0,
+ event: Jump,
+ event_ship: "ZF3 1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 27,
+ time: 0.0,
+ delay: 181.0,
+ event: Jump,
+ event_ship: "ZF3 2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 28,
+ time: 0.0,
+ delay: 182.0,
+ event: Jump,
+ event_ship: "ZF3 3",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 29,
+ time: 0.0,
+ delay: 183.0,
+ event: Jump,
+ event_ship: "ZF3 4",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 50,
+ time: 300.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+event: {
+ id: 51,
+ time: 315.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Tarsus,
+ trigger: Time,
+}
+
+
+event: {
+ id: 52,
+ event: Objective,
+ event_ship: ZD1,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+event: {
+ id: 53,
+ event: Objective,
+ event_ship: ZD2,
+ event_param: 10,
+ event_target: ZCS,
+
+ trigger: Event,
+ trigger_param: 4,
+ delay: 2,
+}
+
+
+event: {
+ id: 54,
+ time: 0.0,
+ delay: 190.0,
+ event: Jump,
+ event_ship: "ZD1",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 55,
+ time: 0.0,
+ delay: 201.0,
+ event: Jump,
+ event_ship: "ZD2",
+ event_target: Theramin,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+
+
+event: {
+ id: 100,
+ time: 230.0,
+ event: Message,
+ sound: "Vox/Misc/A02-02.ogg",
+ event_message: "Be advised - we show several high-speed contacts inbound.",
+ event_source: A1,
+}
+
+event: {
+ id: 101,
+ time: 233.0,
+ event: Message,
+ sound: "Vox/Misc/A02-03.ogg",
+ event_message: "Contacts are unknown configuration and presumed hostile.",
+ event_source: A1,
+}
+
+event: {
+ id: 102,
+ time: 238.0,
+ event: Objective,
+ sound: "Vox/Misc/A02-04.ogg",
+ event_message: "We have new orders: Defend the Zolon Consular Starship.",
+ event_source: A1,
+ event_param: 4,
+ event_target: ZCS,
+}
+
+event: {
+ id: 110,
+ time: 0,
+ delay: 210,
+ event: Message,
+ sound: "Vox/Misc/A02-05.ogg",
+ event_message: "Well, that didn't go exactly as planned...",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+event: {
+ id: 111,
+ time: 0,
+ delay: 212,
+ event: Message,
+ sound: "Vox/Misc/A02-06.ogg",
+ event_message: "All units return to base",
+ event_source: A1,
+ trigger: Destroyed,
+ trigger_ship: ZCS,
+}
+
+// EOF
diff --git a/data/shatter/Campaigns/04/Templates.def b/data/shatter/Campaigns/04/Templates.def
new file mode 100644
index 0000000..4a9e747
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates.def
@@ -0,0 +1,13 @@
+TEMPLATELIST
+
+// specialized templates first
+
+
+// then general templates
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_01.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_01.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_02.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_02.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_03.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_03.def" }
+
diff --git a/data/shatter/Campaigns/04/Templates/FS_Patrol_01.def b/data/shatter/Campaigns/04/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..82fdc6b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 5,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/04/Templates/FS_Patrol_02.def b/data/shatter/Campaigns/04/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..8850c14
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/FS_Patrol_02.def
@@ -0,0 +1,118 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+ element: {
+ name: Alpha,
+ design: Razor,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ }
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ }
+
+ optional: { min: 1, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+ }
diff --git a/data/shatter/Campaigns/04/Templates/FS_Patrol_03.def b/data/shatter/Campaigns/04/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..1e50ac7
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/FS_Patrol_03.def
@@ -0,0 +1,125 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 75e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:3", dex: 50e3, dex_var: 15e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Delta,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/04/Templates/IS_Patrol_01.def b/data/shatter/Campaigns/04/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..0b78ab7
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 1,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 3,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cobra,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/04/Templates/IS_Patrol_02.def b/data/shatter/Campaigns/04/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..2a5e412
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/IS_Patrol_02.def
@@ -0,0 +1,130 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 22e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/04/Templates/IS_Patrol_03.def b/data/shatter/Campaigns/04/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..ef1bb9b
--- /dev/null
+++ b/data/shatter/Campaigns/04/Templates/IS_Patrol_03.def
@@ -0,0 +1,109 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 65e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: patrol, rloc: { ref: "Player:1", dex: 50e3, dex_var: 25e3 }, speed: 250 },
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/04/campaign.def b/data/shatter/Campaigns/04/campaign.def
new file mode 100644
index 0000000..8b3d928
--- /dev/null
+++ b/data/shatter/Campaigns/04/campaign.def
@@ -0,0 +1,957 @@
+CAMPAIGN
+
+name: "Operation Firestorm"
+
+desc:
+ "The war comes to an unexpected turning point as new discoveries "
+ "come to light. Alliance war fleets continue to push into Hegemony "
+ "territory as new forces are brought into the battle."
+
+situation:
+ "\tA small Hegemony outpost has been detected in the Ostara system. "
+ "Force:Space Sixth Fleet (Atlas) has been tasked with eliminating this "
+ "threat, as a prelude to the planned invasion of the Tarsus system. "
+ "Force 9th Carrier Group (Atlas) will reduce the Hegemony fighter "
+ "component, while the 14th Battle Group (Stormwind) addresses the "
+ "naval component."
+
+orders:
+ "\t* Reduce or eliminate the Hegemony presence in Ostara.\n"
+ "\t* Prepare the region for a general invasion of Tarsus.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 6 }, // Ostara, Tarsus, Kolchev
+ group: { type: fleet, id: 7 }, // Loris, Korius
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 3 }, // Kolchev and Tarsus
+ group: { type: fleet, id: 5 }, // Loris and Korius
+ group: { type: battalion, id: 9 }, // Ostara Outpost
+ group: { type: battalion, id: 10 }, // Lovo Base (Kolchev)
+ group: { type: war_production, id: 4000 },
+ group: { type: infrastructure, id: 3000 }, // kolchev farcasters
+ group: { type: infrastructure, id: 4000 }, // korius farcasters
+ group: { type: infrastructure, id: 5000 }, // loris farcasters
+}
+
+combatant: {
+ name: "Dantari Separatists",
+ group: { type: fleet, id: 2 }, // Adantar
+ group: { type: battalion, id: 3 }, // Tanis Starbase
+ group: { type: war_production, id: 3000 }, // Tanis
+}
+
+combatant: {
+ name: "Brotherhood of Iron",
+ group: { type: fleet, id: 2 }, // Loris
+ group: { type: fleet, id: 3 }, // Loris
+}
+
+combatant: {
+ name: "Zolon Empire",
+ group: { type: fleet, id: 1 },
+ group: { type: non_com, id: 1 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Jarnell,
+ text: "Hegemony Outpost Discovered",
+ source: News,
+ file: "Actions/01-campaign-start.txt",
+ image: "Actions/01-campaign-start.pcx"
+ scene: "Scenes/01-Campaign-Start.def"
+}
+
+action: {
+ id: 1,
+ type: system,
+ team: 1,
+ sys: Ostara,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+}
+
+action: {
+ id: 2,
+ type: intel,
+ subtype: reserve,
+ team: 1,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 2,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 2,
+ sys: Ostara,
+ asset_type: battalion,
+ asset_id: 9,
+ text: "do-not-display",
+}
+
+action: {
+ id: 5,
+ type: zone,
+ team: 2,
+ rgn: Theramin,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+}
+
+action: {
+ id: 6,
+ type: zone,
+ team: 4,
+ rgn: Sintar,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 7,
+ type: system,
+ team: 3,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 8,
+ type: system,
+ team: 3,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+}
+
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Borova,
+ after: "01/04:00:00",
+ text: "Borovan Archaelith Still Missing",
+ source: News,
+ file: "Actions/02-borovan-archaelith.txt"
+ image: "Actions/02-borovan-archaelith.pcx"
+ scene: "Scenes/02-Borovan-Archaelith.def"
+}
+
+action: {
+ id: 30,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Haiche,
+ after: "01/21:30:00",
+ text: "Technite Found on Haiche",
+ source: News,
+ file: "Actions/03-technite-found.txt"
+ image: "Actions/03-technite-found.pcx"
+ scene: "Scenes/03-Technite-Found.def"
+}
+
+action: {
+ id: 40,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tarsus,
+ after: "02/06:00:00",
+ text: "Zolon Ambassador",
+ source: FORCOM,
+ file: "Actions/04-zolon-ambassador.txt",
+ image: "Actions/04-zolon-ambassador.pcx"
+ scene: "Scenes/04-Zolon-Ambassador.def"
+}
+
+
+action: {
+ id: 50,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tThe Zolon Ambassador to the Tarsus system has offered to help "
+ "mediate a settlement to end the hostilities between the Alliance "
+ "and the Hegemony. Negotiators from both sides are to meet aboard "
+ "the Zolon Consular Starship in Tarsus sector under a flag of truce.\n\n"
+
+ "\tForce:Space Sixth Fleet (Atlas) is advancing from Ostara to the "
+ "Tarsus system, and is deploying in a defensive posture to support "
+ "the peace initiative. Force 14th Battle Group (Stormwind) is escorting "
+ "the negotiating team to the conference while the 9th Carrier Group "
+ "(Atlas) patrols the Tarsus sector."
+
+ "Seventh Fleet (Heracles) has now completed replenishment "
+ "and repair operations in Paragon system. Seventh fleet can be available "
+ "for duty in the Loris Theater within fifty hours, should the need arise.",
+
+ after: "02/04:00:00",
+}
+
+action: {
+ id: 51,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 52,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Protect Alliance negotiators in the Tarsus system.\n"
+ "\t* Observe the cease-fire.\n"
+ "\t* Avoid actions against Hegemony units.\n"
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 53,
+ type: zone,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ after: "02/12:00:00",
+}
+
+action: {
+ id: 60,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: intercept_squadron,
+ asset_id: 94,
+ count: 4,
+
+ text: "Scripts/Zolon_IS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+
+action: {
+ id: 61,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: fighter_squadron,
+ asset_id: 35,
+ count: 1,
+
+ text: "Scripts/Zolon_FS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+action: {
+ id: 62,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: attack_squadron,
+ asset_id: 101,
+ count: 1,
+
+ text: "Scripts/Zolon_AS_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:00:00",
+}
+
+action: {
+ id: 65,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: destroyer_squadron,
+ asset_id: 61,
+ count: 4,
+
+ text: "Scripts/Zolon_Asher_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+action: {
+ id: 66,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: battle_group,
+ asset_id: 14,
+ count: 4,
+
+ text: "Scripts/Zolon_BG_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+action: {
+ id: 68,
+ type: mission,
+ subtype: patrol,
+ team: 1,
+ rgn: Tarsus,
+ asset_type: carrier_group,
+ asset_id: 9,
+ count: 4,
+
+ text: "Scripts/Zolon_CVBG_Patrol.def",
+
+ after: "02/12:00:00",
+ before: "02/23:30:00",
+}
+
+// ZOLON RETURN TO NERGAL
+
+action: {
+ id: 69,
+ type: zone,
+ team: 4,
+ rgn: Nergal,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ after: "02/23:30:00",
+}
+
+
+// DECLARATIONS OF WAR
+
+action: {
+ id: 70,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tarsus,
+ after: "02/23:30:00",
+ text: "Operation Firestorm",
+ source: News,
+ file: "Actions/05-operation-firestorm.txt",
+ image: "Actions/banner-alliance.pcx"
+ scene: "Scenes/05-Operation-Firestorm.def"
+}
+
+action: {
+ id: 75,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tZolon warships acting in concert with Hegemony agents have attacked "
+ "the peace conference, killing our negotiating team and destroying every "
+ "member of the Zolon Consulate in Tarsus. Force:Intel field reports indicate "
+ "that the recent Hegemony attacks on Alliance territory were carried out with "
+ "the intention of recovering artifacts and rare materials for use in developing "
+ "a devestating new type of weapon. The Hegemony military are working with "
+ "scientists of the Zolon Empire to create a 'Quantum Disruptor' that will destroy "
+ "computer systems and render all ships incapable faster-than-light travel.\n\n"
+
+ "\tIn response to these events, the Hegemony has declared war on the Terellian Alliance. "
+ "The Alliance President has authorized Force to commence OPERATION FIRESTORM: all out "
+ "war with the Marakan Hegemony.\n\n"
+
+ "\tForce:Space Sixth Fleet (Atlas) will be responsible for securing the Tarsus "
+ "system, and will then proceed to the Kolchev system with all possible speed. "
+ "Seventh Fleet (Heracles) is now in Silessia and will report "
+ "for duty in the Loris Theater within hours to begin the northern thrust "
+ "toward the key central system of Korius.",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 76,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Secure the Tarsus System.\n"
+ "\t* Be on the lookout for Zolon units in the Tarsus Theater.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 70, status: COMPLETE }
+}
+
+
+action: {
+ id: 80,
+ type: system,
+ team: 1,
+ sys: Tarsus,
+ asset_type: fleet,
+ asset_id: 6,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 81,
+ type: system,
+ team: 2,
+ sys: Tarsus,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 82,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: destroyer_squadron,
+ asset_id: 19,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+
+action: {
+ id: 90,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "03/09:00:00",
+ text: "Strategic Directives",
+ source: FORCOM,
+ file: "Actions/06-strategy.txt"
+ image: "Actions/06-strategy.pcx"
+ scene: "Scenes/06-Strategy.def"
+}
+
+action: {
+ id: 96,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "03/16:30:00",
+ text: "New Job",
+ source: Mail,
+ file: "Actions/m1-new-job.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M1-New-Job.def"
+}
+
+action: {
+ id: 97,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Thralis,
+ after: "04/05:00:00",
+ text: "Loris Government Collapse",
+ source: SECURE,
+ file: "Actions/07-Loris-Collapse.txt"
+ image: "Actions/07-Loris-Collapse.pcx"
+ scene: "Scenes/07-Loris-Collapse.def"
+}
+
+action: {
+ id: 100,
+ type: system,
+ team: 2,
+ sys: Kolchev,
+ asset_type: fleet,
+ asset_id: 3,
+ text: "do-not-display",
+
+ req: { action: 70, status: COMPLETE }
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 3, comp: LT, score: 10000 },
+}
+
+action: {
+ id: 101,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: battle_group,
+ asset_id: 10,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 105,
+ type: system,
+ team: 1,
+ sys: Kolchev,
+ asset_type: fleet,
+ asset_id: 6,
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 106,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 15,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 107,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 46,
+ text: "do-not-display",
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 130,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Kolchev,
+ text: "Kolchev System",
+ source: FORCOM,
+ file: "Actions/09-kolchev.txt"
+ image: "Actions/09-kolchev.pcx"
+ scene: "Scenes/09-Kolchev.def"
+
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ after: "05/09:15:00",
+ text: "Something You Need to Know",
+ source: Mail,
+ file: "Actions/m2-need-to-know.txt"
+ image: "Actions/m0-mail-icon.pcx"
+ scene: "Scenes/M2-Need-to-Know.def"
+}
+
+// START OF NORTHERN CAMPAIGN
+
+action: {
+ id: 200,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: fleet,
+ asset_id: 7,
+ text: "do-not-display",
+ after: "03/22:00:00",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 201,
+ type: system,
+ team: 1,
+ sys: Loris,
+ asset_type: fleet,
+ asset_id: 7,
+ image: "Actions/banner-alliance.pcx"
+ after: "03/22:00:00",
+
+ req: { action: 70, status: COMPLETE }
+}
+
+action: {
+ id: 205,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tZolon warships acting in concert with Hegemony agents have attacked "
+ "the peace conference, killing our negotiating team and destroying every "
+ "member of the Zolon Consulate in Tarsus. Force:Intel field reports indicate "
+ "that the recent Hegemony attacks on Alliance territory were carried out with "
+ "the intention of recovering artifacts and rare materials for use in developing "
+ "a devestating new type of weapon. The Hegemony military are working with "
+ "scientists of the Zolon Empire to create a 'Quantum Disruptor' that will destroy "
+ "computer systems and render all ships incapable faster-than-light travel.\n\n"
+
+ "\tIn response to these events, the Hegemony has declared war on the Terellian Alliance. "
+ "The Alliance President has authorized Force to commence OPERATION FIRESTORM: all out "
+ "war with the Marakan Hegemony.\n\n"
+
+ "\tForce:Space Sixth Fleet (Atlas) is well underway in securing the Tarsus "
+ "system, and will then proceed to the Kolchev system with all possible speed. "
+ "Seventh Fleet (Heracles) has now arrived in the Loris Theater. "
+ "Members of the Seventh Fleet are advised to be on the lookout for renegade "
+ "elements of the Brotherhood of Iron criminal organization who may be operating "
+ "in that system.",
+
+ req: { action: 200, status: COMPLETE }
+}
+
+action: {
+ id: 206,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Sixth Fleet to secure the Tarsus System.\n"
+ "\t* Seventh Fleet to secure the Loris Theater.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 220,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Tanis,
+ after: "04/20:15:00",
+ text: "The Return of Masil Gannet",
+ source: Mail,
+ file: "Actions/08-masil-gannet.txt"
+ image: "Actions/08-masil-gannet.pcx"
+ scene: "Scenes/08-Masil-Gannet.def"
+
+ req: { action: 200, status: COMPLETE }
+}
+
+
+action: {
+ id: 250,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Adantar,
+ after: "06/09:00:00",
+ text: "Korian System",
+ source: FORCOM,
+ file: "Actions/10-korius.txt"
+ image: "Actions/10-korius.pcx"
+ scene: "Scenes/10-Korius.def"
+
+ req: { action: 200, status: COMPLETE }
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 5, comp: LT, score: 9000 },
+}
+
+action: {
+ id: 255,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tThe Marakan Hegemony has declared war on the Terellian Alliance. In return, "
+ "the Alliance President has authorized Force to commence OPERATION FIRESTORM: all out "
+ "war with the Marakan Hegemony. The immediate goals for this campaign are to secure "
+ "the vital Hegemony systems of Kolchev in the south, and Korius in the north.\n\n"
+
+ "\tForce:Space Sixth Fleet (Atlas) has been assigned to secure the Kolchev system. "
+ "As expected, the Hegemony Third Fleet has fallen back to that area in hopes of drawing "
+ "our forces into a trap. Hegemony forces are scattered across four planetary orbits. "
+ "The northern mountains of the Lovo sector on Kolchev are home to a significant military "
+ "presence, and will present a unique challenge to the Sixth Fleet.\n\n"
+
+ "\tSeventh Fleet (Heracles) has begun the invasion of the Korian system. "
+ "There are reliable reports that the Separatist leader Masil Gannet has returned to "
+ "the Korian moon Adantar and established himself as a local warlord. Although Adantar "
+ "itself is heavily armed, we do not have any good data on the strength of space forces "
+ "in the Korian system.",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 256,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Sixth Fleet to reduce military targets in the Kolchev System.\n"
+ "\t* Seventh Fleet to secure the Korian System.\n"
+ "\t* Apprehend or eliminate the warlord Masil Gannet.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 250, status: COMPLETE }
+}
+
+
+action: {
+ id: 260,
+ type: system,
+ team: 1,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 7,
+ image: "Actions/banner-alliance.pcx"
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 261,
+ type: system,
+ team: 2,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 5,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 262,
+ type: system,
+ team: 2,
+ sys: Korius,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+action: {
+ id: 263,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 250, status: COMPLETE }
+}
+
+
+
+
+// THE THRILL OF VICTORY
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Victory"
+ file: "Actions/victory.txt"
+ image: "Actions/victory"
+ scene: "Scenes/Victory.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 3, comp: LT, score: 6000 },
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 5, comp: LT, score: 6000 },
+ req: { c1: "Dantari Separatists", group_type: fleet, group_id: 2, comp: LT, score: 4000 },
+}
+
+
+// THE AGONY OF DEFEAT
+
+action: {
+ id: 994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 9, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 11, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 6, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+action: {
+ id: 998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def1.txt"
+ image: "Actions/def1"
+ scene: "Scenes/Defeat1.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 7, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE, not: true }
+}
+
+
+// SECOND-HALF FAILURE
+
+action: {
+ id: 1994,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1995,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 9, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1996,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 11, comp: LT, score: 3200 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1997,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 6, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE }
+}
+
+action: {
+ id: 1998,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Firestorm Defeat"
+ file: "Actions/def2.txt"
+ image: "Actions/def2"
+ scene: "Scenes/Defeat2.def"
+
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 7, comp: LT, score: 7500 },
+ req: { action: 100, status: COMPLETE }
+}
diff --git a/data/shatter/Campaigns/04/zones.def b/data/shatter/Campaigns/04/zones.def
new file mode 100644
index 0000000..7b88c88
--- /dev/null
+++ b/data/shatter/Campaigns/04/zones.def
@@ -0,0 +1,100 @@
+ZONES
+
+// OSTARA
+
+zone: {
+ system: Ostara,
+ region: Aram,
+}
+
+
+// TARSUS
+
+zone: {
+ system: Tarsus,
+ region: Tarsus,
+}
+
+zone: {
+ system: Tarsus,
+ region: Sintar,
+}
+
+zone: {
+ system: Tarsus,
+ region: Theramin,
+}
+
+
+// KOLCHEV
+
+zone: {
+ system: Kolchev,
+ region: Ilya,
+}
+
+zone: {
+ system: Kolchev,
+ region: Kolchev,
+ region: Lovo,
+}
+
+zone: {
+ system: Kolchev,
+ region: Anatoly,
+}
+
+zone: {
+ system: Kolchev,
+ region: Volova,
+}
+
+
+// KORIUS
+
+zone: {
+ system: Korius,
+ region: Moneta,
+}
+
+zone: {
+ system: Korius,
+ region: Korius,
+}
+
+zone: {
+ system: Korius,
+ region: Adantar,
+ region: Tanis,
+}
+
+zone: {
+ system: Korius,
+ region: Solnas,
+}
+
+
+// LORIS
+
+zone: {
+ system: Loris,
+ region: Duna,
+}
+
+zone: {
+ system: Loris,
+ region: Loris
+}
+
+zone: {
+ system: Loris,
+ region: Casalle
+}
+
+
+// NEPHRYS
+
+zone: {
+ system: Nephrys,
+ region: Nergal,
+}
diff --git a/data/shatter/Campaigns/05/Actions/01-operation-nightfall.txt b/data/shatter/Campaigns/05/Actions/01-operation-nightfall.txt
new file mode 100644
index 0000000..714753d
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/01-operation-nightfall.txt
@@ -0,0 +1,19 @@
+STRATPLAN BRIEFING
+Timestamp: 01/00:00:00
+Subject: Operation Nightfall
+Classified: TOP SECRET R7 NTK/EO
+
+I know that Admiral Caldott usually does these briefings, but this situation is unusual. I wanted to make it clear to everyone that this information is coming from the highest possible authority. Also, please notice that the briefing classification has been increased to the maximum security level - TS/R7.
+
+To state the matter succinctly, Operation Firestorm was not the strategic success we once believed it to be. Force:Intel field agents have been searching the occupied Hegemony systems for months, looking for any sign of either the Haichan Technite or the Borovan Archaelith. Until recently they had come up completely dry. There had been no evidence that any of the missing contraband had ever been within the borders of either Korius or Kolchev.
+
+Last week, we got our first break. Traces of Technite were found at a customs depot in Volova sector, Kolchev. The trace deposits did not appear to have been further refined, and there was still no sign of the Borovan Archaelith. Force:Intel agents employed heightened interrogation methods on the customs personnel to determine that the Technite had already been shipped out of Kolchev to the Garrison system.
+
+Garrison is a major military stronghold for the Hegemony, only two jumps away from the Marak system itself. We believe that if the Technite was sent there, the Borovan Archaelith must also be on its way. We cannot estimate how long we have before the Hegemony will be able to produce a Quantum Disruptor weapon system.
+
+We are therefore commencing Operation Nightfall to recover the artifacts from the Garrison system. Our first task is to gain control of the Radix and Isham star systems. Force First Fleet will take the northern route and secure the Isham system, while Second Fleet flanks them to the south through the Radix system. Our combined forces must converge on the Garrison system as soon as they can manage it.
+
+This will not be an easy task. We need maximum effort from every member of Force involved in this campaign. Good luck.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/shatter/Campaigns/05/Actions/02-garden.txt b/data/shatter/Campaigns/05/Actions/02-garden.txt
new file mode 100644
index 0000000..53855c5
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/02-garden.txt
@@ -0,0 +1,3 @@
+TIGER BAY, GARDEN, ISHAM SYSTEM - Named for the manta-like Tiger Mara that inhabit its warm coastal waters, the Tiger Bay Colony is today a thriving metropolis. Tiger Bay was once the original landing site for the Garden colonists. In the intervening years, a carefully managed urban sprawl has decorated the bright sands and azure waters of the bay. Glittering office towers and trendy entertainment venues share the tree-lined avenues of the mainland beach cities, while more relaxed appointments decorate the myriad offshore islands.
+
+Just offshore, the littoral waters are dotted with thermal power rigs. In addition to the thermal energy that powers the cities of Tiger Bay, these isolated platforms have tapped into the deep underground pockets of gas that have become a key export for the Isham system.
diff --git a/data/shatter/Campaigns/05/Actions/03-radix.txt b/data/shatter/Campaigns/05/Actions/03-radix.txt
new file mode 100644
index 0000000..78a5d81
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/03-radix.txt
@@ -0,0 +1,3 @@
+RADIX SECTOR - The Radix system is a small province on the southern edge of Marakan territory. The system has always been poor in natural resources and as a result has never been able to develop the economic influence of its larger northern neighbors. But with the conclusion of last month's trade conference, it has become clear that the Radix government is seeking to change all of that.
+
+Over the past few decades, the main trade path in the area has been the Garrison/Isham/Kolchev/Tarsus loop. As those systems have prospered, trade taxes have risen along with the increased traffic. At the trade conference, the Radix Minister for Commerce introduced a bold new super-low tariff policy designed to entice crossroads traffic between Garrison and Kolchev as well as Isham and Tarsus to pass through Radix instead of traveling 'around the horn.' \ No newline at end of file
diff --git a/data/shatter/Campaigns/05/Actions/04-politics.txt b/data/shatter/Campaigns/05/Actions/04-politics.txt
new file mode 100644
index 0000000..935514a
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/04-politics.txt
@@ -0,0 +1,9 @@
+JARNELL, ALLIANCE CAPITOL -
+
+As the war moves farther away from the Terellian core systems and as losses on both sides continue to mount, political action groups are increasing calls for a negotiated settlement and the return of Force to the Terellian home systems. A rally held before the Senate Building on Jarnell this morning typifies the emotional rhetoric of the growing pacifist movement:
+
+"For how much longer will our young men and women be asked to fight and die hundreds of parsecs from their homes? When and how will this insane quest finally come to an end? We've been very patient with Valmar for the past ten months as he has led our entire system on a wild goose chase. But it is obvious now that he has key Senate sub-committees in his hip pocket," said one rally organizer.
+
+Chants of "We want our government back! We want our children back! We want peace back! And we want them back now!" echoed through the Senate Plaza until security officers were forced to disperse the crowd.
+
+Central to the pacifist movement are the growing questions regarding the mysterious disappearance of the Borovan Archaelith and the inability of Force:Intel to locate large stores of Haichan Technite that were believed to be at the heart of the war. Without concrete evidence, it is becoming more and more difficult for many civilians to support what they view as simple expansionism. \ No newline at end of file
diff --git a/data/shatter/Campaigns/05/Actions/06-geothermal-platforms.txt b/data/shatter/Campaigns/05/Actions/06-geothermal-platforms.txt
new file mode 100644
index 0000000..af6494e
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/06-geothermal-platforms.txt
@@ -0,0 +1,13 @@
+STRATPLAN BRIEFING
+Timestamp: 03/21:00:00
+Subject: Tiger Bay Geothermal Platforms
+Classified: SECRET R2 NTK
+
+Strategic Planning has been reviewing the situation on Garden for the past fifteen hours. The planet is wealthy and heavily populated. This means that the risk of unintended collateral damage is very high. It also means that Garden has the resources to hold off an attack for quite a while.
+
+Our best option at this point seems to be the geothermal energy platforms just offshore from the cities surrounding Tiger Bay. Disabling these platforms will cut most of the power to the bay cities, and will also interrupt the colony's main planetary export, with a minimum rate of civilian casualties.
+
+The goal here is to convert the Isham system to a defensive posture so that our forces can move on to more important targets in the Garrison system.
+
+Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/05/Actions/07-deadmans-alley.txt b/data/shatter/Campaigns/05/Actions/07-deadmans-alley.txt
new file mode 100644
index 0000000..3b083f0
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/07-deadmans-alley.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** DEADMAN'S ALLEY MILITARY BASE
+*** SHADOW CANYON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The latest information we have is that the Hegemony has abandoned their pre-war military outpost in the northern canyons and set up a newer base to the south and east. My team was in the Radix system several months ago - just prior to Operation Shining Fortress - and we were able to contact some local smugglers before making the jump to Tarsus on the way back home.
+
+The local smugglers call the new base "Deadman's Alley" and that sounds accurate enough. They have a starbase flightstrip and several barracks tucked away in a narrow passage of Shadow Canyon. The base is protected by several AAA and SAM emplacements. The problem for an aerial attack is that the canyons are so narrow they will make it hard for our pilots to evade ground fire on the way in to the strike zone. The only good news is that the canyon walls also make for decent protection if you can keep your package below the rim wall.
+
+Stay alert down there if you want to make it back in one piece.
+
+---
+Jonas Devlin, Force:Intel Third Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/05/Actions/08-ramek-station.txt b/data/shatter/Campaigns/05/Actions/08-ramek-station.txt
new file mode 100644
index 0000000..840b51b
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/08-ramek-station.txt
@@ -0,0 +1,13 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Ramek Station
+Classified: SECRET R2 NTK
+
+While the Orion CVBG has been occupied in Garden, our cruiser and destroyer squadrons in Senesca have been keeping the enemy very busy. Most of the remaining Hegemony fleet in Isham has pulled out of Senesca at this time. They are apparently headed to Ramek sector to regroup.
+
+Ramek is a medium gas giant planet with nothing terribly remarkable in the way of moons or other resources. The Isham system maintains a standard Type 4 station there, similar to the outpost we discovered in Ostara. We believe they have a complement of Avenger strike fighters in rotation there, so we will need the Orion CVBG to run interference for our cruiser groups.
+
+If we can reduce Ramek Station and its attached fighter wing, we believe that we can pin the Hegemony carrier group here in Isham. They will not be able to follow us to the Garrison system if their other key defenses have been shattered.
+
+Admiral Caldott,
+FORCOM STRATPLAN
diff --git a/data/shatter/Campaigns/05/Actions/08a-ramek-destroyed.txt b/data/shatter/Campaigns/05/Actions/08a-ramek-destroyed.txt
new file mode 100644
index 0000000..6d6471c
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/08a-ramek-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Station Assault, Ramek Sector
+
+Terellian Alliance 6th Battle Group "Havoc" successfully eliminated the Marakan Hegemony Ramek Station in the Isham system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/shatter/Campaigns/05/Actions/09-garrison-station.txt b/data/shatter/Campaigns/05/Actions/09-garrison-station.txt
new file mode 100644
index 0000000..efa15e4
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/09-garrison-station.txt
@@ -0,0 +1,15 @@
+*************************************
+*** FLASH CODED +$TIME
+*** GARRISON MILITARY LABORATORY
+*** GARRISON SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+Force:Intel has traced the illegal Technite to an Hegemony military laboratory in orbit about the planet Garrison. The Garrison system has always been a major storehouse for the Hegemony military, and this station is going to be no pushover. The station is armored, shielded, and has as much firepower as several heavy cruisers. In particular, watch out for the gamma ray laser turrets mounted on either side of the central manufacturing sector.
+
+About the only good news is that there is no fighter capability in the system. None of the planets are habitable, and the Garrison Military Laboratory is only designed to accommodate large starships. You will of course need to stay alert for carrier-based fighter craft in the region.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/05/Actions/09a-garrison-destroyed.txt b/data/shatter/Campaigns/05/Actions/09a-garrison-destroyed.txt
new file mode 100644
index 0000000..fce3903
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/09a-garrison-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Station Assault, Garrison Sector
+
+Terellian Alliance 5th Battle Group "Devastator" successfully eliminated the Marakan Hegemony Garrison Military Laboratory in the Garrison system. No allied losses were reported.
+
diff --git a/data/shatter/Campaigns/05/Actions/10-trocanther-biodomes.txt b/data/shatter/Campaigns/05/Actions/10-trocanther-biodomes.txt
new file mode 100644
index 0000000..6fd05b5
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/10-trocanther-biodomes.txt
@@ -0,0 +1,17 @@
+*************************************
+*** FLASH CODED +$TIME
+*** TROCANTHER BIODOMES
+*** HELL'S KITCHEN SECTOR
+*** CLASSIFIED: SECRET R3 NTK
+*************************************
+
+The planet Volante in the Trocanther System is "the front door" to the Marakan Hegemony, and it is about the most inhospitable place you could care to find anywhere in space. The surface is hotter than a blast furnace, and the atmosphere is highly toxic and corrosive as well. The ceramic composite armor of our fighter craft should be able to withstand the punishing conditions as long as they aren't exposed for too long.
+
+In spite of all that, people actually live on this forsaken rock. Volante's crust is a storehouse of rare minerals, and a small band of die-hard miners have set up a small colony to exploit them. The ground sector is rather colorfully named "Hell's Kitchen", and it has a handful of pressurized biodomes for human habitation. There are also the usual power reactors and support structures needed to keep the domes cool and breathable on the inside.
+
+If the Hegemony were looking for a place to secretly process some highly valuable contraband ore, I can't think of a better one than the Hell's Kitchen mining colony.
+
+---
+Kash Anlon, Force:Intel Second Directorate
+
+*************************************
diff --git a/data/shatter/Campaigns/05/Actions/11a-blackwing-destroyed.txt b/data/shatter/Campaigns/05/Actions/11a-blackwing-destroyed.txt
new file mode 100644
index 0000000..c16fba8
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/11a-blackwing-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 9th Carrier Battle Group "Blackwing" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/shatter/Campaigns/05/Actions/11b-hood-destroyed.txt b/data/shatter/Campaigns/05/Actions/11b-hood-destroyed.txt
new file mode 100644
index 0000000..0500f94
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/11b-hood-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 14th Battle Group "Hood" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/shatter/Campaigns/05/Actions/11c-omega-destroyed.txt b/data/shatter/Campaigns/05/Actions/11c-omega-destroyed.txt
new file mode 100644
index 0000000..3cd267e
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/11c-omega-destroyed.txt
@@ -0,0 +1,4 @@
+MISSION: Assault, Volante Sector
+
+Terellian Alliance forces successfully eliminated the Marakan Hegemony 15th Battle Group "Omega" in the Trocanther system. No allied losses were reported, although several ships took minor damage in the fighting.
+
diff --git a/data/shatter/Campaigns/05/Actions/12-endgame.txt b/data/shatter/Campaigns/05/Actions/12-endgame.txt
new file mode 100644
index 0000000..248fc01
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/12-endgame.txt
@@ -0,0 +1,17 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Operation Nightfall - Endgame
+Classified: TOP SECRET R7 NTK/EO
+
+Operation Nightfall is coming rapidly to a conclusion. The Hegemony forces in Trocanther are falling apart; they are not going to last much longer against the combined attack of our First and Second star fleets. You have all done an excellent job, and you should be proud of yourselves. You have fought with honor and integrity, and you have earned the respect of the entire Force, to say nothing of our government, and the folks back home.
+
+Our latest intel is that we have accounted for almost all of the Technite. Most of it was destroyed along with the Garrison Military Lab, and the rest we believe was due to be processed in the biodome factories on Volante here in Trocanther.
+
+The only thing that is still missing is the Borovan Archaelith. Our contacts in the Ele'aan Fusion have informed us that the Hegemony may have taken the Archaelith back to the Marak Prime System. Even without the Technite, they could still use the Archaelith against us in the future.
+
+Therefore, the President has asked us to take this fight all the way to Marak, to pressure the Hegemony leadership into surrendering the Archaelith and signing a non-agression pact. We have come a long way from home and comfort to do a job. Just a little farther, and we will be done. I'm asking you all to hang tough for just a few more hours. Let's get in there, do the job, and go home.
+
+Thank you all.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/shatter/Campaigns/05/Actions/15-disappearance.txt b/data/shatter/Campaigns/05/Actions/15-disappearance.txt
new file mode 100644
index 0000000..31e7284
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/15-disappearance.txt
@@ -0,0 +1,21 @@
+STRATPLAN BRIEFING
+Timestamp: $TIME
+Subject: Status of Marak Prime
+Classified: TOP SECRET R7 NTK/EO
+
+Well, obviously this has not gone as we had planned.
+
+As far as we can tell, the Zolon Empire has completely annihilated the human population of the Marak System. Every Marakan warship and civilian vessel we have encountered has been found drifting dead in space. There is no sign of intelligent life anywhere on the planet's surface. Everywhere we turn there are only more Zolons.
+
+Until today, that is. A few hours ago, every Zolon ship within sensor range disappeared. We believe they simply used their peculiar FTL drives to go home, back to the core Zolon systems, where ever that is. Frankly, if that is the case, we are lucky this stopped when it did. Their weapon systems are far more powerful than we could have thought possible. They took a devastating toll on our forces in just a few days.
+
+At this point, we seem to be out of options. President Valmar has recalled all of our remaining fleets back to Alliance space. We are going to leave a small Force:Intel detachment here to try to search Marak Prime for some evidence of the Borovan Archaelith, or at least some clue as to why the Zolon Empire chose this moment to decimate the human population here. The Zolon Empire may not view the distinction between the Alliance and the Hegemony with the same gravity that we do. It is possible that they have decided to wipe out all humans in the Blue Drift region.
+
+For now, we are going to continue to run patrols to look for survivors, but I expect we will all be shipping out within the next forty hours.
+
+For the time being, please remember that everything that has happened in the past ten days is classified TOP SECRET R7/NTK. If any members of the press approach you, refer them to your superior officers, or to my office directly. I'm sure there will be a board of inquiry convened when we get back, and we want to keep the unfounded rumors to a minimum until they have completed their investigation.
+
+Thank you all.
+
+Fleet Admiral A. Evars,
+FORCOM Commander
diff --git a/data/shatter/Campaigns/05/Actions/def1.txt b/data/shatter/Campaigns/05/Actions/def1.txt
new file mode 100644
index 0000000..fc6cc08
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/def1.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in Isham and Radix have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from the Isham-Radix Theater of Operations.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/shatter/Campaigns/05/Actions/def2.txt b/data/shatter/Campaigns/05/Actions/def2.txt
new file mode 100644
index 0000000..16c8373
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/def2.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in the Garrison System have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from Hegemony controlled space.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/shatter/Campaigns/05/Actions/def3.txt b/data/shatter/Campaigns/05/Actions/def3.txt
new file mode 100644
index 0000000..cf225dd
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/def3.txt
@@ -0,0 +1,3 @@
+Operation Nightfall has ended in defeat. Alliance losses in the Trocanther System have been severe. The President, with the approval of the Combined Senate, has ordered an immediate withdrawal of all Force units from Hegemony controlled space.
+
+With the devastating losses on both sides, it seems likely that the war between the Alliance and the Hegemony is destined for a long and bloody stalemate. \ No newline at end of file
diff --git a/data/shatter/Campaigns/05/Actions/m1-incommunicado.txt b/data/shatter/Campaigns/05/Actions/m1-incommunicado.txt
new file mode 100644
index 0000000..c340b2f
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/m1-incommunicado.txt
@@ -0,0 +1,17 @@
+TO: $RANK $NAME
+CO: $GROUP
+FM: Sara Hunter - Ele'aan Consulate Jarnell
+RE: BROKEN COMMUNICATIONS
+-----
+PATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 1ST FLEET HQ | Trellis Relay | Ostara Relay | $GROUP
+-----
+
+Hello,
+
+I'm sorry I haven't written you in so long. I hope you'll accept my lame apology, as I don't even have a lame excuse! The Ele'aan Consulate is an absolute mad-house. Councilor Auris hasn't returned from the Ele'aan homeworld, and no replacement has been sent. We've been requesting an update from the Ele'aan leadership for weeks, but we can't get a straight answer from them (not that there's anything unusual about that).
+
+Finally this morning, everything just went to hell. Our communications line to the Ele'aan homeworld has gone completely silent. Half the computer systems in the consulate have gone dead and all kinds of critical files and databases have been deleted somehow. At least my personal system seems to be unaffected so far.
+
+Wish you were here right now, I really need to talk to someone I can trust. Sometimes I think you are the only one left who I can rely on. I'm worried something has gone wrong... very wrong.
+
+Sara
diff --git a/data/shatter/Campaigns/05/Actions/m2-final-message.txt b/data/shatter/Campaigns/05/Actions/m2-final-message.txt
new file mode 100644
index 0000000..e43034f
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/m2-final-message.txt
@@ -0,0 +1,23 @@
+--------------------------------------------------------
+NO MAIL HEADER RECORDS AVAILABLE
+--------------------------------------------------------
+
+CONTENTS ENCRYPTED.
+Decrypting................Complete
+
+================
+MESSAGE FOLLOWS:
+================
+
+I don't have very much time. I had to leave Jarnell in a hurry, can't say where I am or where I'm going. People started disappearing from the Ele'aan Consulate a week ago. One at a time, they just... weren't there anymore. I figured I'd better disappear myself, while I still had the chance to decide how and when. I don't know what is going to happen, or when I'll see you again. Or even if I'll see you again.
+
+I don't think I can trust Jonas anymore, or I'd go find him. But I had to tell someone, and I figured you might at least understand. Might at least try to do something without letting them trace the information back to me...
+
+This whole war has been a sham from the beginning. The Zolons and Hegemony don't have the Borovan Archaelith - they never did. I took it from the museum myself the night the museum was destroyed. That was the real reason the Ele'aan Fusion wnt to the Borovan System - to get to the Archaelith first, before it could fall into Zolon hands.
+
+The next day, I gave it to Councilor Auris and he took it with him back to Ele'aas. I can't understand why President Valmar would claim that the Fusion backed up his reasons for pursuing this conflict. We can't need the Marakan border worlds that badly, and I can't see a reason why he would want to stir up trouble with the Zolon Empire.
+
+I don't have very much time. I could be discovered at any moment. I need to keep moving. Promise me you'll stay safe, OK?
+
+Love from
+Sara
diff --git a/data/shatter/Campaigns/05/Actions/victory.txt b/data/shatter/Campaigns/05/Actions/victory.txt
new file mode 100644
index 0000000..2884bfd
--- /dev/null
+++ b/data/shatter/Campaigns/05/Actions/victory.txt
@@ -0,0 +1,5 @@
+Operation Nightfall has ended. The Marakan Hegemony is no more. Trapped between the advance of the Terellian Alliance and the onslaught of the Zolon Empire, the culture spawned by the last descendents of Emperor Marak I has been extinquished like a candle in the darkness between the stars.
+
+The Terellian Alliance has suffered historic losses while achieving their most profound victory. The Alliance has become the only remaining human super power in the Blue Drift region. They now face the long work of rebuilding the independent worlds, even as they prepare to meet the inevitable return of the Zolon Empire...
+
+
diff --git a/data/shatter/Campaigns/05/Scenes/01-Operation-Nightfall.def b/data/shatter/Campaigns/05/Scenes/01-Operation-Nightfall.def
new file mode 100644
index 0000000..aa91fec
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/01-Operation-Nightfall.def
@@ -0,0 +1,137 @@
+MISSION
+
+name: "Cmpn05 Brief01 - Operation Nightfall"
+type: Patrol
+system: Garrison
+system: Radix
+system: Isham
+system: Kolchev
+region: Volova
+stardate: 1188000000
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Volova
+ loc: (100e3, 300e3, 0)
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (98e3, 311e3, 500)
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (112e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (112e3, -70e3, -1000), rgn: Volova, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volova
+ loc: (94e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 800), rgn: Volova, speed: 100 }
+}
+
+
+element: {
+ name: Customs
+ design: Station4
+ iff: 0
+ region: Volova
+ loc: (0,0,0)
+ head: 20
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Kolchev", vec: (2, 0.1, 4e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: 01/00:00:00\nSubject: Operation Nightfall\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_01_Nightfall.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Orion", vec: (-2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (0.09, 0.017, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Force:Space First Fleet" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 40, param: 3, target: "Customs", vec: (3, 0.1, 15e3) }
+event: { event: Camera, param: 5, vec: (0.05, -0.01, -0.02) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Hegemony Customs Depot" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Volova Sector" }
+
+
+event: { event: Camera, time: 60, param: 3, target: "body:Garrison", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.09, -0.007, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Garrison System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Hegemony Starbase" }
+
+
+event: { event: Display, time: 75, image: "Campaigns/05/Scenes/Nightfall.pcx", color: 0xffffffff, fade: (1,20,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "body:Garden", vec: (-1, 0.1, 1.4e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, -0.01) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Isham System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Garden" }
+
+
+event: { event: Camera, time: 95, param: 3, target: "body:Radix", vec: (-2, -0.15, 2e7) }
+event: { event: Camera, param: 5, vec: (0.07, 0.01, -0.015) }
+event: { event: Display, font: Limerick18, color: 0xffffff80, fade: (1,5,1), rect: (20,20, 300,100)
+ message: "Radix System" }
+event: { event: Display, font: Limerick12, color: 0xffffff80, fade: (1,5,1), rect: (20,40, 300,100)
+ message: "Capitol Planet" }
+
+
+event: { event: EndScene, time: 110, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/02-Garden.def b/data/shatter/Campaigns/05/Scenes/02-Garden.def
new file mode 100644
index 0000000..93454a8
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/02-Garden.def
@@ -0,0 +1,152 @@
+MISSION
+
+name: "Cmpn05 News02 - Garden"
+type: Patrol
+system: Isham
+region: "Tiger Bay"
+stardate: 1187981234
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: "Tiger Bay",
+ loc: (0,0,5e3)
+}
+
+element: {
+ name: "Tiger Base",
+ design: "Airbase2",
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Tiger Barracks",
+ design: "Barracks",
+ region: "Tiger Bay",
+ loc: (57000, -6000, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (5e3, -11e3, 0),
+}
+
+element: {
+ name: "Building C1",
+ design: "Bldg00",
+ region: "Tiger Bay",
+ loc: (7e3, -12e3, 0),
+}
+
+element: {
+ name: "City Block 1",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (-46e3, -15e3, 0),
+}
+
+element: {
+ name: "City Block 2",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (-47e3, -10e3, 0),
+}
+
+element: {
+ name: "Building W1",
+ design: "Bldg01",
+ region: "Tiger Bay",
+ loc: (-48e3, -11e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (54e3, -3e3, 0),
+}
+
+element: {
+ name: "Building E1",
+ design: "Bldg03",
+ region: "Tiger Bay",
+ loc: (52e3, -6e3, 0),
+}
+
+element: {
+ name: "Building E2",
+ design: "Bldg04",
+ region: "Tiger Bay",
+ loc: (52e3, 0, 0),
+}
+
+element: {
+ name: "Platform 1",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+}
+
+element: {
+ name: "Platform 2",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+}
+
+element: {
+ name: "Platform 3",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+}
+
+element: {
+ name: "Platform 4",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (-1, 0.1, 1.5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_02_Garden.ogg" }
+event: { event: Display, time: 5, message: "Isham System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Garden Colony", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 10, param: 3, target: "City Block 1", vec: (-3.77, 0.10, 9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Tiger Bay", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Shoreline City", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Platform 1", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Offshore Power Rig", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/03-Radix.def b/data/shatter/Campaigns/05/Scenes/03-Radix.def
new file mode 100644
index 0000000..4642286
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/03-Radix.def
@@ -0,0 +1,57 @@
+MISSION
+
+name: "Cmpn05 News03 - Radix"
+type: Patrol
+system: Radix
+region: Radix
+stardate: 1187981234
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: Radix
+ loc: (0,0,0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Radix", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_03_Radix.ogg" }
+event: { event: Display, time: 5, message: "Radix System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Capitol Planet", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Map.pcx", color: 0xffffffff, fade: (1,25,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "body:Senna", vec: ( 0.77, 0.15, 1.7e7) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, 0.01) }
+
+event: { event: Display, message: "Senna Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: Camera, time: 45, param: 3, target: "body:Cavenda", vec: ( 0.77, 0.25, 5e7) }
+event: { event: Camera, param: 5, vec: ( 0.11, -0.01, -0.01) }
+
+event: { event: Display, message: "Cavenda Sector", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/04-Politics.def b/data/shatter/Campaigns/05/Scenes/04-Politics.def
new file mode 100644
index 0000000..d61ede0
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/04-Politics.def
@@ -0,0 +1,44 @@
+MISSION
+
+name: "Cmpn05 News04 - Politics"
+type: Patrol
+system: Jarnell
+region: Jarnell
+stardate: 1187987654
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ region: Jarnell
+ loc: (0,0,0)
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (0,4,1), rect: (0,0,0,0) }
+event: { event: Display, image: "Campaigns/05/Scenes/News.pcx", color: 0xffffffff, fade: (1,3,1), rect: (0,0, -512,-128) }
+
+event: { event: Camera, param: 3, target: "body:Jarnell", vec: (1, -0.3, 1.5e7) }
+event: { event: Camera, param: 5, vec: (0.13, 0.005, 0.01) }
+
+
+event: { event: Message, time: 4, sound: "Vox/Scenes/05/News_04_Politics.ogg" }
+event: { event: Display, time: 5, message: "Jarnell System", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Alliance Capitol", font: Limerick12, color: 0xffffff80, fade: (1,4,1), rect: (20,40, 300,100) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Senate.pcx", color: 0xffffffff, fade: (1,15,1), rect: (-280,-280,256,256) }
+
+
+event: { event: Display, time: 65, image: "Campaigns/05/Scenes/Arch.pcx", color: 0xffffffff, fade: (1,15,1), rect: (-280,20,256,256) }
+
+
+event: { event: EndScene, time: 95, message: "Scene 1" }
+event: { event: Exit }
+
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/06-Geothermal-Platforms.def b/data/shatter/Campaigns/05/Scenes/06-Geothermal-Platforms.def
new file mode 100644
index 0000000..018721b
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/06-Geothermal-Platforms.def
@@ -0,0 +1,150 @@
+MISSION
+
+name: "Cmpn05 Brief06 - Geothermal Platforms"
+type: Patrol
+system: Isham
+region: Garden
+stardate: 1187981234
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+
+element: {
+ name: "Tiger Base",
+ design: "Airbase2",
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Tiger Barracks",
+ design: "Barracks",
+ region: "Tiger Bay",
+ loc: (57000, -6000, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (5e3, -11e3, 0),
+}
+
+element: {
+ name: "Building C1",
+ design: "Bldg00",
+ region: "Tiger Bay",
+ loc: (7e3, -12e3, 0),
+}
+
+element: {
+ name: "City Block 1",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (-46e3, -15e3, 0),
+}
+
+element: {
+ name: "City Block 2",
+ design: "City00",
+ region: "Tiger Bay",
+ loc: (-47e3, -10e3, 0),
+}
+
+element: {
+ name: "Building W1",
+ design: "Bldg01",
+ region: "Tiger Bay",
+ loc: (-48e3, -11e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ region: "Tiger Bay",
+ loc: (54e3, -3e3, 0),
+}
+
+element: {
+ name: "Building E1",
+ design: "Bldg03",
+ region: "Tiger Bay",
+ loc: (52e3, -6e3, 0),
+}
+
+element: {
+ name: "Building E2",
+ design: "Bldg04",
+ region: "Tiger Bay",
+ loc: (52e3, 0, 0),
+}
+
+element: {
+ name: "Platform 1",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+}
+
+element: {
+ name: "Platform 2",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+}
+
+element: {
+ name: "Platform 3",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+}
+
+element: {
+ name: "Platform 4",
+ design: "Platform",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (2, 0.1, 4e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: 03/21:00:00\nSubject: Tiger Bay Geothermal Platforms\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_06_Tiger_Bay.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: "Platform 1", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.01, -0.01) }
+
+event: { event: Display, message: "Offshore Power Rig", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "Platform 2", vec: ( 0.77, 0.05, 4e3) }
+event: { event: Camera, param: 5, vec: ( 0.09, 0.01, -0.01) }
+
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/07-Deadmans-Alley.def b/data/shatter/Campaigns/05/Scenes/07-Deadmans-Alley.def
new file mode 100644
index 0000000..5f2e99b
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/07-Deadmans-Alley.def
@@ -0,0 +1,119 @@
+MISSION
+
+name: "Cmpn05 Brief07 - Deadman's Alley"
+type: Patrol
+system: Radix
+region: Radix
+stardate: 1188334411
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Radix Base",
+ design: "Airbase2",
+ rgn: "Shadow Canyon"
+ loc: (-40e3, -90e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 1",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-37e3, -92e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 2",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-38e3, -94e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "Barracks 3",
+ design: "Barracks",
+ region: "Shadow Canyon",
+ loc: (-39e3, -96e3, 0),
+ heading: 90,
+}
+
+element: {
+ name: "SAM 1",
+ design: "SAM 1",
+ region: "Shadow Canyon",
+ loc: (-62e3, -82e3, 0),
+}
+
+element: {
+ name: "AAA 1",
+ design: "AAA 1",
+ region: "Shadow Canyon",
+ loc: (-58e3, -82e3, 0),
+}
+
+element: {
+ name: "SAM 2",
+ design: "SAM 1",
+ region: "Shadow Canyon",
+ loc: (-75e3, -68e3, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ region: "Shadow Canyon",
+ loc: (-77e3, -56e3, 0),
+}
+
+element: {
+ name: "Cooling Tower",
+ design: "Cool00",
+ region: "Shadow Canyon",
+ loc: (-77e3, -58e3, 0),
+}
+
+element: {
+ name: "Cryo Tank",
+ design: "Tank00",
+ region: "Shadow Canyon",
+ loc: (-75e3, -58e3, 0),
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Radix", vec: (2, 0.1, 2.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** DEADMAN'S ALLEY MILITARY BASE\n*** SHADOW CANYON SECTOR \n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_07_Deadmans_Alley_2.ogg" }
+
+event: { event: Camera, time: 15, param: 3, target: "Radix Base", vec: (2, 0.15, 7e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.01, -0.01) }
+
+event: { event: Camera, time: 30, param: 3, target: "SAM 1", vec: (2, 0.15, 7e3) }
+event: { event: Camera, param: 5, vec: ( 0.11, 0.01, -0.01) }
+
+event: { event: Camera, time: 45, param: 3, target: "Reactor", vec: (2, 0.20, 7e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, -0.01) }
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/08-Ramek-Station.def b/data/shatter/Campaigns/05/Scenes/08-Ramek-Station.def
new file mode 100644
index 0000000..8adeb5d
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/08-Ramek-Station.def
@@ -0,0 +1,57 @@
+MISSION
+
+name: "Cmpn05 Brief08 - Ramek Station"
+type: Patrol
+system: Isham
+region: Ramek
+stardate: 1188338811
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: "Ramek Station",
+ design: "Station4",
+ loc: (0, 0, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Senesca", vec: (2, 0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Ramek Station\nClassified: SECRET R2 NTK" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_08_Ramek_Station.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "body:Ramek", vec: (2, 0.1, 7e7) }
+event: { event: Camera, param: 5, vec: ( 0.08, -0.007, -0.02) }
+
+event: { event: Display, message: "Isham System", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+event: { event: Display, message: "Ramek Sector", font: Limerick12, color: 0xffffff80, fade: (1,7,1), rect: (20,40, 300,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "Ramek Station", vec: (1, -0.1, 15e3) }
+event: { event: Camera, param: 5, vec: ( 0.08, 0.007, -0.01) }
+
+event: { event: Display, message: "Ramek Station", font: Limerick18, color: 0xffffff80, fade: (1,7,1), rect: (20,20, 300,100) }
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/09-Garrison-Station.def b/data/shatter/Campaigns/05/Scenes/09-Garrison-Station.def
new file mode 100644
index 0000000..c78aee5
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/09-Garrison-Station.def
@@ -0,0 +1,52 @@
+MISSION
+
+name: "Cmpn05 Brief09 - Garrison Station"
+type: Patrol
+system: Garrison
+region: Garrison
+stardate: 1188554433
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Garrison Laboratory",
+ design: "Station7"
+ iff: 0
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garrison", vec: (2, 0.1, 3.7e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** GARRISON MILITARY LABORATORY\n*** GARRISON SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_09_Garrison_Station.ogg" }
+
+
+event: { event: Camera, time: 15, param: 3, target: "Garrison Laboratory", vec: (2, 0.1, 27e3) }
+event: { event: Camera, param: 5, vec: (0.11, 0.01, -0.02) }
+
+
+event: { event: Display, time: 20, image: "Campaigns/05/Scenes/Turret.pcx", color: 0xffffffff, fade: (1,7,1), rect: (-280,-280,256,256) }
+
+
+event: { event: EndScene, time: 48, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/10-Trocanther-Biodomes.def b/data/shatter/Campaigns/05/Scenes/10-Trocanther-Biodomes.def
new file mode 100644
index 0000000..82f28af
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/10-Trocanther-Biodomes.def
@@ -0,0 +1,157 @@
+MISSION
+
+name: "Cmpn05 Brief10 - Trocanther Biodomes"
+type: Patrol
+system: Trocanther
+region: Volante
+stardate: 1188554433
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+element: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 6,
+ loc: (-14e3, -16e3, 0),
+ region: "Hell's Kitchen",
+}
+
+element: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ loc: (-12e3, -17e3, 0),
+ region: "Hell's Kitchen",
+}
+
+element: {
+ name: "Bio Dome 1",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 20e3, 0)
+}
+
+element: {
+ name: "Bio Dome 2",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 47e3, 0)
+ head: 90,
+}
+
+element: {
+ name: "Bio Dome 3",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (13e3, -3e3, 0)
+ head: 60
+}
+
+element: {
+ name: "Bio Dome 4",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (-27e3, 20e3, 0)
+ head: 30
+}
+
+element: {
+ name: "Bridge 1",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (0, 33500, 0)
+}
+
+element: {
+ name: "Bridge 2",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (5500, 8500, 0)
+ head: 30
+}
+
+element: {
+ name: "Bridge 3",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (-13500, 20e3, 0)
+ head: 90,
+}
+
+element: {
+ name: "Utility 1",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (5e3, -3e3, 0)
+}
+
+element: {
+ name: "Utility 2",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 25e3, 0)
+}
+
+element: {
+ name: "Utility 3",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 29e3, 0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Volante", vec: (2, 0.1, 2.8e7) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.007, -0.01) }
+
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "FORCE:INTEL BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "*************************************\n*** FLASH CODED +$TIME \n*** TROCANTHER BIODOMES\n*** HELL'S KITCHEN SECTOR\n*** CLASSIFIED: SECRET R3 NTK\n*************************************" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_10_Trocanther_Biodomes.ogg" }
+
+
+event: { event: Camera, time: 25, param: 3, target: "Bio Dome 1", vec: (2, 0.15, 17e3) }
+event: { event: Camera, param: 5, vec: ( 0.11, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 35, param: 3, target: "Utility 1", vec: (3, 0.19, 17e3) }
+event: { event: Camera, param: 5, vec: (-0.11, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 45, param: 3, target: "Reactor", vec: (4, 0.10, 5e3) }
+event: { event: Camera, param: 5, vec: ( 0.13, 0.01, -0.02) }
+
+
+event: { event: Camera, time: 55, param: 3, target: "Bio Dome 2", vec: (5, 0.13, 15e3) }
+event: { event: Camera, param: 5, vec: (-0.12, 0.01, -0.02) }
+
+
+event: { event: EndScene, time: 65, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/12-Endgame.def b/data/shatter/Campaigns/05/Scenes/12-Endgame.def
new file mode 100644
index 0000000..b09eda5
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/12-Endgame.def
@@ -0,0 +1,141 @@
+MISSION
+
+name: "Cmpn05 Brief12 - Endgame"
+type: Patrol
+system: Museum
+system: Marak
+system: Trocanther
+region: Volante
+stardate: 1188776655
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Volante
+ loc: (100e3, 300e3, 0)
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (98e3, 311e3, 500)
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (112e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (112e3, -70e3, -1000), rgn: Volante, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Volante
+ loc: (94e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (94e3, -70e3, 800), rgn: Volante, speed: 100 }
+}
+
+
+element: {
+ name: Dragon
+ design: Dragon
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Narcissus, speed: 500 }
+}
+
+element: {
+ name: "Gol Duvain"
+ design: Volnaris
+ iff: 0
+ loc: (23e3, 0, 0)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (24e3, -100e3, 0), rgn: Narcissus, speed: 700 }
+}
+
+element: {
+ name: "Tol Branta"
+ design: Volnaris
+ iff: 0
+ loc: (18e3, 0, -2e3)
+ rgn: Narcissus
+ navpt: { cmd: Vector, loc: (15e3, -100e3, -2e3), rgn: Narcissus, speed: 600 }
+}
+
+
+element: {
+ name: Wrath
+ design: Vendetta
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Path
+ navpt: { cmd: Vector, loc: (20e3, -100e3, 0), rgn: Path, speed: 600 }
+}
+
+
+element: {
+ name: Archaelith
+ design: Archaelith
+ iff: 0
+ region: Museum
+ loc: (0,0,0)
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Path", vec: (2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.01) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Operation Nightfall - Endgame\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_12_Endgame.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Orion", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+event: { event: Camera, time: 20, param: (6,20), target: "Dragon" }
+
+event: { event: Camera, time: 30, param: (6,20), target: "Wrath" }
+
+event: { event: Camera, time: 37, param: 3, target: "Archaelith", vec: (3.00, 0.2, 170) }
+event: { event: Camera, param: 5, vec: (0.12, -0.01, -0.02) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "body:Marak", vec: (2, -0.3, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.01, -0.02) }
+
+event: { event: Display, message: "Marak Prime", font: Limerick18, color: 0xffffff80, fade: (1,10,1), rect: (20,20, 300,100) }
+
+event: { event: EndScene, time: 75, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/15-Disappearance.def b/data/shatter/Campaigns/05/Scenes/15-Disappearance.def
new file mode 100644
index 0000000..5b991d6
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/15-Disappearance.def
@@ -0,0 +1,133 @@
+MISSION
+
+name: "Cmpn05 Brief15 - Disappearance"
+type: Patrol
+system: Marak
+region: Marak
+stardate: 1188999999
+
+degrees: true
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 0
+ player: 1
+ loc: (100e3, 30e3, 0)
+}
+
+
+element: {
+ name: Orion
+ design: Orion
+ iff: 1
+ region: Marak
+ loc: (100e3, 300e3, 0)
+ navpt: { cmd: Vector, loc: (100e3, -70e3, 0), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (93e3, 311e3, 500)
+ navpt: { cmd: Vector, loc: (93e3, -70e3, 500), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Asher
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (118e3, 314e3, -1000)
+ navpt: { cmd: Vector, loc: (118e3, -70e3, -1000), rgn: Marak, speed: 100 }
+}
+
+element: {
+ name: Shaw
+ design: Asher
+ commander: Orion
+ iff: 1
+ region: Marak
+ loc: (90e3, 292e3, 800)
+ navpt: { cmd: Vector, loc: (90e3, -70e3, 800), rgn: Marak, speed: 100 }
+}
+
+
+element: {
+ name: Dragon
+ design: "Hulk-Dragon"
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Xanthe
+}
+
+element: {
+ name: Broadsword
+ design: "Hulk-Broadsword"
+ iff: 0
+ loc: (53e3, 0, 10e3)
+ rgn: Xanthe
+}
+
+element: {
+ name: Volnaris
+ design: "Hulk-Volnaris"
+ iff: 0
+ loc: (16e3, 0, -2e3)
+ rgn: Marak
+}
+
+
+element: {
+ name: Imperial
+ design: "Hulk-Imperial"
+ iff: 0
+ loc: (20e3, 0, 0)
+ rgn: Marak
+}
+
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Marak", vec: (2, 0.1, 5e7) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, -0.04) }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,20, 600,150), font: Limerick18, color: 0xffffffff,
+ message: "STRATPLAN BRIEFING" }
+
+event: { event: Display, time: 1, fade: (1,5,1), rect: (20,40, 600,150), font: OCRB, color: 0xffffff80,
+ message: "Timestamp: $TIME\nSubject: Status of Marak Prime\nClassified: TOP SECRET R7 NTK/EO" }
+
+event: { event: Message, time: 3, sound: "Vox/Scenes/05/Briefing_15.ogg" }
+
+
+event: { event: Camera, time: 10, param: 3, target: "Dragon", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 22, param: 3, target: "Broadsword", vec: (3, 0.2, 6e3) }
+event: { event: Camera, param: 5, vec: ( 0.06, -0.01, 0.02) }
+
+
+event: { event: Camera, time: 34, param: 3, target: "Imperial", vec: (4, -0.1, 9e3) }
+event: { event: Camera, param: 5, vec: (-0.07, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 50, param: 3, target: "Orion", vec: (2, -0.1, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.05, 0.007, 0.02) }
+
+
+event: { event: Camera, time: 80, param: 3, target: "body:Marak", vec: (5, -0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.085, 0.002, 0.03) }
+
+
+event: { event: EndScene, time: 105, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/Defeat1.def b/data/shatter/Campaigns/05/Scenes/Defeat1.def
new file mode 100644
index 0000000..6489ff7
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/Defeat1.def
@@ -0,0 +1,71 @@
+MISSION
+
+name: "Cmpn 05 Defeat 01"
+type: "Patrol"
+system: "Radix"
+system: "Isham"
+region: "Garden"
+stardate: 1188998811
+
+element: {
+ name: Camera
+ design: CameraPod
+ player: 1
+ loc: (50e3, 0, 0)
+}
+
+element: {
+ name: Dragon
+ design: Dragon
+ loc: (8e3,2e3,0)
+ rgn: Garden
+ navpt: { cmd: Vector, loc: (9e3,-100e3, 0), rgn: Garden, speed: 500 }
+}
+
+element: {
+ name: Avenger
+ design: Avenger
+ count: 4
+ loc: (34e3,6e3,200)
+ rgn: Garden
+ navpt: { cmd: Vector, loc: (35e3,-100e3,300), rgn: Garden, speed: 1000 }
+ loadout: { ship: -1, name: "ACM Medium Range" }
+}
+
+element: {
+ name: Imperial
+ design: Imperial
+ count: 1
+ loc: (-20e3,-100e3,0)
+ rgn: Radix
+ navpt: { cmd: Vector, loc: (-20e3, 100e3,0), rgn: Radix, speed: 500 }
+ head: 180
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garden", vec: (2, 0.3, 1.6e7) }
+event: { event: Camera, param: 5, vec: (-0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_02_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,22), target: Dragon }
+
+event: { event: Camera, time: 20, param: (6,15), target: "Avenger 1" }
+
+event: { event: Camera, time: 30, param: (6,32), target: Imperial }
+
+event: { event: Display, time: 38, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/Defeat2.def b/data/shatter/Campaigns/05/Scenes/Defeat2.def
new file mode 100644
index 0000000..82fbf6f
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/Defeat2.def
@@ -0,0 +1,94 @@
+MISSION
+
+name: "Cmpn 05 Defeat 02"
+type: "Patrol"
+system: Garrison
+region: Garrison
+stardate: 1188998811
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+ invulnerable: true
+}
+
+element: {
+ name: Imperial
+ design: Imperial
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Heracles, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Heracles
+ design: Orion
+ command_ai: 1
+ iff: 1
+ loc: (0, -30e3, 0)
+ rgn: Garrison
+ navpt: { cmd: Vector, loc: (-35e3, -10e3, 0), rgn: Garrison, speed: 780 }
+ heading: 90
+}
+
+element: {
+ name: Devastator
+ design: Devastator
+ command_ai: 1
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Garrison
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+ invulnerable: true
+}
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Garrison", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 3
+ sound: "Vox/Scenes/05/End_03_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: 3, target: Imperial, vec: (1, 0, 8e3) }
+event: { event: Camera, param: 5, vec: (0.09, 0.005, -0.01) }
+
+event: { event: Camera, time: 20, param: 3, target: Heracles, vec: (1, 0, 8e3) }
+event: { event: Camera, param: 5, vec: (-0.1, 0.005, -0.01) }
+
+event: { event: Damage, time: 21, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 22, param: 2e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 23, param: 1e4, ship: Heracles, target: Heracles }
+event: { event: Damage, time: 24, param: 1e4, ship: Heracles, target: Heracles }
+
+event: { event: Camera, time: 27, param: (6,21,2), target: Devastator }
+
+event: { event: Damage, time: 30, param: 1e7, ship: Heracles, target: Heracles }
+
+event: { event: Display, time: 38, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 40, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/Defeat3.def b/data/shatter/Campaigns/05/Scenes/Defeat3.def
new file mode 100644
index 0000000..a08de2a
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/Defeat3.def
@@ -0,0 +1,95 @@
+MISSION
+
+name: "Cmpn 05 Defeat 03"
+type: "Patrol"
+system: Trocanther
+region: Volante
+stardate: 1188998811
+
+element: {
+ name: Camera
+ design: CameraPod
+ iff: 10
+ player: 1
+ loc: (50e3, 0, 0)
+ invulnerable: true
+}
+
+element: {
+ name: Vendetta
+ design: Vendetta
+ invulnerable: true
+ iff: 2
+ loc: (0,0,0)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (0,-60e3,0), speed: 500 }
+}
+
+element: {
+ name: Broadsword
+ design: Broadsword
+ invulnerable: true
+ iff: 2
+ loc: (18e3,0,-300)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (7e3,-60e3,-300), speed: 500 }
+}
+
+element: {
+ name: Volnaris
+ design: Volnaris
+ invulnerable: true
+ iff: 2
+ loc: (-8e3,0, 300)
+ navpt: { cmd: Assault, tgt: Devastator, loc: (-27e3,-60e3,-300), speed: 500 }
+}
+
+
+element: {
+ name: Devastator
+ design: Devastator
+ iff: 1
+ loc: (45e3, -25e3, 0)
+ rgn: Volante
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+element: {
+ name: Courageous
+ design: Courageous
+ iff: 1
+ loc: (20, -30e3, 0)
+ rgn: Volante
+ head: 180
+ navpt: { cmd: Assault, tgt: Broadsword, loc: (5e3,0,0), speed: 600 }
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Volante", vec: (1,0,2.5e7) }
+event: { event: Camera, param: 5, vec: (0.06, 0.002, 0.01) }
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,20, 600,100) }
+event: { event: Display, message: "Defeat", font: Limerick18, color: 0xffffff80, fade: (0,73,0), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_04_Defeat.ogg"
+}
+
+event: { event: Camera, time: 10, param: (6,30,3), target: Broadsword }
+
+event: { event: Camera, time: 20, param: (6,11,2.2), target: Devastator }
+event: { event: Damage, time: 22, param: 2e4, ship: Devastator, target: Devastator }
+event: { event: Damage, time: 24, param: 2e4, ship: Devastator, target: Devastator }
+
+event: { event: Camera, time: 30, param: (6,20,1.5), target: Courageous }
+event: { event: Damage, time: 34, param: 4e4, ship: Devastator, target: Devastator }
+
+event: { event: Display, time: 43, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,10,0), rect: (0,0,0,0) }
+
+event: { event: EndScene, time: 45, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/M1-Incommunicado.def b/data/shatter/Campaigns/05/Scenes/M1-Incommunicado.def
new file mode 100644
index 0000000..c36d49f
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/M1-Incommunicado.def
@@ -0,0 +1,46 @@
+MISSION
+
+name: "Cmpn 05 Mail 01"
+type: "Patrol"
+system: "Jarnell"
+region: "Jarnell"
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Display, message: "MAIL", font: Limerick18, color: 0xffffffff, fade: (0,80,0), rect: (20,20, 300,100) }
+
+event: { event: Display, time: 1, message: "Decoding Path...", fade: (0,2,0), rect: (20, 40, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 3, message: "Decoding Content...", fade: (0,2,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, fade: (0,80,0), rect: (20,40, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "TO: $RANK $NAME\nCO: $GROUP\nFM: Sara Hunter - Ele'aan Consulate Jarnell\nRE: BROKEN COMMUNICATIONS\n-----\nPATH: Ele'aan Consular Net Center | Jarnell Main Traffic Relay | Athenar Terminus | Janek Station Courier Drop | 1ST FLEET HQ | Trellis Relay | Ostara Relay | $GROUP\n-----\n" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,190, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "Hello,\n\nI'm sorry I haven't written you in so long. I hope you'll accept my lame apology, as I don't even have a lame excuse! The Ele'aan Consulate is an absolute mad-house. Councilor Auris hasn't returned from the Ele'aan homeworld, and no replacement has been sent. We've been requesting an update from the Ele'aan leadership for weeks, but we can't get a straight answer from them (not that there's anything unusual about that).\n\nFinally this morning, everything just went to hell. Our communications line to the Ele'aan homeworld has gone completely silent. Half the computer systems in the consulate have gone dead and all kinds of critical files and databases have been deleted somehow. At least my personal system seems to be unaffected so far.\n\nWish you were here right now, I really need to talk to someone I can trust. Sometimes I think you are the only one left who I can rely on. I'm worried something has gone wrong... very wrong.\n\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/05/Mail_01_Incommunicado.ogg"
+}
+
+
+event: { event: EndScene, time: 55, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/M2-Final-Message.def b/data/shatter/Campaigns/05/Scenes/M2-Final-Message.def
new file mode 100644
index 0000000..98d99b3
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/M2-Final-Message.def
@@ -0,0 +1,55 @@
+MISSION
+
+name: "Cmpn 05 Mail 02"
+type: "Patrol"
+system: "Black"
+region: "Medium"
+degrees: true
+stardate: 1188338811
+
+element: {
+ name: Camera
+ design: CameraPod
+ mission: Misc
+
+ intel: Secret
+ count: 1
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+ head: 90
+}
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+
+event: { event: Display, time: 1, message: "--------------------------------------------------------\nNO MAIL HEADER RECORDS AVAILABLE\n--------------------------------------------------------", fade: (0,4,0), rect: (20, 20, 600,150), font: OCRB, color: 0xff33ff44, sound: "Bleep6.wav" }
+
+event: { event: Display, time: 2, message: "CONTENTS ENCRYPTED", fade: (0,3,0), rect: (20,70, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 3.0, message: "Decrypting...", fade: (0,0.5,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 3.5, message: "Decrypting.........", fade: (0,0.5,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44 }
+
+event: { event: Display, time: 4.0, message: "Decrypting..............Complete.", fade: (0,1,0), rect: (20,95, 600,800), font: OCRB, color: 0xff33ff44, sound: "Bleep12.wav" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,20, 600,150), font: OCRB, color: 0xff33ff44,
+ message: "================\nMESSAGE FOLLOWS:\n================" }
+
+event: { event: Display, time: 5, fade: (0,80,0), rect: (20,80, 600,800), font: OCRB, color: 0xff33ff44,
+ message: "I don't have very much time. I had to leave Jarnell in a hurry, can't say where I am or where I'm going. People started disappearing from the Ele'aan Consulate a week ago. One at a time, they just... weren't there anymore. I figured I'd better disappear myself, while I still had the chance to decide how and when. I don't know what is going to happen, or when I'll see you again. Or even if I'll see you again.\n\nI don't think I can trust Jonas anymore, or I'd go find him. But I had to tell someone, and I figured you might at least understand. Might at least try to do something without letting them trace the information back to me...\n\nThis whole war has been a sham from the beginning. The Zolons and Hegemony don't have the Borovan Archaelith - they never did. I took it from the museum myself the night the museum was destroyed. That was the real reason the Ele'aan Fusion went to the Borovan System - to get to the Archaelith first, before it could fall into Zolon hands.\n\nThe next day, I gave it to Councilor Auris and he took it with him back to Ele'aas. I can't understand why President Valmar would claim that the Fusion backed up his reasons for pursuing this conflict. We can't need the Marakan border worlds that badly, and I can't see a reason why he would want to stir up trouble with the Zolon Empire.\n\n
+I don't have very much time. I could be discovered at any moment. I need to keep moving. Promise me you'll stay safe, OK?\n\nLove from\nSara" }
+
+
+event: {
+ event: Message
+ time: 5
+ sound: "Vox/Scenes/05/Mail_02_Final_Message.ogg"
+}
+
+
+event: { event: EndScene, time: 83, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Scenes/Victory.def b/data/shatter/Campaigns/05/Scenes/Victory.def
new file mode 100644
index 0000000..7dfeb74
--- /dev/null
+++ b/data/shatter/Campaigns/05/Scenes/Victory.def
@@ -0,0 +1,116 @@
+MISSION
+
+name: "Cmpn 05 Victory"
+type: "Patrol"
+system: "Jarnell"
+system: "Athenar"
+system: "Paragon"
+system: "Thralis"
+system: "Borova"
+system: "Marak"
+region: "Marak"
+stardate: 1177998877
+
+element: {
+ name: Falcon
+ design: CameraPod
+ iff: 1
+ player: 1
+ loc: (0, 0, 0)
+}
+
+element: {
+ name: "Orion"
+ design: "Orion"
+ mission: "Flight Ops"
+
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-140e3, 160e3, 0)
+ navpt: { cmd: Vector, loc: (-140,-50e3,0), speed: 350, rgn: Marak }
+}
+
+element: {
+ name: "Courageous"
+ design: "Courageous"
+ commander: "Orion"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-132e3, 158e3, -550)
+ navpt: { cmd: Vector, loc: (-131e3,-50e3,-550), speed: 450, rgn: Marak }
+}
+
+element: {
+ name: "Asher"
+ design: "Asher"
+ commander: "Orion"
+ mission: "Escort"
+
+ intel: "Known"
+ count: 1
+ command_ai:1
+ iff: 1
+ playable: false
+ region: Marak
+ loc: (-148e3, 162e3, -1e3)
+ navpt: { cmd: Vector, loc: (-148,-50e3,-1e3), speed: 350, rgn: Marak }
+}
+
+
+
+event: { event: BeginScene, time: 0, message: "Scene 1" }
+
+event: { event: Camera, param: 3, target: "body:Marak", vec: (5, -0.1, 3e7) }
+event: { event: Camera, param: 5, vec: (-0.085, 0.002, 0.03) }
+
+
+event: { event: Display, message: "Operation Nightfall", font: Limerick18, color: 0xffffff80, fade: (0,15,1), rect: (20,20, 600,100) }
+event: { event: Display, message: "Victory", font: Limerick18, color: 0xffffff80, fade: (0,15,1), rect: (20,42, 600,100) }
+
+event: {
+ event: Message
+ time: 2
+ sound: "Vox/Scenes/05/End_01_Victory.ogg"
+}
+
+event: { event: Camera, time: 10, param: 3, target: Orion, vec: (2,0,8e3) }
+event: { event: Camera, param: 5, vec: ( 0.09, 0.002, 0.01) }
+
+event: { event: Camera, time: 20, param: 3, target: "body:Borova", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.03) }
+event: { event: Display, message: "Borova", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 25, param: 3, target: "body:Thrale", vec: (0, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Thralis", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 30, param: 3, target: "body:Paragon", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Paragon", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 35, param: 3, target: "body:Athenar", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Athenar", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+event: { event: Camera, time: 40, param: 3, target: "body:Jarnell", vec: (1, -0.1, 2.5e7) }
+event: { event: Camera, param: 5, vec: (-0.09, 0.002, 0.01) }
+event: { event: Display, message: "Jarnell", font: Limerick18, color: 0xffffff80, fade: (1,4,1), rect: (20,20, 600,100) }
+
+
+event: { event: Display, time: 45, image: "Campaigns/05/Scenes/Black.pcx", color: 0xffffffff, fade: (1,20,0), rect: (0,0,0,0) }
+event: { event: Display, time: 48, image: "Campaigns/05/Scenes/Alliance.pcx", color: 0xffffffff, fade: (1,7,1), rect: (0,0, -256,-256) }
+
+
+event: { event: EndScene, time: 60, message: "Scene 1" }
+event: { event: Exit }
+
+// EOF
diff --git a/data/shatter/Campaigns/05/Templates.def b/data/shatter/Campaigns/05/Templates.def
new file mode 100644
index 0000000..4a9e747
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates.def
@@ -0,0 +1,13 @@
+TEMPLATELIST
+
+// specialized templates first
+
+
+// then general templates
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_01.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_01.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_02.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_02.def" }
+mission: { type: PATROL, group: INTERCEPT_SQUADRON, script: "Templates/IS_Patrol_03.def" }
+mission: { type: PATROL, group: FIGHTER_SQUADRON, script: "Templates/FS_Patrol_03.def" }
+
diff --git a/data/shatter/Campaigns/05/Templates/FS_Patrol_01.def b/data/shatter/Campaigns/05/Templates/FS_Patrol_01.def
new file mode 100644
index 0000000..fdeee7f
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/FS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 5,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/05/Templates/FS_Patrol_02.def b/data/shatter/Campaigns/05/Templates/FS_Patrol_02.def
new file mode 100644
index 0000000..eb99bf2
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/FS_Patrol_02.def
@@ -0,0 +1,123 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Avenger,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 18e3, dex_var: 2e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/05/Templates/FS_Patrol_03.def b/data/shatter/Campaigns/05/Templates/FS_Patrol_03.def
new file mode 100644
index 0000000..229e324
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/FS_Patrol_03.def
@@ -0,0 +1,113 @@
+MISSION_TEMPLATE
+
+name: "Fighter Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 45e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/05/Templates/IS_Patrol_01.def b/data/shatter/Campaigns/05/Templates/IS_Patrol_01.def
new file mode 100644
index 0000000..37c50f7
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/IS_Patrol_01.def
@@ -0,0 +1,135 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 1"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Hector, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Delta, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 140e3, dex_var: 35e3, az: 0, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 130e3, dex_var: 15e3, az: 90, az_var: 30 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 100e3, dex_var: 15e3, az: 180, az_var: 30 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 150, az_var: 5 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: defend, tgt: Ward, tgt_desc: "the star freighter" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Hector,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 60e3, dex_var: 20e3 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+
+ element: {
+ name: Ward,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 0,
+ intel: known,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 30e3, dex_var: 10e3 }, speed: 400 },
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 400 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 4,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Cobra,
+ rloc: { ref: "Player:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Charlie,
+ design: Viper,
+ rloc: { ref: "Player:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Delta,
+ design: Viper,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Echo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 45e3, dex_var: 9e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/05/Templates/IS_Patrol_02.def b/data/shatter/Campaigns/05/Templates/IS_Patrol_02.def
new file mode 100644
index 0000000..88b811a
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/IS_Patrol_02.def
@@ -0,0 +1,128 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 2"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+callsign: { name: Charlie, iff: 2 }
+callsign: { name: Echo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 130e3, dex_var: 35e3, az: 0, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 150e3, dex_var: 25e3, az: 90, az_var: 20 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 110e3, dex_var: 15e3, az: 170, az_var: 20 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Helper,
+ design: Stormhawk,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+ },
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:3", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:3", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 2,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 30e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:2", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ optional: { min: 2, max: 2,
+ element: {
+ name: Charlie,
+ design: Cobra,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "Ship Strike" },
+ intel: secret,
+ },
+
+ element: {
+ name: Echo,
+ design: Viper,
+ rloc: { ref: Charlie, dex: 22e3, dex_var: 2e3 },
+ count: 2,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+ },
+}
diff --git a/data/shatter/Campaigns/05/Templates/IS_Patrol_03.def b/data/shatter/Campaigns/05/Templates/IS_Patrol_03.def
new file mode 100644
index 0000000..3fad84b
--- /dev/null
+++ b/data/shatter/Campaigns/05/Templates/IS_Patrol_03.def
@@ -0,0 +1,108 @@
+MISSION_TEMPLATE
+
+name: "Interceptor Patrol 3"
+type: PATROL
+degrees: true
+
+alias: { name: A1, code: player_carrier }
+alias: { name: A2, code: player_squadron }
+
+callsign: { name: Player, iff: 1 }
+callsign: { name: Helper, iff: 1 }
+callsign: { name: Alpha, iff: 2 }
+callsign: { name: Bravo, iff: 2 }
+
+element: {
+ name: Player,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 20e3, dex_var: 1e3 },
+ mission: patrol,
+
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+
+ navpt: { cmd: patrol, rloc: { ref: A1, dex: 150e3, dex_var: 35e3, az: 0, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:1", dex: 160e3, dex_var: 35e3, az: 90, az_var: 15 }, speed: 750 },
+ navpt: { cmd: patrol, rloc: { ref: "this:2", dex: 130e3, dex_var: 25e3, az: 170, az_var: 15 }, speed: 750 },
+ navpt: { cmd: vector, rloc: { ref: A1, dex: 40e3, az: 140, az_var: 10 }, speed: 500 },
+ navpt: { cmd: rtb, rloc: { ref: A1, dex: 20e3, az: 180, az_var: 0 }, speed: 250 },
+
+ objective: { cmd: patrol, tgt_desc: "inbound enemy units" },
+ objective: { cmd: rtb },
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: Helper,
+ design: Falcon,
+ squadron: A2,
+ commander: A1,
+ rloc: { ref: A1, dex: 55e3, dex_var: 25e3, az: -20, az_var: 10 },
+ mission: patrol,
+ count: 2,
+ iff: 1,
+}
+
+optional: {
+ min: 0,
+ max: 1,
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:1", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:2", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+
+ element: {
+ name: Test,
+ design: IM2800,
+ rloc: { ref: "Player:2", dex: 40e3, dex_var: 17e3 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ navpt: { cmd: vector, rloc: { ref: "Player:1", dex: 50e3, dex_var: 10e3 }, speed: 350 },
+ },
+}
+
+optional: {
+ min: 1,
+ max: 3,
+
+ element: {
+ name: Alpha,
+ design: Viper,
+ rloc: { ref: "Player:1", dex: 20e3, dex_var: 7e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Charlie,
+ design: Tiger,
+ rloc: { ref: "Player:2", dex: 45e3, dex_var: 5e3, az: 0, az_var: 30 },
+ count: 1,
+ iff: 2,
+ intel: secret,
+ },
+
+ element: {
+ name: Bravo,
+ design: Razor,
+ rloc: { ref: "Player:3", dex: 25e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Short Range" },
+ intel: secret,
+ },
+}
diff --git a/data/shatter/Campaigns/05/campaign.def b/data/shatter/Campaigns/05/campaign.def
new file mode 100644
index 0000000..19ee3dc
--- /dev/null
+++ b/data/shatter/Campaigns/05/campaign.def
@@ -0,0 +1,1403 @@
+CAMPAIGN
+
+name: "Operation Nightfall"
+
+desc:
+ "Two Force:Space fleets press on through major population centers on the "
+ "road to the Marakan homeworld. Civilians back home begin to question "
+ "the Alliance's involvement in the war, even as shadows fall upon the "
+ "climactic battle."
+
+situation:
+ "\tOperation Firestorm was not the strategic success we once believed it to be. "
+ "Force:Intel field agents have been unable to recover either the Borovan Archaelith "
+ "or any of the illegal technite from the Korian and Kolchev systems. We have now "
+ "determined that the technite has already been shipped "
+ "out of Kolchev to the Garrison system, and we believe that the Archaelith cannot "
+ "be far behind. Garrison is a major military stronghold for the Hegemony, close to the Marak system "
+ "itself. We cannot estimate how long we have before the Hegemony will be able to produce "
+ "a Quantum Disruptor weapon system.\n\n"
+
+ "\tWe are therefore commencing Operation Nightfall to recover the artifacts from the "
+ "Garrison system. Our first task is to gain military control of the Radix and Isham star "
+ "systems. Force First Fleet will take the northern route and secure the Isham system, "
+ "while Second Fleet holds their southern flank by controlling the Radix system. "
+ "Our combined forces will then converge on the Garrison system as soon as they can manage it.\n"
+
+orders:
+ "\t* First Fleet: Engage military targets in the Isham system.\n"
+ "\t* Second Fleet: Secure the Radix system.\n"
+ "\t* Both fleets to converge on the Garrison system as soon as possible.\n"
+
+/*******
+
+ISHAM
+ Garden / Tiger Bay
+ Senesca
+ Rom
+ Relay *
+
+RADIX
+ Senna
+ Radix / Shadow Canyon
+ Cavenda *
+
+GARRISON
+ Rhofar
+ Garrison
+ Korul
+ Nerasil *
+
+TROCANTHER
+ Volante / Hell's Kitchen
+ Narcissus
+ Path *
+
+MARAK
+ Marak
+ Xanthe *
+
+*******/
+
+combatant: {
+ name: "Terellian Alliance",
+ group: { type: fleet, id: 1 }, // Isham
+ group: { type: fleet, id: 2 }, // Radix
+}
+
+combatant: {
+ name: "Marakan Hegemony",
+ group: { type: fleet, id: 1 }, // Isham
+ group: { type: fleet, id: 2 }, // Radix
+ group: { type: fleet, id: 9 }, // Trocanther
+ group: { type: fleet, id: 10 }, // Marak - Ghost Fleet
+ group: { type: battalion, id: 4 }, // Ramek Station (Isham/Ramek)
+ group: { type: battalion, id: 15 }, // Tiger Base (Isham/Garden)
+ group: { type: battalion, id: 19 }, // Deadman's Alley (Radix/Shadow Canyon)
+ group: { type: battalion, id: 12 }, // Garrison Laboratory
+ group: { type: war_production, id: 5000 }, // Tiger Bay Civilian Units
+ group: { type: infrastructure, id: 5000 }, // Isham Farcaster Network
+ group: { type: war_production, id: 6000 }, // Hell's Kitchen Biodomes
+ group: { type: infrastructure, id: 7000 }, // Radix Farcaster Network
+}
+
+combatant: {
+ name: "Zolon Empire",
+ group: { type: fleet, id: 1 },
+ group: { type: fleet, id: 2 },
+ group: { type: fleet, id: 3 },
+}
+
+action: {
+ id: 0,
+ type: event,
+ subtype: campaign_start,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall",
+ source: FORCOM,
+ file: "Actions/01-operation-nightfall.txt"
+ image: "Actions/01-operation-nightfall.pcx"
+ scene: "Scenes/01-Operation-Nightfall.def"
+}
+
+action: {
+ id: 1,
+ type: zone,
+ team: 1,
+ zone: Relay,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 2,
+ type: zone,
+ team: 1,
+ zone: Cavenda,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 3,
+ type: system,
+ team: 2,
+ sys: Isham,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+}
+
+action: {
+ id: 4,
+ type: system,
+ team: 2,
+ sys: Radix,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+}
+
+action: {
+ id: 5,
+ type: system,
+ team: 2,
+ sys: Trocanther,
+ asset_type: fleet,
+ asset_id: 9,
+ text: "do-not-display",
+}
+
+//
+// NEWS STORIES
+//
+
+action: {
+ id: 20,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Tiger Bay",
+ text: "Tiger Bay Colony",
+ source: News,
+ file: "Actions/02-garden.txt",
+ image: "Actions/02-garden.pcx"
+ scene: "Scenes/02-Garden.def"
+}
+
+action: {
+ id: 21,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Radix",
+ after: "01/16:30:00",
+ text: "Radix System",
+ source: News,
+ file: "Actions/03-radix.txt",
+ image: "Actions/03-radix.pcx"
+ scene: "Scenes/03-Radix.def"
+}
+
+action: {
+ id: 22,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "09/11:45:00",
+ text: "Peace Rally",
+ source: News,
+ file: "Actions/04-politics.txt",
+ image: "Actions/04-politics.pcx"
+ scene: "Scenes/04-Politics.def"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+//
+// ISHAM SYSTEM
+//
+
+action: {
+ id: 50,
+ type: zone,
+ team: 1,
+ zone: Senesca,
+ asset_type: fleet,
+ asset_id: 1,
+ after: "02/06:30:00",
+ image: "Actions/AA-senesca-sector.pcx",
+}
+
+action: {
+ id: 70,
+ type: zone,
+ team: 1,
+ zone: Garden,
+ asset_type: carrier_group,
+ asset_id: 4,
+ after: "02/18:30:00",
+ image: "Actions/AA-garden-sector.pcx",
+}
+
+action: {
+ id: 80,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "03/21:00:00",
+ text: "Geothermal Platforms",
+ source: FORCOM,
+ file: "Actions/06-geothermal-platforms.txt",
+ image: "Actions/06-geothermal-platforms.pcx"
+ scene: "Scenes/06-Geothermal-Platforms.def"
+}
+
+action: {
+ id: 81,
+ type: intel,
+ subtype: reserve,
+ team: 2, // use IFF of the combatant (even though resource-5050 has IFF=0)
+ asset_type: resource,
+ asset_id: 5050,
+
+ req: { action: 80, status: COMPLETE }
+}
+
+action: {
+ id: 82,
+ type: intel,
+ subtype: known,
+ team: 2,
+ asset_type: resource,
+ asset_id: 5051,
+
+ req: { action: 81, status: COMPLETE }
+}
+
+
+action: {
+ id: 100,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: destroyer_squadron,
+ asset_id: 50,
+ after: "02/14:30:00",
+ text: "do-not-display",
+}
+
+action: {
+ id: 150,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "04/23:00:00",
+ text: "Ramek Station",
+ source: FORCOM,
+ file: "Actions/08-ramek-station.txt",
+ image: "Actions/08-ramek-station.pcx"
+ scene: "Scenes/08-Ramek-Station.def"
+}
+
+action: {
+ id: 170,
+ type: zone,
+ team: 1,
+ zone: Ramek,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 150, status: COMPLETE }
+}
+
+action: {
+ id: 175,
+ type: zone,
+ team: 2,
+ zone: Garden,
+ asset_type: carrier_group,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 150, status: COMPLETE }
+}
+
+
+action: {
+ id: 190,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Jalah,
+ text: "Ramek Station Destroyed",
+ file: "Actions/08a-ramek-destroyed.txt",
+ source: TACNET,
+ after: "08/01:00:00",
+
+ req: { action: 400, status: COMPLETE, not: true },
+
+ target_type: station,
+ target_id: 44,
+ target_iff: 2,
+ target_kill: "Ramek Station",
+}
+
+
+//
+// RADIX SYSTEM
+//
+
+action: {
+ id: 270,
+ type: zone,
+ team: 1,
+ zone: Radix,
+ asset_type: fleet,
+ asset_id: 2,
+ after: "02/09:30:00",
+ image: "Actions/03-radix.pcx",
+}
+
+action: {
+ id: 280,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Jarnell",
+ after: "02/14:00:00",
+ text: "Deadman's Alley",
+ source: SECURE,
+ file: "Actions/07-deadmans-alley.txt",
+ image: "Actions/07-deadmans-alley.pcx"
+ scene: "Scenes/07-Deadmans-Alley.def"
+}
+
+action: {
+ id: 290,
+ type: zone,
+ team: 1,
+ zone: Senna,
+ asset_type: fleet,
+ asset_id: 2,
+ after: "04/04:40:00",
+ image: "Actions/AA-senna-sector.pcx",
+}
+
+
+//
+// GARRISON
+//
+
+action: {
+ id: 400,
+ type: zone,
+ team: 1,
+ zone: Nerasil,
+ asset_type: fleet,
+ asset_id: 1,
+ after: "06/04:30:00",
+ image: "Actions/AA-nerasil-sector.pcx",
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 4, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 401,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 5,
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 403,
+ type: system,
+ team: 2,
+ sys: Garrison,
+ asset_type: fleet,
+ asset_id: 1,
+ text: "do-not-display",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 404,
+ type: system,
+ team: 2,
+ sys: Garrison,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 405,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Garrison",
+ text: "Garrison Military Laboratory",
+ source: SECURE,
+ file: "Actions/09-garrison-station.txt",
+ image: "Actions/09-garrison-station.pcx"
+ scene: "Scenes/09-Garrison-Station.def"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+
+action: {
+ id: 406,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tWe have completed operations in the Isham and Radix systems and "
+ "have begun the invasion of Garrison. The Garrison system has always "
+ "been a major storehouse for the Hegemony military. They maintain a "
+ "heavily fortified military laboratory in orbit around the planet Garrison.\n\n"
+
+ "\tFor the first phase of this invasion, "
+ "Force:Space First Fleet (Orion) will be assigned to eliminate units in "
+ "the Rhofar sector, while Second Fleet (Antares) deals with Hegemony forces in "
+ "Korul.",
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 407,
+ type: orders,
+ team: 1,
+ text:
+ "\t* First Fleet assigned to Rhofar Sector.\n"
+ "\t* Second Fleet assigned to Korul Sector.\n"
+ "\t* Reduce local defenses in preparation for assault on Garrison Military Laboratory.\n"
+
+ req: { action: 406, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 409,
+ type: zone,
+ team: 1,
+ zone: Rhofar,
+ asset_type: fleet,
+ asset_id: 1,
+ delay: 70e3, // 20 hours
+ image: "Actions/AA-rhofar-sector.pcx"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 410,
+ type: zone,
+ team: 1,
+ zone: Korul,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 100e3, // 30 hours
+ image: "Actions/AA-korul-sector.pcx"
+
+ req: { action: 400, status: COMPLETE }
+}
+
+action: {
+ id: 411,
+ type: intel,
+ subtype: known,
+ team: 1,
+ asset_type: battle_group,
+ asset_id: 8,
+
+ req: { action: 410, status: COMPLETE }
+}
+
+
+action: {
+ id: 420,
+ type: zone,
+ team: 1,
+ zone: Garrison,
+ asset_type: fleet,
+ asset_id: 1,
+ delay: 150e3, // 40 hours
+ image: "Actions/AA-garrison-sector.pcx",
+
+ req: { action: 410, status: COMPLETE }
+}
+
+action: {
+ id: 430,
+ type: zone,
+ team: 1,
+ zone: Garrison,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 150e3, // 40 hours
+ text: "do-not-display",
+
+ req: { action: 410, status: COMPLETE }
+}
+
+
+action: {
+ id: 440,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tBoth First and Second Fleet have converged on Garrison Sector. The Garrison "
+ "system has always been a major storehouse for the Hegemony military, and this "
+ "station is going to be no pushover. The station is armored, shielded, and has "
+ "as much firepower as a heavy cruiser.\n\n",
+
+ req: { action: 430, status: COMPLETE }
+}
+
+action: {
+ id: 441,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Eliminate the Garrison Military Laboratory.\n"
+ "\t* Reduce Hegemony star fleets in Garrison System.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 430, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 500,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "Broken Communications",
+ source: Mail,
+ file: "Actions/m1-incommunicado.txt",
+ image: "Actions/m0-mail-icon.pcx",
+ scene: "Scenes/m1-Incommunicado.def"
+ delay: 60e3
+
+ req: { action: 420, status: COMPLETE }
+}
+
+
+action: {
+ id: 580,
+ type: marker,
+ delay: 250e3,
+
+ req: { action: 430, status: COMPLETE }
+}
+
+action: {
+ id: 585,
+ type: marker,
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 12, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 590,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Garrison,
+ text: "Garrison Laboratory Destroyed",
+ file: "Actions/09a-garrison-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 580, status: COMPLETE },
+ req: { action: 585, status: COMPLETE, not: true },
+
+ target_type: station,
+ target_id: 3,
+ target_iff: 2,
+ target_kill: "Garrison Laboratory",
+}
+
+
+//
+// TROCANTHER
+//
+
+action: {
+ id: 600,
+ type: zone,
+ team: 1,
+ zone: Path,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-path-sector.pcx"
+
+ req: { c1: "Marakan Hegemony", group_type: battalion, group_id: 12, comp: LT, score: 2000 },
+}
+
+action: {
+ id: 601,
+ type: zone,
+ team: 1,
+ zone: Path,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 602,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tThe Garrison Military Laboratory has been destroyed. However, not all of "
+ "the Technite has yet been accounted for. Force:Intel believes that the remaining "
+ "stockpile has been shipped to Volante in the Trocanther System for processing.\n\n",
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 603,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Eliminate the Trocanther Biodomes.\n"
+ "\t* Reduce Hegemony star fleets throughout Trocanther System.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 605,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: "Trocanther",
+ text: "Trocanther Biodomes",
+ source: SECURE,
+ file: "Actions/10-trocanther-biodomes.txt",
+ image: "Actions/10-trocanther-biodomes.pcx"
+ scene: "Scenes/10-Trocanther-Biodomes.def"
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 610,
+ type: zone,
+ team: 1,
+ zone: Narcissus,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-narcissus-sector.pcx"
+ delay: 60e3,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+action: {
+ id: 620,
+ type: zone,
+ team: 1,
+ zone: Volante,
+ asset_type: fleet,
+ asset_id: 2,
+ image: "Actions/AA-volante-sector.pcx"
+ delay: 60e3,
+
+ req: { action: 600, status: COMPLETE }
+}
+
+
+action: {
+ id: 606,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: battle_group,
+ asset_id: 14,
+ delay: 20e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+
+
+action: {
+ id: 650,
+ type: marker,
+ delay: 220e3,
+
+ req: { action: 620, status: COMPLETE }
+}
+
+action: {
+ id: 651,
+ type: marker,
+ delay: 40e3,
+
+ req: { action: 650, status: COMPLETE }
+}
+
+action: {
+ id: 652,
+ type: marker,
+ delay: 40e3,
+
+ req: { action: 651, status: COMPLETE }
+}
+
+action: {
+ id: 660,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "Blackwing Destroyed",
+ file: "Actions/11a-blackwing-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 652, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: carrier_group, group_id: 9, comp: GT, score: 500 },
+
+ target_type: carrier_group,
+ target_id: 9,
+ target_iff: 2,
+ target_kill: "Blackwing",
+ target_kill: "Variak",
+ target_kill: "Talus",
+ target_kill: "Ramek",
+ target_kill: "Senna",
+}
+
+action: {
+ id: 661,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "Hood Destroyed",
+ file: "Actions/11b-hood-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 651, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: battle_group, group_id: 9, comp: GT, score: 500 },
+
+ target_type: battle_group,
+ target_id: 14,
+ target_iff: 2,
+ target_kill: "Hood",
+ target_kill: "Belerephon",
+ target_kill: "Firebolt",
+ target_kill: "Radelix",
+}
+
+
+action: {
+ id: 662,
+ type: event,
+ subtype: attack,
+ team: 1,
+ rgn: Volante,
+ text: "Omega Destroyed",
+ file: "Actions/11c-omega-destroyed.txt",
+ source: TACNET,
+
+ req: { action: 650, status: COMPLETE },
+ req: { c1: "Marakan Hegemony", group_type: battle_group, group_id: 10, comp: GT, score: 500 },
+
+ target_type: battle_group,
+ target_id: 15,
+ target_iff: 2,
+ target_kill: "Omega",
+ target_kill: "Hephaestus",
+ target_kill: "Mindalante",
+ target_kill: "Arcturus",
+}
+
+
+action: {
+ id: 680,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "Endgame",
+ source: FORCOM,
+ file: "Actions/12-endgame.txt",
+ image: "Actions/banner-alliance.pcx",
+ scene: "Scenes/12-Endgame.def"
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 9, comp: LT, score: 4000 },
+}
+
+
+//
+// MARAK
+//
+
+// Event 800 is the marker for the beginning of the
+// Marakan phase of this campaign. Once this event
+// is COMPLETE, the player cannot lose the game.
+
+action: {
+ id: 800,
+ type: marker,
+
+ req: { c1: "Marakan Hegemony", group_type: fleet, group_id: 9, comp: LT, score: 3000 },
+}
+
+// first, place all working marakan fleets on reserve:
+
+action: {
+ id: 801,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 802,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 2,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 803,
+ type: intel,
+ subtype: reserve,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 9,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+// then, release the zolons and hulks:
+
+action: {
+ id: 810,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 811,
+ type: zone,
+ team: 4,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 1,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 812,
+ type: intel,
+ subtype: secret,
+ team: 2,
+ asset_type: fleet,
+ asset_id: 10,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 820,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 2,
+ delay: 40e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 821,
+ type: system,
+ team: 4,
+ system: Marak,
+ asset_type: fleet,
+ asset_id: 2,
+
+ req: { action: 820, status: COMPLETE }
+}
+
+action: {
+ id: 823,
+ type: intel,
+ subtype: secret,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 3,
+ delay: 80e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 824,
+ type: system,
+ team: 4,
+ system: Marak,
+ asset_type: fleet,
+ asset_id: 3,
+
+ req: { action: 823, status: COMPLETE }
+}
+
+
+
+//
+// Finally, transfer the Alliance fleets to Xanthe in Marak system:
+//
+
+action: {
+ id: 830,
+ type: zone,
+ team: 1,
+ zone: Xanthe,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-xanthe-sector.pcx",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 831,
+ type: zone,
+ team: 1,
+ zone: Xanthe,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 835,
+ type: zone,
+ team: 1,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 1,
+ image: "Actions/AA-marak-sector.pcx",
+ delay: 70e3,
+
+ req: { action: 830, status: COMPLETE }
+}
+
+action: {
+ id: 836,
+ type: zone,
+ team: 1,
+ zone: Marak,
+ asset_type: fleet,
+ asset_id: 2,
+ text: "do-not-display",
+
+ req: { action: 835, status: COMPLETE }
+}
+
+
+
+
+action: {
+ id: 840,
+ type: sitrep,
+ team: 1,
+ text:
+ "\tOperation Nightfall is coming rapidly to a conclusion. Our contacts in the "
+ "Ele'aan Fusion have informed us that the Hegemony may have taken the Archaelith "
+ "back to the Marak Prime System. Even without the Technite, they could still use "
+ "the Archaelith against us in the future.\n\n"
+
+ "Therefore, the President has asked us to take this fight all the way to Marak, "
+ "to pressure the Hegemony leadership into surrendering the Archaelith and signing "
+ "a non-agression pact.\n\n",
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 841,
+ type: orders,
+ team: 1,
+ text:
+ "\t* Reduce Hegemony star fleets throughout Marakan System.\n"
+ "\t* Protect Alliance assets in the area.\n"
+
+ req: { action: 800, status: COMPLETE }
+}
+
+
+
+//
+// FINAL SEQUENCE:
+//
+
+
+action: {
+ id: 880,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 1,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 881,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 2,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 882,
+ type: intel,
+ subtype: reserve,
+ team: 4,
+ asset_type: fleet,
+ asset_id: 3,
+
+ delay: 150e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 885,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "This Can't Wait Any Longer...",
+ source: Mail,
+ file: "Actions/m2-final-message.txt",
+ image: "Actions/m0-mail-icon.pcx",
+ scene: "Scenes/m2-Final-Message.def"
+
+ delay: 50e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+action: {
+ id: 890,
+ type: event,
+ subtype: story,
+ team: 1,
+ rgn: Jarnell,
+ text: "Status of Marak Prime",
+ source: FORCOM,
+ file: "Actions/15-disappearance.txt",
+ image: "Actions/banner-alliance.pcx",
+ scene: "Scenes/15-Disappearance.def"
+
+ delay: 200e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+
+
+//
+// END GAMES!!!
+//
+// THE THRILL OF VICTORY (EVENT 800 COMPLETE)
+
+action: {
+ id: 999,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "Operation Nightfall Victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ delay: 250e3,
+
+ req: { action: 800, status: COMPLETE }
+}
+
+// THE MIDDLE ROAD (EVENT 800 COMPLETE)
+
+action: {
+ id: 901,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "Operation Nightfall Victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 902,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "Operation Nightfall Victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 903,
+ type: event,
+ subtype: campaign_end, // successful ending
+ team: 1,
+ rgn: Marak,
+ text: "Operation Nightfall Victory",
+ file: "Actions/victory.txt",
+ image: "Actions/victory",
+ scene: "Scenes/Victory.def"
+
+ req: { action: 800, status: COMPLETE }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+// THE AGONY OF DEFEAT (EVENT 400 NOT COMPLETE) - ISHAM / RADIX
+
+action: {
+ id: 910,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 911,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 912,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 913,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def1.txt",
+ image: "Actions/def1",
+ scene: "Scenes/Defeat1.def"
+
+ req: { action: 400, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+
+// THE AGONY OF DEFEAT (EVENT 600 NOT COMPLETE) - GARRISON
+
+action: {
+ id: 920,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 921,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 922,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 923,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def2.txt",
+ image: "Actions/def2",
+ scene: "Scenes/Defeat2.def"
+
+ req: { action: 600, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
+
+
+// THE AGONY OF DEFEAT (EVENT 800 NOT COMPLETE) - TROCANTHER
+
+action: {
+ id: 930,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", c2: "Marakan Hegemony", comp: RLT, score: -2000 },
+}
+
+action: {
+ id: 931,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 4, comp: LT, score: 3000 },
+ req: { c1: "Terellian Alliance", group_type: carrier_group, group_id: 5, comp: LT, score: 3000 },
+}
+
+action: {
+ id: 932,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 1, comp: LT, score: 5000 },
+}
+
+action: {
+ id: 933,
+ type: event,
+ subtype: campaign_fail,
+ team: 1,
+ rgn: Jarnell,
+ text: "Operation Nightfall Defeat",
+ file: "Actions/def3.txt",
+ image: "Actions/def3",
+ scene: "Scenes/Defeat3.def"
+
+ req: { action: 800, status: COMPLETE, not: true }
+ req: { c1: "Terellian Alliance", group_type: fleet, group_id: 2, comp: LT, score: 5000 },
+}
+
diff --git a/data/shatter/Campaigns/05/zones.def b/data/shatter/Campaigns/05/zones.def
new file mode 100644
index 0000000..242a46f
--- /dev/null
+++ b/data/shatter/Campaigns/05/zones.def
@@ -0,0 +1,97 @@
+ZONES
+
+
+// ISHAM
+
+zone: {
+ system: Isham,
+ region: Garden,
+ region: "Tiger Bay",
+}
+
+zone: {
+ system: Isham,
+ region: Senesca,
+}
+
+zone: {
+ system: Isham,
+ region: Ramek,
+}
+
+zone: {
+ system: Isham,
+ region: Relay,
+}
+
+
+// RADIX
+
+zone: {
+ system: Radix,
+ region: Senna,
+}
+
+zone: {
+ system: Radix,
+ region: Radix,
+ region: "Shadow Canyon",
+}
+
+zone: {
+ system: Radix,
+ region: Cavenda,
+}
+
+// GARRISON
+
+zone: {
+ system: Garrison,
+ region: Rhofar
+}
+
+zone: {
+ system: Garrison,
+ region: Garrison
+}
+
+zone: {
+ system: Garrison,
+ region: Korul
+}
+
+zone: {
+ system: Garrison,
+ region: Nerasil
+}
+
+// TROCANTHER
+
+zone: {
+ system: Trocanther,
+ region: Volante,
+ region: "Hell's Kitchen",
+}
+
+zone: {
+ system: Trocanther,
+ region: Narcissus
+}
+
+zone: {
+ system: Trocanther,
+ region: Path,
+}
+
+
+// MARAK
+
+zone: {
+ system: Marak,
+ region: Marak,
+}
+
+zone: {
+ system: Marak,
+ region: Xanthe,
+}
diff --git a/data/shatter/Campaigns/Alliance.def b/data/shatter/Campaigns/Alliance.def
new file mode 100644
index 0000000..83e65b9
--- /dev/null
+++ b/data/shatter/Campaigns/Alliance.def
@@ -0,0 +1,3471 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Terellian Alliance",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+}
+
+// -----------------------
+// JARNELL
+
+group: {
+ type: fleet,
+ id: 1,
+ name: "Orion",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 4,
+ name: "Orion",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Orion",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "69",
+ },
+
+ unit: {
+ name: "Courageous",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "521",
+ },
+
+ unit: {
+ name: "Asher",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "708",
+ },
+
+ unit: {
+ name: "Shaw",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "713",
+ },
+}
+
+group: {
+ type: wing,
+ id: 15,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: carrier_group,
+ parent_id: 4,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 17,
+ name: "Tigers",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: wing,
+ parent_id: 15,
+
+ unit: {
+ name: "Tiger",
+ type: "Fighter",
+ design: "Falcon",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 25,
+ name: "Nighthawks",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: wing,
+ parent_id: 15,
+
+ unit: {
+ name: "Nighthawk",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 28,
+ name: "Pirates",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: wing,
+ parent_id: 15,
+
+ unit: {
+ name: "Pirate",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 91,
+ name: "Starknights",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: wing,
+ parent_id: 15,
+
+ unit: {
+ name: "Starknight",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 16,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 88,
+ name: "Rhinos",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-130e3, 50e3, 0),
+ parent_type: wing,
+ parent_id: 15,
+
+ unit: {
+ name: "Rhino",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 5,
+ name: "Devastator",
+ intel: reserve,
+ iff: 1,
+ region: "Jarnell",
+ loc: (80e3, -90e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Devastator",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "400",
+ },
+
+ unit: {
+ name: "Steadfast",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "526",
+ },
+
+ unit: {
+ name: "Dauntless",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "531",
+ },
+
+ unit: {
+ name: "Vance",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "718",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 6,
+ name: "Havoc",
+ intel: known,
+ iff: 1,
+ region: "Adonis",
+ loc: (-30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Havoc",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "415",
+ },
+
+ unit: {
+ name: "Braveheart",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "536",
+ },
+
+ unit: {
+ name: "Integrity",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "541",
+ },
+
+ unit: {
+ name: "Douglas",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "723",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 50,
+ name: "Spectre",
+ intel: reserve,
+ iff: 1,
+ region: "Dawn",
+ loc: (110e3, 138e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Spectre",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "350",
+ },
+
+ unit: {
+ name: "Charon",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "355",
+ },
+
+ unit: {
+ name: "Berents",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "922",
+ },
+
+ unit: {
+ name: "Clarkeston",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "927",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 53,
+ name: "Morlock",
+ intel: reserve,
+ iff: 1,
+ region: "Dawn",
+ loc: (93e3, -91e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Morlock",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "360",
+ },
+
+ unit: {
+ name: "Phantasm",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "365",
+ },
+
+ unit: {
+ name: "Darvon",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "932",
+ },
+
+ unit: {
+ name: "Avalon",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "937",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 68,
+ name: "Robinson",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (157e3, 89e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Robinson",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "728",
+ },
+
+ unit: {
+ name: "Keller",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "733",
+ },
+
+ unit: {
+ name: "Malory",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "942",
+ },
+
+ unit: {
+ name: "Sorrel",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "947",
+ },
+}
+
+
+
+// -----------------------
+// THRALIS
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Antares",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 5,
+ name: "Antares",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Antares",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "70",
+ },
+
+ unit: {
+ name: "Fearless",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "522",
+ },
+
+ unit: {
+ name: "Ryan",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "709",
+ },
+
+ unit: {
+ name: "Card",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "714",
+ },
+}
+
+group: {
+ type: wing,
+ id: 12,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (110e3, -220e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 91,
+ name: "Bearcats",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: wing,
+ parent_id: 12,
+
+ unit: {
+ name: "Bearcat",
+ type: "Fighter",
+ design: "Falcon",
+ count: 32,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 30,
+ name: "Mustangs",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: wing,
+ parent_id: 12,
+
+ unit: {
+ name: "Mustang",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 37,
+ name: "Vipers",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: wing,
+ parent_id: 12,
+
+ unit: {
+ name: "Viper",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 45,
+ name: "Lancers",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: wing,
+ parent_id: 12,
+
+ unit: {
+ name: "Lancer",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 16,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 120,
+ name: "Taurus",
+ intel: known,
+ iff: 1,
+ region: "Thrale",
+ loc: (110e3, -220e3, 0),
+ parent_type: wing,
+ parent_id: 12,
+
+ unit: {
+ name: "Taurus",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 7,
+ name: "Annihilator",
+ intel: known,
+ iff: 1,
+ region: "Pollux",
+ loc: (30e3, 150e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Annihilator",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "401",
+ },
+
+ unit: {
+ name: "Assurance",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "527",
+ },
+
+ unit: {
+ name: "Vanguard",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "532",
+ },
+
+ unit: {
+ name: "Gibson",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "719",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 8,
+ name: "Vortex",
+ intel: reserve,
+ iff: 1,
+ region: "Hera",
+ loc: (110e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Vortex",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "411",
+ },
+
+ unit: {
+ name: "Defiant",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "537",
+ },
+
+ unit: {
+ name: "Capable",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "542",
+ },
+
+ unit: {
+ name: "Mahan",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "724",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 40,
+ name: "Wraith",
+ intel: known,
+ iff: 1,
+ region: "Zeus",
+ loc: (-80e3, 40e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Wraith",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "351",
+ },
+
+ unit: {
+ name: "Nemesis",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "356",
+ },
+
+ unit: {
+ name: "Bosporus",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "923",
+ },
+
+ unit: {
+ name: "Carlisle",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "928",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 41,
+ name: "Demon",
+ intel: reserve,
+ iff: 1,
+ region: "Thrale",
+ loc: (0, -90e3, -3e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Demon",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "361",
+ },
+
+ unit: {
+ name: "Revenant",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "366",
+ },
+
+ unit: {
+ name: "Leyte",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "933",
+ },
+
+ unit: {
+ name: "Argiles",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "938",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 59,
+ name: "Clarke",
+ intel: known,
+ iff: 1,
+ region: "Sparta",
+ loc: (-160e3, -180e3, -7e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Clarke",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "729",
+ },
+
+ unit: {
+ name: "Jackson",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "734",
+ },
+
+ unit: {
+ name: "Parker",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "943",
+ },
+
+ unit: {
+ name: "Suffolk",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "948",
+ },
+}
+
+
+// -----------------------
+// BOROVA
+
+group: {
+ type: fleet,
+ id: 3,
+ name: "Archon",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 6,
+ name: "Archon",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-130e3, 160e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Archon",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "71",
+ },
+
+ unit: {
+ name: "Stalwart",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "524",
+ },
+
+ unit: {
+ name: "Gerson",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "682",
+ },
+
+ unit: {
+ name: "Simmons",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "687",
+ },
+}
+
+group: {
+ type: wing,
+ id: 18,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: carrier_group,
+ parent_id: 6,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 37,
+ name: "Avengers",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-163e3, 107e3, 0),
+ parent_type: wing,
+ parent_id: 18,
+
+ unit: {
+ name: "Avenger",
+ type: "Fighter",
+ design: "Falcon",
+ count: 32,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 36,
+ name: "Stallions",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-169e3, 60e3, 0),
+ parent_type: wing,
+ parent_id: 18,
+
+ unit: {
+ name: "Stallion",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 39,
+ name: "Diamondbacks",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-169e3, 60e3, 0),
+ parent_type: wing,
+ parent_id: 18,
+
+ unit: {
+ name: "Diamondback",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 112,
+ name: "Warbirds",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-144e3, 45e3, 0),
+ parent_type: wing,
+ parent_id: 18,
+
+ unit: {
+ name: "Warbird",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 16,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Starlifters",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (-71e3, 136e3, 0),
+ parent_type: wing,
+ parent_id: 18,
+
+ unit: {
+ name: "Starlifters",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 9,
+ name: "Onslaught",
+ intel: known,
+ iff: 1,
+ region: "Borova",
+ loc: (-109e3, -77e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Onslaught",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "402",
+ },
+
+ unit: {
+ name: "Protector",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "528",
+ },
+
+ unit: {
+ name: "Redstone",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "533",
+ },
+
+ unit: {
+ name: "Raven",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "720",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 10,
+ name: "Predator",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Predator",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "412",
+ },
+
+ unit: {
+ name: "Audacious",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "538",
+ },
+
+ unit: {
+ name: "Fortitude",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "543",
+ },
+
+ unit: {
+ name: "Brunner",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "725",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 43,
+ name: "Shadow",
+ intel: reserve,
+ iff: 1,
+ region: "Trellis",
+ loc: (210e3, 38e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Shadow",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "352",
+ },
+
+ unit: {
+ name: "Necromancer",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "357",
+ },
+
+ unit: {
+ name: "Belfast",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "924",
+ },
+
+ unit: {
+ name: "Canton",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "929",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 44,
+ name: "Hydra",
+ intel: known,
+ iff: 1,
+ region: "Alystra",
+ loc: (93e3, -101e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Hydra",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "362",
+ },
+
+ unit: {
+ name: "Banshee",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "367",
+ },
+
+ unit: {
+ name: "Hemmet",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "934",
+ },
+
+ unit: {
+ name: "Essex",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "939",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 60,
+ name: "Gerrond",
+ intel: known,
+ iff: 1,
+ region: "Trellis",
+ loc: (157e3, 89e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Gerrond",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "730",
+ },
+
+ unit: {
+ name: "Radix",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "735",
+ },
+
+ unit: {
+ name: "Rainier",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "944",
+ },
+
+ unit: {
+ name: "Tanner",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "949",
+ },
+}
+
+
+// -----------------------
+// BOROVA
+
+group: {
+ type: fleet,
+ id: 4,
+ name: "Titan",
+ intel: known,
+ iff: 1,
+ region: "Borova",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 7,
+ name: "Titan",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (157e3, -202e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Titan",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "72",
+ },
+
+ unit: {
+ name: "Defender",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "524",
+ },
+
+ unit: {
+ name: "Reynolds",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "711",
+ },
+
+ unit: {
+ name: "Hawker",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "716",
+ },
+}
+
+group: {
+ type: wing,
+ id: 21,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (147e3, -192e3, 0),
+ parent_type: carrier_group,
+ parent_id: 7,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 93,
+ name: "Windriders",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (177e3, -212e3, 0),
+ parent_type: wing,
+ parent_id: 21,
+
+ unit: {
+ name: "Windrider",
+ type: "Fighter",
+ design: "Falcon",
+ count: 32,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 33,
+ name: "Chargers",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (165e3, -202e3, 0),
+ parent_type: wing,
+ parent_id: 21,
+
+ unit: {
+ name: "Charger",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 51,
+ name: "Wolfhounds",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (165e3, -202e3, 0),
+ parent_type: wing,
+ parent_id: 21,
+
+ unit: {
+ name: "Wolfhound",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 45,
+ name: "Razorbacks",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (157e3, -182e3, 0),
+ parent_type: wing,
+ parent_id: 21,
+
+ unit: {
+ name: "Razorback",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 20,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 103,
+ name: "Artemis",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (157e3, -182e3, 0),
+ parent_type: wing,
+ parent_id: 21,
+
+ unit: {
+ name: "Artemis",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: carrier_group,
+ id: 12,
+ name: "Chronos",
+ intel: reserve,
+ iff: 1,
+ region: "Jarnell",
+ loc: (157e3, -202e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Chronos",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "77",
+ },
+
+ unit: {
+ name: "Impervious",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "524",
+ },
+
+ unit: {
+ name: "Galland",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "711",
+ },
+
+ unit: {
+ name: "Pascal",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "716",
+ },
+}
+
+group: {
+ type: wing,
+ id: 29,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (147e3, -192e3, 0),
+ parent_type: carrier_group,
+ parent_id: 12,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 133,
+ name: "Windriders",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (177e3, -212e3, 0),
+ parent_type: wing,
+ parent_id: 29,
+
+ unit: {
+ name: "Windrider",
+ type: "Fighter",
+ design: "Falcon",
+ count: 20,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 53,
+ name: "Chargers",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (165e3, -202e3, 0),
+ parent_type: wing,
+ parent_id: 29,
+
+ unit: {
+ name: "Charger",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 20,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 75,
+ name: "Razorbacks",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (157e3, -182e3, 0),
+ parent_type: wing,
+ parent_id: 29,
+
+ unit: {
+ name: "Razorback",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 10,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 113,
+ name: "Artemis",
+ intel: known,
+ iff: 1,
+ region: "Jarnell",
+ loc: (157e3, -182e3, 0),
+ parent_type: wing,
+ parent_id: 29,
+
+ unit: {
+ name: "Artemis",
+ type: "LCA",
+ design: "Zodiac",
+ count: 6,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 14,
+ name: "Relentless",
+ intel: known,
+ iff: 1,
+ region: "Borova",
+ loc: (-67e3, 102e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Relentless",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "403",
+ },
+
+ unit: {
+ name: "Heroic",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "529",
+ },
+
+ unit: {
+ name: "Victorious",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "534",
+ },
+
+ unit: {
+ name: "Hale",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "721",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 15,
+ name: "Huntress",
+ intel: known,
+ iff: 1,
+ region: "Zhalisal",
+ loc: (-30e3, 180e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Huntress",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "417",
+ },
+
+ unit: {
+ name: "Valorous",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "539",
+ },
+
+ unit: {
+ name: "Intrepid",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "544",
+ },
+
+ unit: {
+ name: "Weber",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "726",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 45,
+ name: "Warlock",
+ intel: reserve,
+ iff: 1,
+ region: "Maraner",
+ loc: (21e3, 58e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Warlock",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "353",
+ },
+
+ unit: {
+ name: "Merlin",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "358",
+ },
+
+ unit: {
+ name: "Bering",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "925",
+ },
+
+ unit: {
+ name: "Davis",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "930",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 46,
+ name: "Typhon",
+ intel: known,
+ iff: 1,
+ region: "Danova",
+ loc: (-93e3, -141e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Typhon",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "363",
+ },
+
+ unit: {
+ name: "Chimaera",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "368",
+ },
+
+ unit: {
+ name: "Messina",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "935",
+ },
+
+ unit: {
+ name: "Nalu",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "940",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 61,
+ name: "Gamma",
+ intel: known,
+ iff: 1,
+ region: "Tulkas",
+ loc: (157e3, -29e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Gamma",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "731",
+ },
+
+ unit: {
+ name: "Lawrence",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "736",
+ },
+
+ unit: {
+ name: "Kelvin",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "945",
+ },
+
+ unit: {
+ name: "Trieste",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "950",
+ },
+}
+
+
+
+// -----------------------
+// JANUS/ATHENAR
+
+group: {
+ type: fleet,
+ id: 5,
+ name: "Hyperion",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 8,
+ name: "Hyperion",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (157e3, -162e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Hyperion",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "73",
+ },
+
+ unit: {
+ name: "Guardian",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "525",
+ },
+
+ unit: {
+ name: "Nordic",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "712",
+ },
+
+ unit: {
+ name: "Hughes",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "717",
+ },
+}
+
+group: {
+ type: wing,
+ id: 27,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (147e3, -162e3, 0),
+ parent_type: carrier_group,
+ parent_id: 8,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 95,
+ name: "Wizards",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (167e3, -152e3, 0),
+ parent_type: wing,
+ parent_id: 27,
+
+ unit: {
+ name: "Wizard",
+ type: "Fighter",
+ design: "Falcon",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 38,
+ name: "Hunters",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (147e3, -152e3, 0),
+ parent_type: wing,
+ parent_id: 27,
+
+ unit: {
+ name: "Hunter",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 46,
+ name: "Rangers",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (137e3, -162e3, 0),
+ parent_type: wing,
+ parent_id: 27,
+
+ unit: {
+ name: "Rangers",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 20,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 109,
+ name: "Capricorn",
+ intel: known,
+ iff: 1,
+ region: "Athenar",
+ loc: (147e3, -142e3, 0),
+ parent_type: wing,
+ parent_id: 27,
+
+ unit: {
+ name: "Capricorn",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 17,
+ name: "Furious",
+ intel: known,
+ iff: 1,
+ region: "Janek",
+ loc: (-247e3, -122e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Furious",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "404",
+ },
+
+ unit: {
+ name: "Valiant",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "530",
+ },
+
+ unit: {
+ name: "Honorable",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "535",
+ },
+
+ unit: {
+ name: "Salas",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "722",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 47,
+ name: "Phantom",
+ intel: known,
+ iff: 1,
+ region: "Pallas",
+ loc: (-217e3, 302e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Phantom",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "354",
+ },
+
+ unit: {
+ name: "Nightshade",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "359",
+ },
+
+ unit: {
+ name: "Dalton",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "926",
+ },
+
+ unit: {
+ name: "Delmar",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "931",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 48,
+ name: "Enigma",
+ intel: known,
+ iff: 1,
+ region: "Alystra",
+ loc: (-247e3, 102e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Enigma",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "364",
+ },
+
+ unit: {
+ name: "Gorgon",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "369",
+ },
+
+ unit: {
+ name: "Morgan",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "936",
+ },
+
+ unit: {
+ name: "Normandy",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "941",
+ },
+}
+
+group: {
+ type: battalion,
+ id: 5,
+ name: "Janek Station",
+ intel: "known",
+ iff: 1,
+ region: "Janek Station",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: starbase,
+ id: 3,
+ name: "Janek Station",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (20e3, 0, 0),
+ parent_type: battalion,
+ parent_id: 5,
+
+ unit: {
+ name: "Janek Station",
+ type: "Starbase",
+ design: "Airbase1",
+ heading: -90,
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 7,
+ name: "Altair",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (25e3, -4e3, 0),
+ parent_type: starbase,
+ parent_id: 3,
+
+ unit: {
+ name: "Altair",
+ type: "Fighter",
+ design: "Falcon",
+ count: 20,
+ dead_count: 10,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 5,
+ name: "Bristol",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (30e3, 4e3, 0),
+ parent_type: starbase,
+ parent_id: 3,
+
+ unit: {
+ name: "Bristol",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 20,
+ dead_count: 10,
+ },
+}
+
+group: {
+ type: battery,
+ id: 1,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 1,
+ region: "Telmera",
+ loc: (45e3, -36e3, 0),
+ parent_type: battalion,
+ parent_id: 5,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 2,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 1,
+ region: "Telmera",
+ loc: (10e3, 10e3, 0),
+ parent_type: battalion,
+ parent_id: 5,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 3,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 1,
+ region: "Telmera",
+ loc: (30e3, -32e3, 0),
+ parent_type: battalion,
+ parent_id: 5,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+
+// -----------------------
+// FLEET SIX
+
+group: {
+ type: fleet,
+ id: 6,
+ name: "Atlas",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 9,
+ name: "Atlas",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Atlas",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "74",
+ },
+
+ unit: {
+ name: "Loyalty",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "546",
+ },
+
+ unit: {
+ name: "Vernor",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "739",
+ },
+
+ unit: {
+ name: "Nichols",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "741",
+ },
+}
+
+group: {
+ type: wing,
+ id: 22,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (0, -20e3, 7e3),
+ parent_type: carrier_group,
+ parent_id: 9,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 94,
+ name: "Warriors",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (179e3, -300e3, 0),
+ parent_type: wing,
+ parent_id: 22,
+
+ unit: {
+ name: "Warrior",
+ type: "Fighter",
+ design: "Falcon",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 35,
+ name: "Broncos",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (125e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 22,
+
+ unit: {
+ name: "Bronco",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 55,
+ name: "Black Angels",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (125e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 22,
+
+ unit: {
+ name: "Angel",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 101,
+ name: "Sabres",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (246e3, -379e3, 0),
+ parent_type: wing,
+ parent_id: 22,
+
+ unit: {
+ name: "Sabre",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 20,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 104,
+ name: "Selene",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (195e3, -400e3, 0),
+ parent_type: wing,
+ parent_id: 22,
+
+ unit: {
+ name: "Selene",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 14,
+ name: "Stormwind",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (-109e3, -77e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Stormwind",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "420",
+ },
+
+ unit: {
+ name: "Justice",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "548",
+ },
+
+ unit: {
+ name: "Truth",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "550",
+ },
+
+ unit: {
+ name: "Hoffman",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "742",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 15,
+ name: "Typhoon",
+ intel: reserve,
+ iff: 1,
+ region: "Dorrath",
+ loc: (30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Typhoon",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "422",
+ },
+
+ unit: {
+ name: "Response",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "552",
+ },
+
+ unit: {
+ name: "Daring",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "554",
+ },
+
+ unit: {
+ name: "Deforest",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "744",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 45,
+ name: "Nightmare",
+ intel: reserve,
+ iff: 1,
+ region: "Bryn",
+ loc: (210e3, 38e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Nightmare",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "370",
+ },
+
+ unit: {
+ name: "Ghola",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "375",
+ },
+
+ unit: {
+ name: "Surrey",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "952",
+ },
+
+ unit: {
+ name: "Kent",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "954",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 46,
+ name: "Orknies",
+ intel: reserve,
+ iff: 1,
+ region: "Atlan",
+ loc: (93e3, -101e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Orknies",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "383",
+ },
+
+ unit: {
+ name: "Secret Fire",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "379",
+ },
+
+ unit: {
+ name: "Durham",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "956",
+ },
+
+ unit: {
+ name: "Kingston",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "958",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 61,
+ name: "Bear",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (157e3, 89e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Bear",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "746",
+ },
+
+ unit: {
+ name: "Chance",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "748",
+ },
+
+ unit: {
+ name: "Gamma",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "960",
+ },
+
+ unit: {
+ name: "Lawrence",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "962",
+ },
+}
+
+
+// -----------------------
+// FLEET SEVEN
+
+group: {
+ type: fleet,
+ id: 7,
+ name: "Heracles",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (-390e3, 10e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 11,
+ name: "Heracles",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Heracles",
+ type: "Carrier",
+ design: "Orion",
+ regnum: "77",
+ },
+
+ unit: {
+ name: "Forthright",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "547",
+ },
+
+ unit: {
+ name: "Arthur",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "739",
+ },
+
+ unit: {
+ name: "Smith",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "741",
+ },
+}
+
+group: {
+ type: wing,
+ id: 24,
+ name: "",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (0, -20e3, 7e3),
+ parent_type: carrier_group,
+ parent_id: 11,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 99,
+ name: "Aces",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (179e3, -300e3, 0),
+ parent_type: wing,
+ parent_id: 24,
+
+ unit: {
+ name: "Ace",
+ type: "Fighter",
+ design: "Falcon",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 39,
+ name: "Trailblazers",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (125e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 24,
+
+ unit: {
+ name: "Trailblazer",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 54,
+ name: "Gunfighters",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (127e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 24,
+
+ unit: {
+ name: "Gunfighter",
+ type: "Fighter",
+ design: "Eagle",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 49,
+ name: "Kings",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (246e3, -379e3, 0),
+ parent_type: wing,
+ parent_id: 24,
+
+ unit: {
+ name: "King",
+ type: "Attack",
+ design: "Thunderbolt",
+ count: 16,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 113,
+ name: "Perseus",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (195e3, -400e3, 0),
+ parent_type: wing,
+ parent_id: 24,
+
+ unit: {
+ name: "Perseus",
+ type: "LCA",
+ design: "Zodiac",
+ count: 8,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 19,
+ name: "Demolisher",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (-109e3, -77e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Demolisher",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "421",
+ },
+
+ unit: {
+ name: "Honesty",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "549",
+ },
+
+ unit: {
+ name: "Gallantry",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "551",
+ },
+
+ unit: {
+ name: "Parks",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "753",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 20,
+ name: "Shrike",
+ intel: known,
+ iff: 1,
+ region: "Dorrath",
+ loc: (30e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Shrike",
+ type: "Cruiser",
+ design: "Devastator",
+ regnum: "423",
+ },
+
+ unit: {
+ name: "Resolve",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "553",
+ },
+
+ unit: {
+ name: "Bold",
+ type: "Cruiser",
+ design: "Courageous",
+ regnum: "555",
+ },
+
+ unit: {
+ name: "Standish",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "755",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 52,
+ name: "Mysterious",
+ intel: reserve,
+ iff: 1,
+ region: "Bryn",
+ loc: (210e3, 38e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Mysterious",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "388",
+ },
+
+ unit: {
+ name: "Aegis",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "393",
+ },
+
+ unit: {
+ name: "Halston",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "953",
+ },
+
+ unit: {
+ name: "Portsmouth",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "955",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 54,
+ name: "Ogre",
+ intel: known,
+ iff: 1,
+ region: "Atlan",
+ loc: (93e3, -101e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Ogre",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "372",
+ },
+
+ unit: {
+ name: "Chaos",
+ type: "Destroyer",
+ design: "Spectre",
+ regnum: "373",
+ },
+
+ unit: {
+ name: "Bristol",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "957",
+ },
+
+ unit: {
+ name: "Oxford",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "959",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 69,
+ name: "Drayton",
+ intel: known,
+ iff: 1,
+ region: "Paragon",
+ loc: (157e3, 89e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Drayton",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "747",
+ },
+
+ unit: {
+ name: "Cavanaugh",
+ type: "Destroyer",
+ design: "Asher",
+ regnum: "749",
+ },
+
+ unit: {
+ name: "Columbia",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "961",
+ },
+
+ unit: {
+ name: "Orleans",
+ type: "Frigate",
+ design: "Berents",
+ regnum: "963",
+ },
+}
+
+
+
+
+// -----------------------
+// NON-COM and CIVILIAN
+
+group: {
+ type: civilian,
+ id: 1000,
+ name: "Civilian Forces",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: war_production,
+ id: 2000,
+ name: "War Production",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1000,
+}
+
+group: {
+ type: civilian,
+ id: 2100,
+ name: "Janek Industries",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (55e3, 35e3, 0),
+ parent_type: war_production,
+ parent_id: 2000,
+}
+
+group: {
+ type: infrastructure,
+ id: 2101,
+ name: "Reactor",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (55e3, 36e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: factory,
+ id: 2102,
+ name: "Factory 1",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (56e3, 35e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Factory 1",
+ type: "Factory",
+ design: "Fact04",
+ regnum: "",
+ },
+}
+
+group: {
+ type: factory,
+ id: 2103,
+ name: "Factory 2",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (58e3, 36e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Factory 2",
+ type: "Factory",
+ design: "Fact02",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2104,
+ name: "Office Block",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (-30e3, 15e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Office Block",
+ type: "Building",
+ design: "Bldg00",
+ count: 3,
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2105,
+ name: "Office Block",
+ intel: known,
+ iff: 1,
+ region: "Janek Station",
+ loc: (-20e3, 10e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Office Block",
+ type: "Building",
+ design: "Bldg01",
+ count: 3,
+ },
+}
+
+
+
+
+group: {
+ type: non_com,
+ id: 2000,
+ name: "Freight",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1000,
+}
+
+group: {
+ type: freight,
+ id: 3000,
+ name: "Roika Starlift",
+ intel: reserve,
+ iff: 1,
+ loc: (77e3, 57e3, 0),
+ parent_type: non_com,
+ parent_id: 2000,
+
+ unit: {
+ name: "Adventure",
+ type: "Freighter",
+ design: IM4300
+ regnum: "1919",
+ },
+
+ unit: {
+ name: "Endurance",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2211",
+ },
+
+ unit: {
+ name: "Mariner",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2234",
+ },
+
+ unit: {
+ name: "Vantage",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2241",
+ },
+
+ unit: {
+ name: "Wayfarer",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2243",
+ },
+}
+
+
+group: {
+ type: freight,
+ id: 3001,
+ name: "Roika Starlift",
+ intel: reserve,
+ iff: 1,
+ loc: (77e3, 57e3, 0),
+ parent_type: non_com,
+ parent_id: 2000,
+
+ unit: {
+ name: "Challenger",
+ type: "Freighter",
+ design: IM3500
+ regnum: "1921",
+ },
+
+ unit: {
+ name: "Explorer",
+ type: "Freighter",
+ design: IM3500
+ regnum: "1937",
+ },
+
+ unit: {
+ name: "Seeker",
+ type: "Freighter",
+ design: IM3500
+ regnum: "2216",
+ },
+
+ unit: {
+ name: "Viking",
+ type: "Freighter",
+ design: IM3500
+ regnum: "2320",
+ },
+
+ unit: {
+ name: "Wanderer",
+ type: "Freighter",
+ design: IM3500
+ regnum: "2405",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3002,
+ name: "Roika Starlift",
+ intel: reserve,
+ iff: 1,
+ loc: (77e3, 57e3, 0),
+ parent_type: non_com,
+ parent_id: 2000,
+
+
+ unit: {
+ name: "Discovery",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2117",
+ },
+
+ unit: {
+ name: "Harvester",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2225",
+ },
+
+ unit: {
+ name: "Sojourner",
+ type: "Freighter",
+ design: IM4300
+ regnum: "1875",
+ },
+
+ unit: {
+ name: "Voyager",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2109",
+ },
+
+ unit: {
+ name: "Windward",
+ type: "Freighter",
+ design: IM4300
+ regnum: "2046",
+ },
+}
+
+
+group: {
+ type: freight,
+ id: 3100,
+ name: "ChemStar",
+ intel: reserve,
+ iff: 1,
+ loc: (30e3, -180e3, 6e3),
+ parent_type: non_com,
+ parent_id: 2000,
+
+ unit: {
+ name: "ChemStar 1",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1101",
+ },
+
+ unit: {
+ name: "ChemStar 2",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1102",
+ },
+
+ unit: {
+ name: "ChemStar 3",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1103",
+ },
+
+ unit: {
+ name: "ChemStar 4",
+ type: "Freighter",
+ design: IM1906
+ regnum: "1104",
+ },
+
+ unit: {
+ name: "ChemStar 5",
+ type: "Freighter",
+ design: IM1906
+ regnum: "1105",
+ },
+
+ unit: {
+ name: "ChemStar 6",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1106",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3101,
+ name: "ChemStar",
+ intel: reserve,
+ iff: 1,
+ loc: (30e3, -180e3, 6e3),
+ parent_type: non_com,
+ parent_id: 2000,
+
+ unit: {
+ name: "ChemStar 7",
+ type: "Freighter",
+ design: IM1906
+ regnum: "1107",
+ },
+
+ unit: {
+ name: "ChemStar 8",
+ type: "Freighter",
+ design: IM1906
+ regnum: "1108",
+ },
+
+ unit: {
+ name: "ChemStar 9",
+ type: "Freighter",
+ design: IM1906
+ regnum: "1109",
+ },
+
+ unit: {
+ name: "ChemStar 10",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1110",
+ },
+
+ unit: {
+ name: "ChemStar 11",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1111",
+ },
+
+ unit: {
+ name: "ChemStar 12",
+ type: "Freighter",
+ design: IM1912
+ regnum: "1112",
+ },
+}
+
+
+
+// ----------------------------
+// ALLIANCE FARCASTER NETWORK
+
+
+group: {
+ type: infrastructure,
+ id: 5000,
+ name: "Alliance Farcaster Network",
+ intel: known,
+ iff: 1,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+// JARNELL SYSTEM:
+
+group: {
+ type: infrastructure,
+ id: 5001,
+ name: "Jarnell-Adonis",
+ intel: located,
+ iff: 1,
+ region: "Jarnell",
+ loc: (80e3, 20e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Jarnell-Adonis",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5002,
+ name: "Adonis-Jarnell",
+ intel: located,
+ iff: 1,
+ region: "Adonis",
+ loc: (90e3, -54e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Adonis-Jarnell",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5003,
+ name: "Jarnell-Dawn",
+ intel: located,
+ iff: 1,
+ region: "Jarnell",
+ loc: (-30e3, 10e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Jarnell-Dawn",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5004,
+ name: "Dawn-Jarnell",
+ intel: located,
+ iff: 1,
+ region: "Dawn",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Dawn-Jarnell",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+// BOROVA SYSTEM:
+
+group: {
+ type: infrastructure,
+ id: 5011,
+ name: "Borova-Danova",
+ intel: located,
+ iff: 1,
+ region: "Borova",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Borova-Danova",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5011",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5012,
+ name: "Danova-Borova",
+ intel: located,
+ iff: 1,
+ region: "Danova",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Danova-Borova",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5012",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5013,
+ name: "Danova-Tulkas",
+ intel: located,
+ iff: 1,
+ region: "Danova",
+ loc: (50e3, -120e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Danova-Tulkas",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5013",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5014,
+ name: "Tulkas-Danova",
+ intel: located,
+ iff: 1,
+ region: "Tulkas",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Tulkas-Danova",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5014",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5015,
+ name: "Borova-Maraner",
+ intel: located,
+ iff: 1,
+ region: "Borova",
+ loc: (-30e3, 110e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Borova-Maraner",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5015",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5016,
+ name: "Maraner-Borova",
+ intel: located,
+ iff: 1,
+ region: "Maraner",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Maraner-Borova",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5016",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2200,
+ name: "Vestapol",
+ intel: located,
+ iff: 0,
+ region: "Vestapol",
+ loc: (-54e3, 30e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: civilian,
+ id: 2201,
+ name: "Vestapol",
+ intel: located,
+ iff: 0,
+ region: "Vestapol",
+ loc: (-10e3, 0, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Downtown",
+ type: "Building",
+ design: "City03",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2202,
+ name: "Vestapol",
+ intel: located,
+ iff: 0,
+ region: "Vestapol",
+ loc: (-16e3, 5e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Crosstown",
+ type: "Building",
+ design: "City03",
+ regnum: ""
+ heading: 270,
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2203,
+ name: "Museum District",
+ intel: located,
+ iff: 0,
+ region: "Vestapol",
+ loc: (-10e3, 5e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Museum",
+ type: "Building",
+ design: "Bldg01",
+ regnum: ""
+ },
+}
+
+// JANUS SYSTEM:
+
+group: {
+ type: infrastructure,
+ id: 5021,
+ name: "Janek-Alystra",
+ intel: located,
+ iff: 1,
+ region: "Janek",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Janek-Alystra",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5021",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5022,
+ name: "Alystra-Janek",
+ intel: located,
+ iff: 1,
+ region: "Alystra",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Alystra-Janek",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5022",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5023,
+ name: "Alystra-Navara",
+ intel: located,
+ iff: 1,
+ region: "Alystra",
+ loc: (-50e3, 120e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Alystra-Navara",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5023",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5024,
+ name: "Navara-Alystra",
+ intel: located,
+ iff: 1,
+ region: "Navara",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Navara-Alystra",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "5024",
+ },
+}
+
+
diff --git a/data/shatter/Campaigns/Dantari.def b/data/shatter/Campaigns/Dantari.def
new file mode 100644
index 0000000..c323985
--- /dev/null
+++ b/data/shatter/Campaigns/Dantari.def
@@ -0,0 +1,1226 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Dantari Separatists",
+ intel: tracked,
+ iff: 2,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 1,
+ name: "First",
+ intel: tracked,
+ iff: 2,
+ region: "Jalah",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 5,
+ name: "Goliath",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Goliath",
+ type: "Carrier",
+ design: "Goliath",
+ regnum: "67",
+ },
+
+ unit: {
+ name: "Lanner",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "321",
+ },
+
+ unit: {
+ name: "Connel",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "326",
+ },
+
+ unit: {
+ name: "Ganat",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "112",
+ },
+
+ unit: {
+ name: "Olan",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "113",
+ },
+}
+
+group: {
+ type: wing,
+ id: 3,
+ name: "Talon",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (0, -20e3, 7e3),
+ parent_type: carrier_group,
+ parent_id: 5,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 14,
+ name: "Blood Hawks",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (-60e3, -210e3, -6e3),
+ parent_type: wing,
+ parent_id: 3,
+
+ unit: {
+ name: "Blood Hawk",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 16,
+ name: "Red Claws",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (-30e3, -210e3, -9e3),
+ parent_type: wing,
+ parent_id: 3,
+
+ unit: {
+ name: "Red Claw",
+ type: "Fighter",
+ design: "Razor",
+ count: 40,
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 5,
+ name: "Wolf",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (-280e3, -120e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Wolf",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "305",
+ },
+
+ unit: {
+ name: "Halas",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "306",
+ },
+
+ unit: {
+ name: "Baikal",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "101",
+ },
+
+ unit: {
+ name: "Kyren",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "102",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 6,
+ name: "Kitts",
+ intel: known,
+ iff: 2,
+ region: "Trellis",
+ loc: (-100e3, -270e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Kitts",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "307",
+ },
+
+ unit: {
+ name: "Tomal",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "308",
+ },
+
+ unit: {
+ name: "Lovo",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Udel",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 7,
+ name: "Kendra",
+ intel: known,
+ iff: 2,
+ region: "Meridian",
+ loc: (-100e3, 70e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Kendra",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "307",
+ },
+
+ unit: {
+ name: "Sayal",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "308",
+ },
+
+ unit: {
+ name: "Baionne",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Pelorat",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: minefield,
+ id: 1,
+ name: "Minefield A",
+ intel: known,
+ iff: 2,
+ region: "Trellis",
+ loc: (-140e3, -100e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Minefield A",
+ type: "MINE",
+ design: "Blockade Mine",
+ count: 6,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 2,
+ name: "Minefield B",
+ intel: known,
+ iff: 2,
+ region: "Trellis",
+ loc: (-120e3, -110e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Minefield B",
+ type: "MINE",
+ design: "Blockade Mine",
+ count: 6,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 3,
+ name: "Minefield C",
+ intel: known,
+ iff: 2,
+ region: "Trellis",
+ loc: (-70e3, -130e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Minefield C",
+ type: "MINE",
+ design: "Blockade Mine",
+ count: 6,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 4,
+ name: "Minefield D",
+ intel: reserve,
+ iff: 2,
+ region: "Trellis",
+ loc: (-110e3, -125e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Minefield D",
+ type: "MINE",
+ design: "Blockade Mine",
+ count: 6,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 5,
+ name: "Minefield E",
+ intel: reserve,
+ iff: 2,
+ region: "Trellis",
+ loc: (-75e3, -110e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Minefield E",
+ type: "MINE",
+ design: "Blockade Mine",
+ count: 6,
+ },
+}
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Second",
+ intel: reserve,
+ iff: 2,
+ region: "Adantar",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 7,
+ name: "Leviathan",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Leviathan",
+ type: "Carrier",
+ design: "Goliath",
+ regnum: "68",
+ },
+
+ unit: {
+ name: "Vance",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "351",
+ },
+
+ unit: {
+ name: "Shannon",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "355",
+ },
+
+ unit: {
+ name: "Oronis",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "120",
+ },
+
+ unit: {
+ name: "Ashala",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "122",
+ },
+}
+
+group: {
+ type: wing,
+ id: 5,
+ name: "Spearhead",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (0, -20e3, 7e3),
+ parent_type: carrier_group,
+ parent_id: 7,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 17,
+ name: "Dragons",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: wing,
+ parent_id: 5,
+
+ unit: {
+ name: "Dragon",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 19,
+ name: "Lions",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (0, -20e3, 7e3),
+ parent_type: wing,
+ parent_id: 5,
+
+ unit: {
+ name: "Lion",
+ type: "Fighter",
+ design: "Razor",
+ count: 40,
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 9,
+ name: "Tarkis",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Tarkis",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "312",
+ },
+
+ unit: {
+ name: "Kinch",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "315",
+ },
+
+ unit: {
+ name: "Kolos",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "110",
+ },
+
+ unit: {
+ name: "Merin",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "118",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 10,
+ name: "Salver",
+ intel: secret,
+ iff: 2,
+ region: "Adantar",
+ loc: (0, -30e3, -9e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Salver",
+ type: "Destroyer",
+ design: "Wolf",
+ regnum: "321",
+ },
+
+ unit: {
+ name: "Regent",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "324",
+ },
+
+ unit: {
+ name: "Rhotan",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "114",
+ },
+
+ unit: {
+ name: "Palan",
+ type: "Frigate",
+ design: "Baikal",
+ regnum: "134",
+ },
+}
+
+group: {
+ type: battalion,
+ id: 1,
+ name: "Jalah",
+ intel: known,
+ iff: 2,
+ region: "Jalah",
+ loc: (-150e3, -150e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: station,
+ id: 5,
+ name: "Fort Talas",
+ intel: secret,
+ iff: 0,
+ region: "Jalah",
+ loc: (-150e3, -150e3, 0),
+ parent_type: battalion,
+ parent_id: 1,
+
+ unit: {
+ name: "Fort Talas",
+ type: "Station",
+ design: "Station3",
+ regnum: "000",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 5,
+ name: "Rapiers",
+ intel: secret,
+ iff: 2,
+ region: "Jalah",
+ loc: (-140e3, -140e3, 0),
+ parent_type: station,
+ parent_id: 5,
+
+ unit: {
+ name: "Rapiers",
+ type: "Fighter",
+ design: "Viper",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 6,
+ name: "Sabers",
+ intel: secret,
+ iff: 2,
+ region: "Jalah",
+ loc: (-130e3, -130e3, 0),
+ parent_type: station,
+ parent_id: 5,
+
+ unit: {
+ name: "Saber",
+ type: "Fighter",
+ design: "Razor",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 7,
+ name: "Long Lance",
+ intel: secret,
+ iff: 2,
+ region: "Jalah",
+ loc: (-120e3, -120e3, 0),
+ parent_type: station,
+ parent_id: 5,
+
+ unit: {
+ name: "Long Lance",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: battalion,
+ id: 2,
+ name: "Vantage",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (0, -30e3, -9e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: battery,
+ id: 1,
+ name: "SAM Battery 1",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (45e3, -36e3, 0),
+ parent_type: battalion,
+ parent_id: 2,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 2,
+ name: "SAM Battery 2",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (40e3, -60e3, 0),
+ parent_type: battalion,
+ parent_id: 2,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 3,
+ name: "SAM Battery 3",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (30e3, -32e3, 0),
+ parent_type: battalion,
+ parent_id: 2,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 3,
+ name: "SAM Battery 4",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (40e3, -35e3, 0),
+ parent_type: battalion,
+ parent_id: 2,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: starbase,
+ id: 1,
+ name: "Foothill Base",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (56e3, -49e3, 0),
+ parent_type: battalion,
+ parent_id: 2,
+
+ unit: {
+ name: "Foothill Base",
+ type: "Starbase",
+ design: "Airbase2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 3,
+ name: "Adanis",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (55e3, -49e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Adani",
+ type: "Fighter",
+ design: "Viper",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 4,
+ name: "Cobra Fangs",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (55e3, -49e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Cobra Fang",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: war_production,
+ id: 1,
+ name: "Telmera Compound",
+ intel: secret,
+ iff: 2,
+ loc: (80e3, -120e3, 7e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: civilian,
+ id: 2100,
+ name: "Foothill Ridge",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (55e3, -55e3, 0),
+ parent_type: war_production,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2101,
+ name: "Reactor",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (55e3, -57e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: factory,
+ id: 2102,
+ name: "Factory 1",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (56e3, -55e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Factory 1",
+ type: "Factory",
+ design: "Fact04",
+ regnum: "",
+ },
+}
+
+group: {
+ type: factory,
+ id: 2103,
+ name: "Factory 2",
+ intel: secret,
+ iff: 2,
+ region: "Telmera",
+ loc: (58e3, -56e3, 0),
+ parent_type: civilian,
+ parent_id: 2100,
+
+ unit: {
+ name: "Factory 2",
+ type: "Factory",
+ design: "Fact02",
+ regnum: "",
+ },
+}
+
+
+
+group: {
+ type: battalion,
+ id: 3,
+ name: "Tanis",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-60e3, -3e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: battery,
+ id: 31,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-60e3, -3e3, 0),
+ parent_type: battalion,
+ parent_id: 3,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ loc: (-60e3, -3e3, 0),
+ },
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ loc: (-60e3, -1e3, 0),
+ },
+}
+
+group: {
+ type: battery,
+ id: 32,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-40e3, -100e3, 0),
+ parent_type: battalion,
+ parent_id: 3,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 33,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (60e3, 12e3, 0),
+ parent_type: battalion,
+ parent_id: 3,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+
+group: {
+ type: starbase,
+ id: 2,
+ name: "Tanis Base",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-54e3, 5e3, 0),
+ parent_type: battalion,
+ parent_id: 3,
+
+ unit: {
+ name: "Tanis Base",
+ type: "Starbase",
+ design: "Airbase3",
+ regnum: "",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 3,
+ name: "Istari",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-50e3, 7e3, 0),
+ parent_type: starbase,
+ parent_id: 2,
+
+ unit: {
+ name: "Istar",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 4,
+ name: "Sandstorm",
+ intel: secret,
+ iff: 2,
+ region: "Tanis",
+ loc: (-50e3, 9e3, 0),
+ parent_type: starbase,
+ parent_id: 2,
+
+ unit: {
+ name: "Sandstorm",
+ type: "Attack",
+ design: "Cobra",
+ count: 40,
+ },
+}
+
+
+
+
+
+
+group: {
+ type: non_com,
+ id: 2300,
+ name: "Freight",
+ intel: secret,
+ iff: 2,
+ loc: (0, -20e3, 7e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: freight,
+ id: 3000,
+ name: "Logistics Support",
+ intel: secret,
+ iff: 2,
+ region: "Trellis",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: non_com,
+ parent_id: 2300,
+
+ unit: {
+ name: "DTS Sarn Mellor",
+ type: "Cargo",
+ design: "IM3500",
+ regnum: "798",
+ },
+
+ unit: {
+ name: "DTS Rannat",
+ type: "Cargo",
+ design: "IM3500",
+ regnum: "780",
+ },
+
+ unit: {
+ name: "DTS Landa",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "354",
+ },
+
+ unit: {
+ name: "DTS Gaal Barat",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "843",
+ },
+
+ unit: {
+ name: "DTS Jaim Cole",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "235",
+ },
+
+ unit: {
+ name: "DTS Seleno",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "493",
+ },
+
+ unit: {
+ name: "DTS Ecliptic",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "219",
+ },
+
+ unit: {
+ name: "DTS Transfer",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "381",
+ },
+
+ unit: {
+ name: "DTS Rapid",
+ type: "Cargo",
+ design: "IM3500",
+ regnum: "521",
+ },
+
+ unit: {
+ name: "DTS Caravel",
+ type: "Cargo",
+ design: "IM3500",
+ regnum: "617",
+ },
+}
+
+
+
+group: {
+ type: war_production,
+ id: 3000,
+ name: "War Production - Tanis",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: resource,
+ id: 3000,
+ name: "Tanis Mining Station",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (0, -67e3, 0),
+ parent_type: war_production,
+ parent_id: 3000,
+}
+
+group: {
+ type: resource,
+ id: 3001,
+ name: "Mining Station",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (0, -67e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Mining Station",
+ type: "Building",
+ design: "Dsrt05",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 3002,
+ name: "Administration",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (3e3, -70e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Administration",
+ type: "Building",
+ design: "Dsrt01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: refinery,
+ id: 3003,
+ name: "Refinery",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (-4e3, -67e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Refinery",
+ type: "Building",
+ design: "Dsrt00",
+ regnum: "",
+ },
+
+ unit: {
+ name: "Cooling Tower",
+ type: "Building",
+ design: "Cool00",
+ count: 3,
+ },
+
+ unit: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 2,
+ },
+}
+
+group: {
+ type: resource,
+ id: 3004,
+ name: "Reactor",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (5e3, -67e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: habitat,
+ id: 3005,
+ name: "Downtown",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (9e3, -9e3, 0)
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Downtown",
+ type: "Building",
+ design: "Dsrt04",
+ regnum: "",
+ },
+}
+
+group: {
+ type: habitat,
+ id: 3006,
+ name: "Outpost",
+ intel: known,
+ iff: 2,
+ region: "Tanis",
+ loc: (10e3, -12e3, 0)
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Outpost",
+ type: "Building",
+ design: "Dsrt04",
+ regnum: "",
+ },
+}
+
diff --git a/data/shatter/Campaigns/Haiche.def b/data/shatter/Campaigns/Haiche.def
new file mode 100644
index 0000000..0074700
--- /dev/null
+++ b/data/shatter/Campaigns/Haiche.def
@@ -0,0 +1,402 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Haiche Protectorate",
+ intel: located,
+ iff: 0,
+ region: "Haiche",
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: civilian,
+ id: 1,
+ name: "Civilian Infrastructure",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2000,
+ name: "Haiche Farcaster Network",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2001,
+ name: "Haiche-Tal Amin",
+ intel: located,
+ iff: 0,
+ region: "Haiche",
+ loc: (131e3, 60e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Haiche-Tal Amin",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2002,
+ name: "Tal Amin-Haiche",
+ intel: located,
+ iff: 0,
+ region: "Tal Amin",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Tal Amin-Haiche",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2003,
+ name: "Tal Amin-Cygnus",
+ intel: located,
+ iff: 0,
+ region: "Tal Amin",
+ loc: (-176e3, 71e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Tal Amin-Cygnus",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2004,
+ name: "Cygnus-Tal Amin",
+ intel: located,
+ iff: 0,
+ region: "Cygnus",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Cygnus-Tal Amin",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2005,
+ name: "Haiche-Kala",
+ intel: located,
+ iff: 0,
+ region: "Haiche",
+ loc: (-163e3, -63e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Haiche-Kala",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: transport,
+ id: 2006,
+ name: "Kala-Haiche",
+ intel: located,
+ iff: 0,
+ region: "Kala",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Kala-Haiche",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2007,
+ name: "Cygnus-Kala",
+ intel: located,
+ iff: 0,
+ region: "Cygnus",
+ loc: (-150e3, -50e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Cygnus-Kala",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: transport,
+ id: 2008,
+ name: "Kala-Cygnus",
+ intel: located,
+ iff: 0,
+ region: "Kala",
+ loc: (-120e3, 170e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Kala-Cygnus",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: non_com,
+ id: 3000,
+ name: "Freight",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (0, -20e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: freight,
+ id: 3001,
+ name: "Independent Shipping",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (80e3, -120e3, 0),
+ parent_type: non_com,
+ parent_id: 3000,
+}
+
+group: {
+ type: freight,
+ id: 3498,
+ name: "ISS Silent Forest",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (90e3, -130e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Silent Forest",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "498",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3480,
+ name: "ISS Peralta",
+ intel: known,
+ iff: 0,
+ region: "Cygnus",
+ loc: (110e3, -120e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Peralta",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "480",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3254,
+ name: "ISS Bright Horizon",
+ intel: known,
+ iff: 0,
+ region: "Tal Amin",
+ loc: (175e3, 200e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Bright Horizon",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "254",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3443,
+ name: "ISS Stardust",
+ intel: known,
+ iff: 0,
+ region: "Kala",
+ loc: (160e3, 211e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Stardust",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "443",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3535,
+ name: "ISS Distant Shore",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (-20e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Distant Shore",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "535",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3693,
+ name: "ISS Silver Mountain",
+ intel: known,
+ iff: 0,
+ region: "Cygnus",
+ loc: (-90e3, 160e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Silver Mountain",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "693",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3519,
+ name: "ISS Cloud Walker",
+ intel: known,
+ iff: 0,
+ region: "Tal Amin",
+ loc: (-102e3, 138e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Cloud Walker",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "519",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3581,
+ name: "ISS Mount Hastings",
+ intel: known,
+ iff: 0,
+ region: "Kala",
+ loc: (99e3, -128e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Mount Hastings",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "581",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3321,
+ name: "ISS Sato",
+ intel: known,
+ iff: 0,
+ region: "Haiche",
+ loc: (79e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Sato",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "321",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3714,
+ name: "ISS Everest",
+ intel: known,
+ iff: 0,
+ region: "Cygnus",
+ loc: (75e3, -150e3, 0),
+ parent_type: freight,
+ parent_id: 3001,
+
+ unit: {
+ name: "ISS Everest",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "714",
+ },
+}
+
diff --git a/data/shatter/Campaigns/Hegemony.def b/data/shatter/Campaigns/Hegemony.def
new file mode 100644
index 0000000..679aad3
--- /dev/null
+++ b/data/shatter/Campaigns/Hegemony.def
@@ -0,0 +1,5190 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Marakan Hegemony",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 1,
+ name: "Dragon",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (130e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 1,
+ name: "Dragon",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Dragon",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A1",
+ },
+
+ unit: {
+ name: "Alin Volnaris",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D01",
+ },
+
+ unit: {
+ name: "Pav Enke",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D05",
+ },
+
+ unit: {
+ name: "Tiger Bay",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E01",
+ },
+
+ unit: {
+ name: "Falkridge",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E08",
+ },
+}
+
+group: {
+ type: wing,
+ id: 1,
+ name: "",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (130e3, -180e3, 6e3),
+ parent_type: carrier_group,
+ parent_id: 1,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 90,
+ name: "Scorpions",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (179e3, -300e3, 0),
+ parent_type: wing,
+ parent_id: 1,
+
+ unit: {
+ name: "Scorpion",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 28,
+ name: "Raptors",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (125e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 1,
+
+ unit: {
+ name: "Raptor",
+ type: "Fighter",
+ design: "Raptor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 41,
+ name: "Avengers",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (246e3, -379e3, 0),
+ parent_type: wing,
+ parent_id: 1,
+
+ unit: {
+ name: "Avenger",
+ type: "Attack",
+ design: "Avenger",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 100,
+ name: "Ares",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (195e3, -400e3, 0),
+ parent_type: wing,
+ parent_id: 1,
+
+ unit: {
+ name: "Ares",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 4,
+ name: "Vendetta",
+ intel: reserve,
+ iff: 2,
+ region: "Marak",
+ loc: (-230e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Vendetta",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D15",
+ },
+
+ unit: {
+ name: "Risk",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D22",
+ },
+
+ unit: {
+ name: "Scepter",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C49",
+ },
+
+ unit: {
+ name: "Hellas Point",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E15",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 5,
+ name: "Assailant",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (240e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Assailant",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D29",
+ },
+
+ unit: {
+ name: "Silencer",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D36",
+ },
+
+ unit: {
+ name: "Pol Basilus",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D09",
+ },
+
+ unit: {
+ name: "Shadow Canyon",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E22",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 28,
+ name: "Hal Rifa",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (-180e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Hal Rifa",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D13",
+ },
+
+ unit: {
+ name: "Kalas Gannet",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D17",
+ },
+
+ unit: {
+ name: "Mount Teras",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E29",
+ },
+
+ unit: {
+ name: "Black River",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E36",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 30,
+ name: "Broadsword",
+ intel: known,
+ iff: 2,
+ region: "Marak",
+ loc: (30e3, 320e3, -3e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Broadsword",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C21",
+ },
+
+ unit: {
+ name: "Truncheon",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C28",
+ },
+
+ unit: {
+ name: "Guard Hills",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E43",
+ },
+
+ unit: {
+ name: "Gulf of Kirt",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E50",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 49,
+ name: "Warsign",
+ intel: reserve,
+ iff: 2,
+ region: "Marak",
+ loc: (-260e3, -130e3, -7e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Warsign",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C35",
+ },
+
+ unit: {
+ name: "Quickbolt",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C42",
+ },
+
+ unit: {
+ name: "Star Island",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E57",
+ },
+
+ unit: {
+ name: "Radix Station",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E64",
+ },
+}
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Serpent",
+ intel: known,
+ iff: 2,
+ region: "Volante",
+ loc: (-390e3, 10e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 2,
+ name: "Serpent",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Serpent",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A2",
+ },
+
+ unit: {
+ name: "Senn Alon",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D21",
+ },
+
+ unit: {
+ name: "Jan Boma",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D25",
+ },
+
+ unit: {
+ name: "Tarsus Pride",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E02",
+ },
+
+ unit: {
+ name: "Eternal City",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E09",
+ },
+}
+
+group: {
+ type: wing,
+ id: 2,
+ name: "",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: carrier_group,
+ parent_id: 2,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 91,
+ name: "Dragons",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: wing,
+ parent_id: 2,
+
+ unit: {
+ name: "Dragon",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 30,
+ name: "Vultures",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: wing,
+ parent_id: 2,
+
+ unit: {
+ name: "Vulture",
+ type: "Fighter",
+ design: "Raptor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 45,
+ name: "Vampires",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: wing,
+ parent_id: 2,
+
+ unit: {
+ name: "Vampire",
+ type: "Attack",
+ design: "Avenger",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Deimos",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (207e3, -362e3, 0),
+ parent_type: wing,
+ parent_id: 2,
+
+ unit: {
+ name: "Deimos",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 7,
+ name: "Malice",
+ intel: known,
+ iff: 2,
+ region: "Narcissus",
+ loc: (330e3, -80e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Malice",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D16",
+ },
+
+ unit: {
+ name: "Hazard",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D23",
+ },
+
+ unit: {
+ name: "Icefang",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "4D50",
+ },
+
+ unit: {
+ name: "Kala Docks",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E16",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 8,
+ name: "Coronation"
+ intel: reserve,
+ iff: 2,
+ region: "Volante",
+ loc: (-280e3, -140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Coronation"
+ type: "Cruiser",
+ design: "Imperial"
+ regnum: "5C60",
+ },
+
+ unit: {
+ name: "Bennet",
+ type: "Cruiser",
+ design: "Imperial"
+ regnum: "5C77",
+ },
+
+ unit: {
+ name: "Tremel Isa",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D29",
+ },
+
+ unit: {
+ name: "Outer Rim",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E23",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 15,
+ name: "Starknight",
+ intel: known,
+ iff: 2,
+ region: "Volante",
+ loc: (-280e3, -310e3, -6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Starknight",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C22",
+ },
+
+ unit: {
+ name: "Poleaxe",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C29",
+ },
+
+ unit: {
+ name: "Kolchev",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E30",
+ },
+
+ unit: {
+ name: "Rock Ridge",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E37",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 16,
+ name: "Warhammer",
+ intel: known,
+ iff: 2,
+ region: "Volante",
+ loc: (0, -290e3, -3e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Warhammer",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C36",
+ },
+
+ unit: {
+ name: "Kindjal",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C43",
+ },
+
+ unit: {
+ name: "Aenia",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E44",
+ },
+
+ unit: {
+ name: "Boma Beach",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E51",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 51,
+ name: "Joran Kas",
+ intel: reserve,
+ iff: 2,
+ region: "Volante",
+ loc: (-260e3, -180e3, -7e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Joran Kas",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D33",
+ },
+
+ unit: {
+ name: "Ambassador Ston",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D37",
+ },
+
+ unit: {
+ name: "Arcrest",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E58",
+ },
+
+ unit: {
+ name: "Angel Shore",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E65",
+ },
+}
+
+
+
+
+group: {
+ type: fleet,
+ id: 9,
+ name: "Black",
+ intel: secret,
+ iff: 2,
+ region: "Trocanther",
+ loc: (130e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 9,
+ name: "Blackwing",
+ intel: secret,
+ iff: 2,
+ region: "Trocanther",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 9,
+
+ unit: {
+ name: "Blackwing",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A9",
+ },
+
+ unit: {
+ name: "Variak",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D51",
+ },
+
+ unit: {
+ name: "Talus",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D53",
+ },
+
+ unit: {
+ name: "Ramek",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E80",
+ },
+
+ unit: {
+ name: "Senna",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E83",
+ },
+}
+
+group: {
+ type: wing,
+ id: 19,
+ name: "",
+ intel: known,
+ iff: 2,
+ region: "Trocanther",
+ loc: (130e3, -180e3, 6e3),
+ parent_type: carrier_group,
+ parent_id: 9,
+}
+
+group: {
+ type: intercept_squadron,
+ id: 90,
+ name: "Assassins",
+ intel: known,
+ iff: 2,
+ region: "Trocanther",
+ loc: (179e3, -300e3, 0),
+ parent_type: wing,
+ parent_id: 19,
+
+ unit: {
+ name: "Assassin",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 28,
+ name: "Midnight",
+ intel: known,
+ iff: 2,
+ region: "Trocanther",
+ loc: (125e3, -318e3, 0),
+ parent_type: wing,
+ parent_id: 19,
+
+ unit: {
+ name: "Midnight",
+ type: "Fighter",
+ design: "Raptor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 41,
+ name: "Rogue",
+ intel: known,
+ iff: 2,
+ region: "Trocanther",
+ loc: (246e3, -379e3, 0),
+ parent_type: wing,
+ parent_id: 19,
+
+ unit: {
+ name: "Rogue",
+ type: "Attack",
+ design: "Avenger",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 100,
+ name: "Callas",
+ intel: known,
+ iff: 2,
+ region: "Trocanther",
+ loc: (195e3, -400e3, 0),
+ parent_type: wing,
+ parent_id: 19,
+
+ unit: {
+ name: "Callas",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 14,
+ name: "Marak IV",
+ intel: reserve,
+ iff: 2,
+ region: "Trocanther",
+ loc: (-230e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 9,
+
+ unit: {
+ name: "Marak IV",
+ type: "Cruiser",
+ design: "Imperial",
+ regnum: "5C83",
+ },
+
+ unit: {
+ name: "Glorius",
+ type: "Cruiser",
+ design: "Imperial"
+ regnum: "5C72",
+ },
+
+ unit: {
+ name: "Firebolt",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C56",
+ },
+
+ unit: {
+ name: "Radelix",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E83",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 15,
+ name: "Omega",
+ intel: secret,
+ iff: 2,
+ region: "Trocanther",
+ loc: (240e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 9,
+
+ unit: {
+ name: "Omega",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D45",
+ },
+
+ unit: {
+ name: "Hephaestus",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D56",
+ },
+
+ unit: {
+ name: "Mindalante",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D59",
+ },
+
+ unit: {
+ name: "Arcturus",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E72",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 58,
+ name: "Velan",
+ intel: secret,
+ iff: 2,
+ region: "Trocanther",
+ loc: (-180e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 9,
+
+ unit: {
+ name: "Velan",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D63",
+ },
+
+ unit: {
+ name: "Manarkan",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D67",
+ },
+
+ unit: {
+ name: "Pelius",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E69",
+ },
+
+ unit: {
+ name: "Matrix",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E76",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 56,
+ name: "Attack",
+ intel: secret,
+ iff: 2,
+ region: "Trocanther",
+ loc: (30e3, 320e3, -3e3),
+ parent_type: fleet,
+ parent_id: 9,
+
+ unit: {
+ name: "Attack",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C71",
+ },
+
+ unit: {
+ name: "Shortsword",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C78",
+ },
+
+ unit: {
+ name: "Nerdan",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E83",
+ },
+
+ unit: {
+ name: "Clavius",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E90",
+ },
+}
+
+
+
+
+
+group: {
+ type: fleet,
+ id: 10,
+ name: "Ghost",
+ intel: reserve,
+ iff: 2,
+ region: "Marak",
+ loc: (130e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: non_com,
+ id: 110,
+ name: "Unknown",
+ intel: secret,
+ iff: 2,
+ region: "Marak",
+ loc: (207e3, -362e3, 0),
+ parent_type: fleet,
+ parent_id: 10,
+
+ unit: {
+ name: "Unknown",
+ type: "Carrier",
+ design: "Hulk-Dragon",
+ regnum: "7A9",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Volnaris",
+ regnum: "4D51",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Volnaris",
+ regnum: "4D53",
+ },
+}
+
+group: {
+ type: non_com,
+ id: 114,
+ name: "Unknown",
+ intel: secret,
+ iff: 2,
+ region: "Marak",
+ loc: (-230e3, 180e3, -6e3),
+ parent_type: fleet,
+ parent_id: 10,
+
+ unit: {
+ name: "Unknown",
+ type: "Cruiser",
+ design: "Hulk-Vendetta",
+ regnum: "5D53",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Cruiser",
+ design: "Hulk-Imperial",
+ regnum: "5D52",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Broadsword",
+ regnum: "3C56",
+ },
+}
+
+group: {
+ type: non_com,
+ id: 115,
+ name: "Unknown",
+ intel: secret,
+ iff: 2,
+ region: "Xanthe",
+ loc: (240e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 10,
+
+ unit: {
+ name: "Unknown",
+ type: "Cruiser",
+ design: "Hulk-Vendetta",
+ regnum: "5D45",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Cruiser",
+ design: "Hulk-Imperial",
+ regnum: "5D56",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Volnaris",
+ regnum: "4D59",
+ },
+}
+
+group: {
+ type: non_com,
+ id: 158,
+ name: "Unknown",
+ intel: Secret,
+ iff: 2,
+ region: "Marak",
+ loc: (-180e3, 140e3, -6e3),
+ parent_type: fleet,
+ parent_id: 10,
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Volnaris",
+ regnum: "4D63",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Destroyer",
+ design: "Hulk-Volnaris",
+ regnum: "4D67",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Frigate",
+ design: "Hulk-Frigate",
+ regnum: "XF227",
+ },
+
+ unit: {
+ name: "Unknown",
+ type: "Frigate",
+ design: "Hulk-Frigate",
+ regnum: "XF237",
+ },
+}
+
+
+
+group: {
+ type: fleet,
+ id: 3,
+ name: "Gryphon",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 3,
+ name: "Gryphon",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-122e3, 280e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Gryphon",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A3",
+ },
+
+ unit: {
+ name: "Tol Branta",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D02",
+ },
+
+ unit: {
+ name: "Gol Duvain",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D06",
+ },
+
+ unit: {
+ name: "Valley of Flame",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E03",
+ },
+
+ unit: {
+ name: "Port Renas",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E10",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 92,
+ name: "Hornets",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-122e3, 280e3, 0),
+ parent_type: carrier_group,
+ parent_id: 3,
+
+ unit: {
+ name: "Hornet",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 36,
+ name: "Cougars",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-122e3, 280e3, 0),
+ parent_type: carrier_group,
+ parent_id: 3,
+
+ unit: {
+ name: "Cougar",
+ type: "Fighter",
+ design: "Raptor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 47,
+ name: "Lions",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-122e3, 280e3, 0),
+ parent_type: carrier_group,
+ parent_id: 3,
+
+ unit: {
+ name: "Lion",
+ type: "Attack",
+ design: "Avenger",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Hades",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-122e3, 280e3, 0),
+ parent_type: carrier_group,
+ parent_id: 3,
+
+ unit: {
+ name: "Hades",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 9,
+ name: "Wrath",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-230e3, -180e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Wrath",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D17",
+ },
+
+ unit: {
+ name: "Peril",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D24",
+ },
+
+ unit: {
+ name: "Jiri Sutton",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D10",
+ },
+
+ unit: {
+ name: "Kalis Basin",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E17",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 10,
+ name: Clavius
+ intel: reserve,
+ iff: 2,
+ region: "Garrison",
+ loc: (66e3, 180e3, -10e3),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: Clavius
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C91",
+ },
+
+ unit: {
+ name: Overlord
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5C98",
+ },
+
+ unit: {
+ name: "Famis Tett",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D14",
+ },
+
+ unit: {
+ name: "Cape Nor",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E24",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 18,
+ name: "Battleaxe",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (-109e3, 51e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Battleaxe",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C23",
+ },
+
+ unit: {
+ name: "Clovis",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C30",
+ },
+
+ unit: {
+ name: "Black Forest",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E31",
+ },
+
+ unit: {
+ name: "Landfall",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E38",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 19,
+ name: "Longbow",
+ intel: reserve,
+ iff: 2,
+ region: "Garrison",
+ loc: (93e3, -101e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Longbow",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C37",
+ },
+
+ unit: {
+ name: "Siege",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C44",
+ },
+
+ unit: {
+ name: "Lake Orsan",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E45",
+ },
+
+ unit: {
+ name: "Wind River",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E52",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 52,
+ name: "Galinas",
+ intel: known,
+ iff: 2,
+ region: "Garrison",
+ loc: (55e3, 71e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Hett Galinas",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D18",
+ },
+
+ unit: {
+ name: "Nova Sem",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D22",
+ },
+
+ unit: {
+ name: "Tolan Locks",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E59",
+ },
+
+ unit: {
+ name: "Mount Zoare",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E66",
+ },
+}
+
+group: {
+ type: fleet,
+ id: 4,
+ name: "Manticore",
+ intel: known,
+ iff: 2,
+ region: "Lornas",
+ loc: (-390e3, 10e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 4,
+ name: "Manticore",
+ intel: reserve,
+ iff: 2,
+ region: "Lornas",
+ loc: (130e3, -380e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Manticore",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A4",
+ },
+
+ unit: {
+ name: "Rapier",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C52",
+ },
+
+ unit: {
+ name: "Silas Cave",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E04",
+ },
+
+ unit: {
+ name: "River Ceres",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E11",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 93,
+ name: "Sharks",
+ intel: known,
+ iff: 2,
+ region: "Lornas",
+ loc: (179e3, -300e3, 0),
+ parent_type: carrier_group,
+ parent_id: 4,
+
+ unit: {
+ name: "Shark",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 33,
+ name: "Vandals",
+ intel: known,
+ iff: 2,
+ region: "Lornas",
+ loc: (125e3, -318e3, 0),
+ parent_type: carrier_group,
+ parent_id: 4,
+
+ unit: {
+ name: "Vandal",
+ type: "Fighter",
+ design: "Razor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 49,
+ name: "Demons",
+ intel: known,
+ iff: 2,
+ region: "Lornas",
+ loc: (246e3, -379e3, 0),
+ parent_type: carrier_group,
+ parent_id: 4,
+
+ unit: {
+ name: "Demon",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 103,
+ name: "Wasp",
+ intel: known,
+ iff: 2,
+ region: "Lornas",
+ loc: (195e3, -400e3, 0),
+ parent_type: carrier_group,
+ parent_id: 4,
+
+ unit: {
+ name: "Wasp",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 25,
+ name: "Claymore",
+ intel: reserve,
+ iff: 2,
+ region: "Jalah",
+ loc: (-110e3, 325e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Claymore",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C24",
+ },
+
+ unit: {
+ name: "Gladius",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C31",
+ },
+
+ unit: {
+ name: "Elkhorn Pass",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E18",
+ },
+
+ unit: {
+ name: "Port Hanson",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E25",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 26,
+ name: "Ironhelm",
+ intel: reserve,
+ iff: 2,
+ region: "Khaital",
+ loc: (275e3, -210e3, 0),
+ parent_type: fleet,
+ parent_id: 4,
+
+ unit: {
+ name: "Ironhelm",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C38",
+ },
+
+ unit: {
+ name: "Mattock",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C45",
+ },
+
+ unit: {
+ name: "Oak Hall",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E32",
+ },
+
+ unit: {
+ name: "North Point",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E39",
+ },
+}
+
+group: {
+ type: fleet,
+ id: 5,
+ name: "Baldread",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 5,
+ name: "Baldread",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (-350e3, 120e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Baldread",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A5",
+ },
+
+ unit: {
+ name: "Mos Antares",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D11",
+ },
+
+ unit: {
+ name: "Vin Silas",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D15",
+ },
+
+ unit: {
+ name: "Khaital",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E05",
+ },
+
+ unit: {
+ name: "Ash Hills",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E12",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 94,
+ name: "Demons",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (-344e3, 145e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Demon",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 37,
+ name: "Vigilantes",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (-329e3, 160e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Vigilante",
+ type: "Fighter",
+ design: "Razor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 42,
+ name: "Ravens",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (-333e3, 117e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Raven",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Ariadne",
+ intel: known,
+ iff: 2,
+ region: "Garden",
+ loc: (-371e3, 136e3, 0),
+ parent_type: carrier_group,
+ parent_id: 5,
+
+ unit: {
+ name: "Ariadne",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 15,
+ name: "Fury",
+ intel: known,
+ iff: 2,
+ region: "Senesca",
+ loc: (400e3, -75e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Fury",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D19",
+ },
+
+ unit: {
+ name: "Exigency",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D26",
+ },
+
+ unit: {
+ name: "Lieut. Bolis",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D19",
+ },
+
+ unit: {
+ name: "Albus Gulf",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E19",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 16,
+ name: Imperial
+ intel: known,
+ iff: 2,
+ region: "Relay",
+ loc: (350e3, 380e3, -6e3),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: Imperial
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C44",
+ },
+
+ unit: {
+ name: Excellence
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C51",
+ },
+
+ unit: {
+ name: "Telen Setana",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D23",
+ },
+
+ unit: {
+ name: "Siren Island",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E26",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 32,
+ name: "Scimitar",
+ intel: known,
+ iff: 2,
+ region: "Senesca",
+ loc: (-259e3, 251e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Scimitar",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C25",
+ },
+
+ unit: {
+ name: "Trident",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C32",
+ },
+
+ unit: {
+ name: "Neptune Station",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E33",
+ },
+
+ unit: {
+ name: "Trocanther",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E40",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 33,
+ name: "Boneclaw",
+ intel: known,
+ iff: 2,
+ region: "Relay",
+ loc: (293e3, -301e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Boneclaw",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C39",
+ },
+
+ unit: {
+ name: "Runesword",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C46",
+ },
+
+ unit: {
+ name: "Night City",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E47",
+ },
+
+ unit: {
+ name: "Joran Docks",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E54",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 55,
+ name: "Galen Teras",
+ intel: known,
+ iff: 2,
+ region: "Relay",
+ loc: (255e3, -171e3, 0),
+ parent_type: fleet,
+ parent_id: 5,
+
+ unit: {
+ name: "Galen Teras",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D27",
+ },
+
+ unit: {
+ name: "Ro Hollis",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D31",
+ },
+
+ unit: {
+ name: "Hunter Coast",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E61",
+ },
+
+ unit: {
+ name: "Nephrys",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E68",
+ },
+}
+
+group: {
+ type: fleet,
+ id: 6,
+ name: "Cyclops",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 6,
+ name: "Cyclops",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-334e3, 285e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Cyclops",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A6",
+ },
+
+ unit: {
+ name: "Tor Palver",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D35",
+ },
+
+ unit: {
+ name: "Rath Karalan",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D39",
+ },
+
+ unit: {
+ name: "Storm Island",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E06",
+ },
+
+ unit: {
+ name: "Orinoco",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E13",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 95,
+ name: "Vipers",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-344e3, 275e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Viper",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 39,
+ name: "Wolfpack",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-324e3, 295e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Wolf",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 48,
+ name: "Bounty Hunters",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-324e3, 285e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Hunter",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Arachne",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-334e3, 295e3, 0),
+ parent_type: carrier_group,
+ parent_id: 6,
+
+ unit: {
+ name: "Arachne",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 19,
+ name: "Ascendance",
+ intel: known,
+ iff: 2,
+ region: "Ilya",
+ loc: (-204e3, 245e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Ascendance",
+ type: "Cruiser",
+ design: "Imperial",
+ regnum: "5C47",
+ },
+
+ unit: {
+ name: "Throne",
+ type: "Cruiser",
+ design: "Imperial",
+ regnum: "5C54",
+ },
+
+ unit: {
+ name: "Nels Berens",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D04",
+ },
+
+ unit: {
+ name: "Sirocco",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E20",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 20,
+ name: "Eminence",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (-288e3, 175e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: Eminence
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C64",
+ },
+
+ unit: {
+ name: Viceroy
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C71"
+ },
+
+ unit: {
+ name: "Masil Korius",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D08",
+ },
+
+ unit: {
+ name: "Knife Ridge",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E27",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 35,
+ name: "Sabre",
+ intel: known,
+ iff: 2,
+ region: "Kolchev",
+ loc: (314e3, -285e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Sabre",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C26",
+ },
+
+ unit: {
+ name: "Lance",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C33",
+ },
+
+ unit: {
+ name: "Secret Shore",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E34",
+ },
+
+ unit: {
+ name: "Crown of Fire",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E41",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 37,
+ name: "Shield",
+ intel: known,
+ iff: 2,
+ region: "Volova",
+ loc: (24e3, -435e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Shield",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C40",
+ },
+
+ unit: {
+ name: "Blacknife",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C47",
+ },
+
+ unit: {
+ name: "Hilger Coast",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E48",
+ },
+
+ unit: {
+ name: "Sword Cliffs",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E55",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 62,
+ name: "Elos",
+ intel: known,
+ iff: 2,
+ region: "Volova",
+ loc: (-34e3, 385e3, 0),
+ parent_type: fleet,
+ parent_id: 6,
+
+ unit: {
+ name: "Toran Elos",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D12",
+ },
+
+ unit: {
+ name: "Thule Arven",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D16",
+ },
+
+ unit: {
+ name: "Capetown",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E62",
+ },
+
+ unit: {
+ name: "Beacon Bay",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E69",
+ },
+}
+
+group: {
+ type: fleet,
+ id: 7,
+ name: "Argus",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: carrier_group,
+ id: 7,
+ name: "Argus",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-182e3, 290e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Argus",
+ type: "Carrier",
+ design: "Dragon",
+ regnum: "7A7",
+ },
+
+ unit: {
+ name: "Jes Kirta",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D20",
+ },
+
+ unit: {
+ name: "Loma Alta",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D24",
+ },
+
+ unit: {
+ name: "Blackrock",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E07",
+ },
+
+ unit: {
+ name: "Sutton Lake",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E14",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 96,
+ name: "Black Widows",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-182e3, 340e3, 0),
+ parent_type: carrier_group,
+ parent_id: 7,
+
+ unit: {
+ name: "Black Widow",
+ type: "Fighter",
+ design: "Viper",
+ count: 40,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 31,
+ name: "Black Diamonds",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-172e3, 320e3, 0),
+ parent_type: carrier_group,
+ parent_id: 7,
+
+ unit: {
+ name: "Black Diamond",
+ type: "Fighter",
+ design: "Razor",
+ count: 40,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 44,
+ name: "Panthers",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-192e3, 250e3, 0),
+ parent_type: carrier_group,
+ parent_id: 7,
+
+ unit: {
+ name: "Panther",
+ type: "Attack",
+ design: "Cobra",
+ count: 24,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 101,
+ name: "Apollo",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-282e3, 180e3, 0),
+ parent_type: carrier_group,
+ parent_id: 7,
+
+ unit: {
+ name: "Apollo",
+ type: "LCA",
+ design: "Jackal",
+ count: 12,
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 17,
+ name: Intruder
+ intel: known,
+ iff: 2,
+ region: "Duna",
+ loc: (-209e3, -297e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Intruder",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D21",
+ },
+
+ unit: {
+ name: "Avalanche",
+ type: "Cruiser",
+ design: "Vendetta",
+ regnum: "5D28",
+ },
+
+ unit: {
+ name: "Merin Asgar",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D28",
+ },
+
+ unit: {
+ name: "Fourth Sector",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E21",
+ },
+}
+
+group: {
+ type: battle_group,
+ id: 18,
+ name: Imperator
+ intel: known,
+ iff: 2,
+ region: "Casalle",
+ loc: (230e3, -250e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: Imperator
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C55",
+ },
+
+ unit: {
+ name: "Cleon I",
+ type: "Cruiser",
+ design: Imperial
+ regnum: "5C72",
+ },
+
+ unit: {
+ name: "Dian Soma",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D32",
+ },
+
+ unit: {
+ name: "Kans Ferry",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E28",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 24,
+ name: "Morningstar",
+ intel: known,
+ iff: 2,
+ region: "Loris",
+ loc: (-189e3, 301e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Morningstar",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C27",
+ },
+
+ unit: {
+ name: "Crossbow",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C34",
+ },
+
+ unit: {
+ name: "Tol Harbor",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E35",
+ },
+
+ unit: {
+ name: "Gunston",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E42",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 25,
+ name: "Longsword",
+ intel: known,
+ iff: 2,
+ region: "Duna",
+ loc: (293e3, -201e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Longsword",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C41",
+ },
+
+ unit: {
+ name: "Pike",
+ type: "Destroyer",
+ design: "Broadsword",
+ regnum: "3C48",
+ },
+
+ unit: {
+ name: "Fort Hollis",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E49",
+ },
+
+ unit: {
+ name: "Firenze",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E56",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 63,
+ name: "Commander Sumas",
+ intel: known,
+ iff: 2,
+ region: "Casalle",
+ loc: (225e3, -271e3, 0),
+ parent_type: fleet,
+ parent_id: 7,
+
+ unit: {
+ name: "Commander Sumas",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D36",
+ },
+
+ unit: {
+ name: "Bail Ennis",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D40",
+ },
+
+ unit: {
+ name: "Corinth",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E63",
+ },
+
+ unit: {
+ name: "Tannis",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E70",
+ },
+}
+
+group: {
+ type: battalion,
+ id: 8,
+ name: "The Mighty Eighth",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (0, -100e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: battery,
+ id: 41,
+ name: "",
+ intel: secret,
+ iff: 2,
+ region: "Tantalus",
+ loc: (40e3, -42e3, 0),
+ parent_type: battalion,
+ parent_id: 8,
+
+ unit: {
+ name: "",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+
+ unit: {
+ name: "",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 42,
+ name: "",
+ intel: secret,
+ iff: 2,
+ region: "Tantalus",
+ loc: (-39e3, 33e3, 0),
+ parent_type: battalion,
+ parent_id: 8,
+
+ unit: {
+ name: "",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 43,
+ name: "",
+ intel: secret,
+ iff: 2,
+ region: "Tantalus",
+ loc: (45e3, 62e3, 0),
+ parent_type: battalion,
+ parent_id: 8,
+
+ unit: {
+ name: "",
+ type: "SAM",
+ design: "SAM 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battalion,
+ id: 9,
+ name: "Ostara Outpost",
+ intel: known,
+ iff: 2,
+ region: "Aram",
+ loc: (0, -80e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: station,
+ id: 10,
+ name: "Aram Station",
+ intel: known,
+ iff: 2,
+ region: "Aram",
+ loc: (0, 0, 0),
+ parent_type: battalion,
+ parent_id: 9,
+
+ unit: {
+ name: "Aram Station",
+ type: "Station",
+ design: "Station4",
+ regnum: "",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 211,
+ name: "Piranhas",
+ intel: known,
+ iff: 2,
+ region: "Aram",
+ loc: (150e3, -30e3, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Piranha",
+ type: "Fighter",
+ design: "Viper",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 175,
+ name: "Werewolves",
+ intel: known,
+ iff: 2,
+ region: "Aram",
+ loc: (150e3, 0, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Werewolf",
+ type: "Fighter",
+ design: "Raptor",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 187,
+ name: "Kodiaks",
+ intel: secret,
+ iff: 2,
+ region: "Aram",
+ loc: (150e3, 30e3, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Kodiak",
+ type: "Attack",
+ design: "Cobra",
+ count: 12,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 11,
+ name: "Minefield A",
+ intel: secret,
+ iff: 2,
+ region: "Aram",
+ loc: (30e3, 30e3, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Minefield A",
+ type: "Mine",
+ design: "Blockade Mine",
+ count: 8,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 12,
+ name: "Minefield B",
+ intel: secret,
+ iff: 2,
+ region: "Aram",
+ loc: (-50e3, 0, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Minefield B",
+ type: "Mine",
+ design: "Blockade Mine",
+ count: 8,
+ },
+}
+
+group: {
+ type: minefield,
+ id: 13,
+ name: "Minefield C",
+ intel: secret,
+ iff: 2,
+ region: "Aram",
+ loc: (30e3, -30e3, 0),
+ parent_type: station,
+ parent_id: 10,
+
+ unit: {
+ name: "Minefield C",
+ type: "Mine",
+ design: "Blockade Mine",
+ count: 8,
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 65,
+ name: "Eranes",
+ intel: secret,
+ iff: 2,
+ region: "Aram",
+ loc: (400e3, 180e3, 0),
+ parent_type: battalion,
+ parent_id: 9,
+
+ unit: {
+ name: "Rik Eranes",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D45",
+ },
+
+ unit: {
+ name: "Senator Hasla",
+ type: "Destroyer",
+ design: "Volnaris",
+ regnum: "4D49",
+ },
+
+ unit: {
+ name: "Loris Dunes",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E46",
+ },
+
+ unit: {
+ name: "Port Barron",
+ type: "Frigate",
+ design: "Tiger",
+ regnum: "2E53",
+ },
+}
+
+
+
+group: {
+ type: battalion,
+ id: 10,
+ name: "Silent Fortress",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (20e3, 20e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: starbase,
+ id: 1,
+ name: "Lovo Base",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (25e3, 25e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "Lovo Base",
+ type: "Starbase",
+ design: "Airbase2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 3,
+ name: "Kurgans",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (26e3, 28e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Kurgan",
+ type: "Fighter",
+ design: "Raptor",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 4,
+ name: "Korbas",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (26e3, 25e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Korba",
+ type: "Attack",
+ design: "Avenger",
+ count: 20,
+ },
+}
+
+group: {
+ type: FWD_CONTROL_CTR,
+ id: 1,
+ name: "Lovo Control",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (24e3, 27e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "Lovo Control",
+ type: "Building",
+ design: "Bldg05",
+ regnum: "",
+ },
+}
+
+
+group: {
+ type: SUPPORT,
+ id: 1,
+ name: "Lovo Barracks",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (27e3, 27e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "Lovo Barracks",
+ type: "Building",
+ design: "Barracks",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 1,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Lovo",
+ loc: (22e3, 26e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 2,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Lovo",
+ loc: (20e3, 12e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 3,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Lovo",
+ loc: (-25e3, -12e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 4,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Lovo",
+ loc: (-15e3, -10e3, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+
+
+
+
+
+group: {
+ type: battalion,
+ id: 15,
+ name: "Shore Watch",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (20e3, 20e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: starbase,
+ id: 15,
+ name: "Tiger Base",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ parent_type: battalion,
+ parent_id: 15,
+
+ unit: {
+ name: "Tiger Base",
+ type: "Starbase",
+ design: "Airbase2",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ heading: 90,
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 13,
+ name: "Osprey",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ parent_type: starbase,
+ parent_id: 15,
+
+ unit: {
+ name: "Osprey",
+ type: "Fighter",
+ design: "Raptor",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 14,
+ name: "Heron",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (55000, -8000, 0),
+ parent_type: starbase,
+ parent_id: 15,
+
+ unit: {
+ name: "Heron",
+ type: "Attack",
+ design: "Avenger",
+ count: 20,
+ },
+}
+
+
+group: {
+ type: SUPPORT,
+ id: 15,
+ name: "Tiger Barracks",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (57000, -6000, 0),
+ parent_type: battalion,
+ parent_id: 15,
+
+ unit: {
+ name: "Tiger Barracks",
+ type: "Building",
+ design: "Barracks",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 11,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (55000, -10000, 0),
+ parent_type: battalion,
+ parent_id: 15,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (55e3, -10e3, 0),
+ },
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (55e3, -11e3, 0),
+ },
+}
+
+group: {
+ type: battery,
+ id: 12,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (-43000, 65000, 0),
+ parent_type: battalion,
+ parent_id: 15,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+group: {
+ type: battery,
+ id: 13,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (-45000, 63000, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: battery,
+ id: 14,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (3000, -15000, 0),
+ parent_type: battalion,
+ parent_id: 10,
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ count: 2,
+ },
+}
+
+
+
+group: {
+ type: battalion,
+ id: 4,
+ name: "Ramek Station",
+ intel: secret,
+ iff: 2,
+ region: "Ramek",
+ loc: (0, -80e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: station,
+ id: 44,
+ name: "Ramek Station",
+ intel: secret,
+ iff: 2,
+ region: "Ramek",
+ loc: (0, 0, 0),
+ parent_type: battalion,
+ parent_id: 4,
+
+ unit: {
+ name: "Ramek Station",
+ type: "Station",
+ design: "Station4",
+ regnum: "",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 215,
+ name: "Warthogs",
+ intel: secret,
+ iff: 2,
+ region: "Ramek",
+ loc: (150e3, 0, 0),
+ parent_type: station,
+ parent_id: 44,
+
+ unit: {
+ name: "Warthog",
+ type: "Fighter",
+ design: "Raptor",
+ count: 12,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 67,
+ name: "Rhinos",
+ intel: secret,
+ iff: 2,
+ region: "Ramek",
+ loc: (150e3, 30e3, 0),
+ parent_type: station,
+ parent_id: 44,
+
+ unit: {
+ name: "Rhino",
+ type: "Attack",
+ design: "Avenger",
+ count: 12,
+ },
+}
+
+
+group: {
+ type: battalion,
+ id: 19,
+ name: "Deadman's Alley",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: starbase,
+ id: 19,
+ name: "Radix Base",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-40e3, -90e3, 0),
+ parent_type: battalion,
+ parent_id: 19,
+
+ unit: {
+ name: "Radix Base",
+ type: "Starbase",
+ design: "Airbase2",
+ regnum: "",
+ loc: (-40e3, -90e3, 0),
+ heading: 90,
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 13,
+ name: "Rattlers",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-40e3, -90e3, 0),
+ parent_type: starbase,
+ parent_id: 19,
+
+ unit: {
+ name: "Rattler",
+ type: "Fighter",
+ design: "Raptor",
+ count: 24,
+ },
+}
+
+group: {
+ type: attack_squadron,
+ id: 14,
+ name: "Dragons",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-40e3, -90e3, 0),
+ parent_type: starbase,
+ parent_id: 19,
+
+ unit: {
+ name: "Dragon",
+ type: "Attack",
+ design: "Avenger",
+ count: 12,
+ },
+}
+
+
+group: {
+ type: SUPPORT,
+ id: 15,
+ name: "Radix Barracks",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-30e3, -90e3, 0),
+ parent_type: battalion,
+ parent_id: 19,
+
+ unit: {
+ name: "Barracks 1",
+ type: "Building",
+ design: "Barracks",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-37e3, -92e3, 0),
+ },
+
+ unit: {
+ name: "Barracks 2",
+ type: "Building",
+ design: "Barracks",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-38e3, -94e3, 0),
+ },
+
+ unit: {
+ name: "Barracks 3",
+ type: "Building",
+ design: "Barracks",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-39e3, -96e3, 0),
+ },
+}
+
+group: {
+ type: battery,
+ id: 11,
+ name: "AAA Battery",
+ intel: secret,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-62e3, -82e3, 0),
+ parent_type: battalion,
+ parent_id: 19,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-62e3, -82e3, 0),
+ },
+
+ unit: {
+ name: "AAA",
+ type: "SAM",
+ design: "AAA 1",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-60e3, -82e3, 0),
+ },
+}
+
+group: {
+ type: battery,
+ id: 13,
+ name: "SAM Battery",
+ intel: secret,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (-75e3, -68e3, 0),
+ parent_type: battalion,
+ parent_id: 19,
+
+ unit: {
+ name: "SAM",
+ type: "SAM",
+ design: "SAM 1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 19000,
+ name: "Reactor",
+ intel: known,
+ iff: 2,
+ region: "Shadow Canyon",
+ loc: (0, 0, 0),
+ parent_type: battalion,
+ parent_id: 19,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ region: "Shadow Canyon",
+ loc: (-77e3, -56e3, 0),
+ },
+
+ unit: {
+ name: "Cooling Tower",
+ type: "Building",
+ design: "Cool00",
+ count: 3,
+ region: "Shadow Canyon",
+ loc: (-77e3, -58e3, 0),
+ },
+
+ unit: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 2,
+ region: "Shadow Canyon",
+ loc: (-75e3, -58e3, 0),
+ },
+}
+
+
+
+group: {
+ type: battalion,
+ id: 12,
+ name: "Garrison Station",
+ intel: secret,
+ iff: 2,
+ region: "Garrison",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: station,
+ id: 3,
+ name: "Garrison Laboratory",
+ intel: secret,
+ iff: 2,
+ region: "Garrison",
+ loc: (0, 0, 0),
+ parent_type: battalion,
+ parent_id: 12,
+
+ unit: {
+ name: "Garrison Laboratory",
+ type: "Station",
+ design: "Station7",
+ },
+}
+
+
+
+
+
+group: {
+ type: civilian,
+ id: 1,
+ name: "Civilian Infrastructure",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2000,
+ name: "Renser Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Renser",
+ loc: (4e3, -1e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2001,
+ name: "Khaital-Lornas",
+ intel: located,
+ iff: 0,
+ region: "Khaital",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Khaital-Lornas",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2002,
+ name: "Lornas-Khaital",
+ intel: located,
+ iff: 0,
+ region: "Lornas",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Lornas-Khaital",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2003,
+ name: "Lornas-Renser",
+ intel: located,
+ iff: 0,
+ region: "Lornas",
+ loc: (50e3, -90e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Lornas-Renser",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2004,
+ name: "Renser-Lornas",
+ intel: located,
+ iff: 0,
+ region: "Renser",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Renser-Lornas",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2005,
+ name: "Renser-Rhomindal",
+ intel: located,
+ iff: 0,
+ region: "Renser",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Renser-Rhomindal",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2006,
+ name: "Renser-Garana",
+ intel: located,
+ iff: 0,
+ region: "Renser",
+ loc: (-50e3, 110e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Renser-Garana",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2007,
+ name: "Rhomindal-Renser",
+ intel: located,
+ iff: 0,
+ region: "Rhomindal",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Rhomindal-Renser",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2008,
+ name: "Garana-Renser",
+ intel: located,
+ iff: 0,
+ region: "Garana",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Garana-Renser",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3000,
+ name: "Kolchev Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Kolchev",
+ loc: (4e3, -1e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 3001,
+ name: "Anatoly-Volova",
+ intel: located,
+ iff: 0,
+ region: "Anatoly",
+ loc: (120e3, -60e3, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Anatoly-Volova",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3002,
+ name: "Volova-Anatoly",
+ intel: located,
+ iff: 0,
+ region: "Volova",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Volova-Anatoly",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3003,
+ name: "Volova-Kolchev",
+ intel: located,
+ iff: 0,
+ region: "Volova",
+ loc: (50e3, -90e3, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Volova-Kolchev",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3004,
+ name: "Kolchev-Volova",
+ intel: located,
+ iff: 0,
+ region: "Kolchev",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Kolchev-Volova",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3005,
+ name: "Kolchev-Ilya",
+ intel: located,
+ iff: 0,
+ region: "Kolchev",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Kolchev-Ilya",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3006,
+ name: "Kolchev-Anatoly",
+ intel: located,
+ iff: 0,
+ region: "Kolchev",
+ loc: (-50e3, 110e3, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Kolchev-Anatoly",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3007,
+ name: "Ilya-Kolchev",
+ intel: located,
+ iff: 0,
+ region: "Ilya",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Ilya-Kolchev",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 3008,
+ name: "Anatoly-Kolchev",
+ intel: located,
+ iff: 0,
+ region: "Anatoly",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 3000,
+
+ unit: {
+ name: "Anatoly-Kolchev",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4000,
+ name: "Korius Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Korius",
+ loc: (4e3, -1e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 4001,
+ name: "Moneta-Solnas",
+ intel: located,
+ iff: 0,
+ region: "Moneta",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Moneta-Solnas",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4002,
+ name: "Solnas-Moneta",
+ intel: located,
+ iff: 0,
+ region: "Solnas",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Solnas-Moneta",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4003,
+ name: "Solnas-Korius",
+ intel: located,
+ iff: 0,
+ region: "Solnas",
+ loc: (50e3, -90e3, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Solnas-Korius",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4004,
+ name: "Korius-Solnas",
+ intel: located,
+ iff: 0,
+ region: "Korius",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Korius-Solnas",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4005,
+ name: "Korius-Adantar",
+ intel: located,
+ iff: 0,
+ region: "Korius",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Korius-Adantar",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4006,
+ name: "Korius-Moneta",
+ intel: located,
+ iff: 0,
+ region: "Korius",
+ loc: (-50e3, 110e3, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Korius-Moneta",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4007,
+ name: "Adantar-Korius",
+ intel: located,
+ iff: 0,
+ region: "Adantar",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Adantar-Korius",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 4008,
+ name: "Moneta-Korius",
+ intel: located,
+ iff: 0,
+ region: "Moneta",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 4000,
+
+ unit: {
+ name: "Moneta-Korius",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5000,
+ name: "Loris Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Loris",
+ loc: (4e3, -1e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 5001,
+ name: "Casalle-Loris",
+ intel: located,
+ iff: 0,
+ region: "Casalle",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Casalle-Loris",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5002,
+ name: "Loris-Casalle",
+ intel: located,
+ iff: 0,
+ region: "Loris",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Loris-Casalle",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5003,
+ name: "Duna-Loris",
+ intel: located,
+ iff: 0,
+ region: "Duna",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Duna-Loris",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5004,
+ name: "Loris-Duna",
+ intel: located,
+ iff: 0,
+ region: "Loris",
+ loc: (50e3, -90e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Loris-Duna",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+
+
+
+
+group: {
+ type: war_production,
+ id: 3000,
+ name: "War Production - Haiche",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: resource,
+ id: 3000,
+ name: "Tantalus Mining Station",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+ parent_type: war_production,
+ parent_id: 3000,
+}
+
+group: {
+ type: resource,
+ id: 3001,
+ name: "Mining Station",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Mining Station",
+ type: "Building",
+ design: "Dsrt05",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 3002,
+ name: "Administration",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (-3e3, 2e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Administration",
+ type: "Building",
+ design: "Dsrt01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: refinery,
+ id: 3003,
+ name: "Refinery",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Refinery"
+ type: "Building"
+ design: "Dsrt00"
+ loc: (-4e3, 3e3, 0)
+ }
+
+ unit: {
+ name: "Cooling Tower A"
+ type: Building
+ design: Cool00
+ loc: (-5e3, 2200, 0)
+ }
+
+ unit: {
+ name: "Cooling Tower B"
+ type: Building
+ design: Cool00
+ loc: (-5e3, 3000, 0)
+ }
+
+ unit: {
+ name: "Cooling Tower C"
+ type: Building
+ design: Cool00
+ loc: (-5e3, 3800, 0)
+ }
+
+ unit: {
+ name: "Cryo Tank A",
+ type: Factory
+ design: Tank00
+ loc: (-5.5e3, 2200, 0)
+ }
+
+ unit: {
+ name: "Cryo Tank B"
+ type: Factory
+ design: Tank00
+ loc: (-5.5e3, 3000, 0)
+ }
+
+ unit: {
+ name: "Cryo Tank C"
+ type: Factory
+ design: Tank00
+ loc: (-4.5e3, 3800, 0)
+ }
+}
+
+group: {
+ type: resource,
+ id: 3004,
+ name: "Reactor",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (2e3, 0, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: habitat,
+ id: 3005,
+ name: "Downtown",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (-6e3, -2e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Downtown",
+ type: "Building",
+ design: "Dsrt04",
+ loc: (-6e3, -2e3, 0)
+ }
+
+ unit: {
+ name: "Downtown",
+ type: "Building",
+ design: "Dsrt04",
+ loc: (-5e3, -1.5e3, 0)
+ }
+}
+
+group: {
+ type: habitat,
+ id: 3006,
+ name: "Outpost",
+ intel: known,
+ iff: 2,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+ parent_type: resource,
+ parent_id: 3000,
+
+ unit: {
+ name: "Mining Outpost",
+ type: "Building",
+ design: "Dsrt04",
+ regnum: "",
+ },
+}
+
+
+
+
+group: {
+ type: war_production,
+ id: 4000,
+ name: "War Production - Lovo",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: resource,
+ id: 4000,
+ name: "Lovo Factory Zone",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (0, 0, 0),
+ parent_type: war_production,
+ parent_id: 4000,
+}
+
+group: {
+ type: resource,
+ id: 4001,
+ name: "Fabrication",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-20e3, -10e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Fabrication",
+ type: "Factory",
+ design: "Fact04",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 4002,
+ name: "Administration",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-13e3, -18e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Administration",
+ type: "Building",
+ design: "Bldg01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: refinery,
+ id: 4003,
+ name: "Refinery",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-17e3, -10e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Refinery",
+ type: "Factory",
+ design: "Fact02",
+ regnum: "",
+ loc: (-17e3, -10e3, 0),
+ },
+
+ unit: {
+ name: "Cooling Tower",
+ type: "Building",
+ design: "Cool00",
+ count: 3,
+ loc: (-17e3, -11e3, 0),
+ },
+
+ unit: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 2,
+ loc: (-18e3, -9e3, 0),
+ },
+}
+
+group: {
+ type: resource,
+ id: 4004,
+ name: "Reactor",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-12e3, -17e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 4011,
+ name: "Factory",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-15e3, -14e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Alloys Foundery",
+ type: "Factory",
+ design: "Fact04",
+ regnum: "",
+ },
+}
+
+group: {
+ type: resource,
+ id: 4012,
+ name: "Factory",
+ intel: known,
+ iff: 2,
+ region: "Lovo",
+ loc: (-15e3, -16e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "Ceramics Fab",
+ type: "Factory",
+ design: "Fact02",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 4015,
+ name: "Downtown",
+ intel: known,
+ iff: 0,
+ region: "Lovo",
+ loc: (-18e3, -20e3, 0),
+ parent_type: resource,
+ parent_id: 4000,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ },
+}
+
+
+
+
+
+group: {
+ type: war_production,
+ id: 5000,
+ name: "War Production - Garden",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: resource,
+ id: 5000,
+ name: "Tiger Bay Colony",
+ intel: known,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (0, 0, 0),
+ parent_type: war_production,
+ parent_id: 5000,
+}
+
+group: {
+ type: civilian,
+ id: 5015,
+ name: "Central",
+ intel: known,
+ iff: 0,
+ region: "Tiger Bay",
+ loc: (5e3, -11e3, 0),
+ parent_type: resource,
+ parent_id: 5000,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ loc: (5e3, -11e3, 0),
+ },
+
+ unit: {
+ name: "Building C1",
+ type: "Building",
+ design: "Bldg00",
+ regnum: "",
+ loc: (7e3, -12e3, 0),
+ },
+}
+
+
+group: {
+ type: civilian,
+ id: 5020,
+ name: "Western",
+ intel: known,
+ iff: 0,
+ region: "Tiger Bay",
+ loc: (-45e3, -14e3, 0),
+ parent_type: resource,
+ parent_id: 5000,
+
+ unit: {
+ name: "City Block 1",
+ type: "Building",
+ design: "City01",
+ regnum: "",
+ loc: (-46e3, -15e3, 0)
+ },
+
+ unit: {
+ name: "City Block 2",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ loc: (-47e3, -10e3, 0),
+ },
+
+ unit: {
+ name: "Building W1",
+ type: "Building",
+ design: "Bldg01",
+ regnum: "",
+ loc: (-48e3, -11e3, 0),
+ },
+}
+
+group: {
+ type: civilian,
+ id: 5025,
+ name: "Eastern",
+ intel: known,
+ iff: 0,
+ region: "Tiger Bay",
+ loc: (54000, -3000, 0),
+ parent_type: resource,
+ parent_id: 5000,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City01",
+ regnum: "",
+ loc: (54000, -3000, 0),
+ },
+
+ unit: {
+ name: "Building E1",
+ type: "Building",
+ design: "Bldg03",
+ regnum: "",
+ loc: (52000, -6000, 0),
+ },
+
+ unit: {
+ name: "Building E2",
+ type: "Building",
+ design: "Bldg04",
+ regnum: "",
+ loc: (52000, 0, 0),
+ },
+}
+
+group: {
+ type: resource,
+ id: 5050,
+ name: "Platforms",
+ intel: known,
+ iff: 0,
+ region: "Tiger Bay",
+ loc: (0, 0, 0),
+ parent_type: resource,
+ parent_id: 5000,
+
+ unit: {
+ name: "Platform 1",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+ },
+
+ unit: {
+ name: "Platform 2",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+ },
+
+ unit: {
+ name: "Platform 3",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+ },
+
+ unit: {
+ name: "Platform 4",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+ },
+}
+
+
+group: {
+ type: resource,
+ id: 5051,
+ name: "Platforms",
+ intel: reserve,
+ iff: 2,
+ region: "Tiger Bay",
+ loc: (0, 0, 0),
+ parent_type: resource,
+ parent_id: 5000,
+
+ unit: {
+ name: "Platform 1",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (-25e3, 5e3, 0),
+ },
+
+ unit: {
+ name: "Platform 2",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (-60e3, 32e3, 0),
+ },
+
+ unit: {
+ name: "Platform 3",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (15e3, 10e3, 0),
+ },
+
+ unit: {
+ name: "Platform 4",
+ type: "Factory",
+ design: "Platform",
+ regnum: "",
+ region: "Tiger Bay",
+ loc: (35e3, 60e3, 0),
+ },
+}
+
+
+
+
+
+
+group: {
+ type: war_production,
+ id: 6000,
+ name: "War Production - Volante",
+ intel: known,
+ iff: 2,
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: resource,
+ id: 6000,
+ name: "Hell's Kitchen Factory Zone",
+ intel: known,
+ iff: 2,
+ region: "Hell's Kitchen",
+ loc: (0, 0, 0),
+ parent_type: war_production,
+ parent_id: 6000,
+}
+
+group: {
+ type: resource,
+ id: 6003,
+ name: "Tanks",
+ intel: known,
+ iff: 2,
+ region: "Hell's Kitchen",
+ loc: (-14e3, -16e3, 0),
+ parent_type: resource,
+ parent_id: 6000,
+
+ unit: {
+ name: "Cryo Tank",
+ type: "Factory",
+ design: "Tank00",
+ count: 6,
+ },
+}
+
+group: {
+ type: resource,
+ id: 6004,
+ name: "Reactor",
+ intel: known,
+ iff: 2,
+ region: "Hell's Kitchen",
+ loc: (-12e3, -17e3, 0),
+ parent_type: resource,
+ parent_id: 6000,
+
+ unit: {
+ name: "Reactor",
+ type: "Factory",
+ design: "Reac01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 6015,
+ name: "Downtown",
+ intel: known,
+ iff: 0,
+ region: "Hell's Kitchen",
+ loc: (0, 20e3, 0)
+ parent_type: resource,
+ parent_id: 6000,
+
+ unit: {
+ name: "Bio Dome 1",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 20e3, 0)
+ },
+
+ unit: {
+ name: "Bio Dome 2",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (0, 47e3, 0)
+ heading: 90,
+ },
+
+ unit: {
+ name: "Bio Dome 3",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (13e3, -3e3, 0)
+ heading: 60
+ },
+
+ unit: {
+ name: "Bio Dome 4",
+ type: "Building",
+ design: "BioDome",
+ region: "Hell's Kitchen",
+ loc: (-27e3, 20e3, 0)
+ heading: 30
+ },
+
+ unit: {
+ name: "Bridge 1",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (0, 33500, 0)
+ },
+
+ unit: {
+ name: "Bridge 2",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (5500, 8500, 0)
+ heading: 30
+ },
+
+ unit: {
+ name: "Bridge 3",
+ type: "Building",
+ design: "BioTrail",
+ region: "Hell's Kitchen",
+ loc: (-13500, 20e3, 0)
+ heading: 90
+ },
+
+ unit: {
+ name: "Utility 1",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (5e3, -3e3, 0)
+ },
+
+ unit: {
+ name: "Utility 2",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 25e3, 0)
+ },
+
+ unit: {
+ name: "Utility 3",
+ type: "Building",
+ design: "BioDome2",
+ region: "Hell's Kitchen",
+ loc: (-4e3, 29e3, 0)
+ },
+}
+
+
+
+
+group: {
+ type: infrastructure,
+ id: 5000,
+ name: "Isham Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Garden",
+ loc: (54e3, -51e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 5001,
+ name: "Garden-Senesca",
+ intel: located,
+ iff: 0,
+ region: "Garden",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Garden-Senesca",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5002,
+ name: "Senesca-Garden",
+ intel: located,
+ iff: 0,
+ region: "Senesca",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Senesca-Garden",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5001,
+ name: "Garden-Relay",
+ intel: located,
+ iff: 0,
+ region: "Garden",
+ loc: (110e3, -60e3, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Garden-Relay",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 5002,
+ name: "Relay-Garden",
+ intel: located,
+ iff: 0,
+ region: "Relay",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 5000,
+
+ unit: {
+ name: "Relay-Garden",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+
+group: {
+ type: infrastructure,
+ id: 7000,
+ name: "Radix Farcaster Network",
+ intel: located,
+ iff: 0,
+ region: "Radix",
+ loc: (40e3, -10e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 7001,
+ name: "Radix-Senna",
+ intel: located,
+ iff: 0,
+ region: "Radix",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 7000,
+
+ unit: {
+ name: "Radix-Senna",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 7002,
+ name: "Senna-Radix",
+ intel: located,
+ iff: 0,
+ region: "Senna",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 7000,
+
+ unit: {
+ name: "Senna-Radix",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 7001,
+ name: "Radix-Cavenda",
+ intel: located,
+ iff: 0,
+ region: "Radix",
+ loc: (-110e3, -20e3, 0),
+ parent_type: infrastructure,
+ parent_id: 7000,
+
+ unit: {
+ name: "Radix-Cavenda",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 7002,
+ name: "Cavenda-Radix",
+ intel: located,
+ iff: 0,
+ region: "Cavenda",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 7000,
+
+ unit: {
+ name: "Cavenda-Radix",
+ type: "Farcaster",
+ design: "Farcaster2",
+ regnum: "",
+ },
+}
+
diff --git a/data/shatter/Campaigns/Pirates.def b/data/shatter/Campaigns/Pirates.def
new file mode 100644
index 0000000..2d04890
--- /dev/null
+++ b/data/shatter/Campaigns/Pirates.def
@@ -0,0 +1,452 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Brotherhood of Iron",
+ intel: secret,
+ iff: 3,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 1,
+ name: "Eastern Fire",
+ intel: reserve,
+ iff: 3,
+ region: "Prosenar",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 5,
+ name: "Marauders",
+ intel: known,
+ iff: 3,
+ region: "Prosenar",
+ loc: (-280e3, -120e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Marauder",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "305",
+ },
+
+ unit: {
+ name: "Punisher",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "306",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 6,
+ name: "Raiders",
+ intel: known,
+ iff: 3,
+ region: "Vesta",
+ loc: (-100e3, -270e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Widow Maker",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Murder of Crows",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 7,
+ name: "Vengeance",
+ intel: known,
+ iff: 3,
+ region: "Nero",
+ loc: (-100e3, 70e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Blinding Flash",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Hellhound",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: station,
+ id: 1,
+ name: "Skull Cove",
+ intel: known,
+ iff: 3,
+ region: "Vesta",
+ loc: (230e3, 320e3, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Skull Cove",
+ type: "Station",
+ design: "Station5",
+ regnum: "",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 8,
+ name: "Storm Bringers",
+ intel: known,
+ iff: 3,
+ region: "Prosenar",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: station,
+ parent_id: 1,
+
+ unit: {
+ name: "Storm Bringer",
+ type: "Fighter",
+ design: "Cutlass",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 9,
+ name: "Flaming Arrows",
+ intel: known,
+ iff: 3,
+ region: "Vesta",
+ loc: (0, -20e3, 7e3),
+ parent_type: station,
+ parent_id: 1,
+
+ unit: {
+ name: "Flaming Arrow",
+ type: "Fighter",
+ design: "Cutlass",
+ count: 18,
+ },
+}
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Southern Cross",
+ intel: reserve,
+ iff: 3,
+ region: "Duna",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 15,
+ name: "Royals",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (-280e3, -120e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Count Rugen",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "305",
+ },
+
+ unit: {
+ name: "Swordsman",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "306",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 16,
+ name: "Crossbones",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (-100e3, -270e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Vandal",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Ruin",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 17,
+ name: "Terror",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (-100e3, 70e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Deathbringer",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Terror",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: station,
+ id: 2,
+ name: "Dead Reef",
+ intel: known,
+ iff: 3,
+ region: "Casalle",
+ loc: (130e3, -420e3, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Dead Reef",
+ type: "Station",
+ design: "Station5",
+ regnum: "",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 18,
+ name: "Hellforge",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: station,
+ parent_id: 2,
+
+ unit: {
+ name: "Hellforge",
+ type: "Fighter",
+ design: "Cutlass",
+ count: 16,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 19,
+ name: "Daggers",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (0, -20e3, 7e3),
+ parent_type: station,
+ parent_id: 2,
+
+ unit: {
+ name: "Dagger",
+ type: "Fighter",
+ design: "Cutlass",
+ count: 16,
+ },
+}
+
+group: {
+ type: fleet,
+ id: 3,
+ name: "North Wind",
+ intel: reserve,
+ iff: 3,
+ region: "Casalle",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 25,
+ name: "Marauders",
+ intel: known,
+ iff: 3,
+ region: "Casalle",
+ loc: (-280e3, -120e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Rapacious",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "305",
+ },
+
+ unit: {
+ name: "Claw",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "306",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 26,
+ name: "Hook",
+ intel: known,
+ iff: 3,
+ region: "Duna",
+ loc: (-100e3, -270e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Insanity",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Vorpal",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 27,
+ name: "Thunder",
+ intel: secret,
+ iff: 3,
+ region: "Nergal",
+ loc: (-100e3, 70e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Thunderous",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "103",
+ },
+
+ unit: {
+ name: "Agony",
+ type: "Frigate",
+ design: "Marauder",
+ regnum: "104",
+ },
+}
+
+group: {
+ type: station,
+ id: 3,
+ name: "Blackhand",
+ intel: known,
+ iff: 3,
+ region: "Loris",
+ loc: (130e3, -420e3, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Blackhand",
+ type: "Station",
+ design: "Station5",
+ regnum: "",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 28,
+ name: "Spawn",
+ intel: secret,
+ iff: 3,
+ region: "Loris",
+ loc: (30e3, -180e3, 6e3),
+ parent_type: station,
+ parent_id: 3,
+
+ unit: {
+ name: "Spawn",
+ type: "Fighter",
+ design: "Saber",
+ count: 18,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 29,
+ name: "Blades",
+ intel: secret,
+ iff: 3,
+ region: "Loris",
+ loc: (0, -20e3, 7e3),
+ parent_type: station,
+ parent_id: 3,
+
+ unit: {
+ name: "Blade",
+ type: "Fighter",
+ design: "Saber",
+ count: 18,
+ },
+}
+
diff --git a/data/shatter/Campaigns/Silessia.def b/data/shatter/Campaigns/Silessia.def
new file mode 100644
index 0000000..e35c0dd
--- /dev/null
+++ b/data/shatter/Campaigns/Silessia.def
@@ -0,0 +1,559 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Silessian Confederacy",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: civilian,
+ id: 1,
+ name: "Civilian Infrastructure",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2000,
+ name: "Silessian Farcaster Network",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2001,
+ name: "Silessia-Prosenar",
+ intel: located,
+ iff: 0,
+ region: "Silessia",
+ loc: (131e3, 60e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Silessia-Prosenar",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2002,
+ name: "Prosenar-Silessia",
+ intel: located,
+ iff: 0,
+ region: "Prosenar",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Prosenar-Silessia",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2003,
+ name: "Prosenar-Vesta",
+ intel: located,
+ iff: 0,
+ region: "Prosenar",
+ loc: (-176e3, 71e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Prosenar-Vesta",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2004,
+ name: "Vesta-Prosenar",
+ intel: located,
+ iff: 0,
+ region: "Vesta",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Vesta-Prosenar",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2005,
+ name: "Silessia-Nero",
+ intel: located,
+ iff: 0,
+ region: "Silessia",
+ loc: (-163e3, -63e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Silessia-Nero",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: transport,
+ id: 2006,
+ name: "Nero-Silessia",
+ intel: located,
+ iff: 0,
+ region: "Nero",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Nero-Silessia",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2007,
+ name: "Vesta-Nero",
+ intel: located,
+ iff: 0,
+ region: "Vesta",
+ loc: (-150e3, -50e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Vesta-Nero",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: transport,
+ id: 2008,
+ name: "Nero-Vesta",
+ intel: located,
+ iff: 0,
+ region: "Nero",
+ loc: (-120e3, 170e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Nero-Vesta",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4000,
+ name: "COMNET",
+ intel: located,
+ iff: 0,
+ region: "Prosenar",
+ loc: (0, 30e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: network,
+ id: 4001,
+ name: "Relay 105/AX",
+ intel: located,
+ iff: 0,
+ region: "Prosenar",
+ loc: (80e3, -120e3, 7e3),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 105/AX",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4002,
+ name: "Relay 208/HB",
+ intel: located,
+ iff: 0,
+ region: "Vesta",
+ loc: (-40e3, 60e3, 0),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 208/HB",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4003,
+ name: "Relay 038/AZ",
+ intel: located,
+ iff: 0,
+ region: "Nero",
+ loc: (-60e3, -180e3, 0),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 038/AZ",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4004,
+ name: "Relay 530/UN",
+ intel: located,
+ iff: 0,
+ region: "Prosenar",
+ loc: (-160e3, -140e3, 0),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 530/UN",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4005,
+ name: "Relay 573/JD",
+ intel: located,
+ iff: 0,
+ region: "Vesta",
+ loc: (130e3, -180e3, 0),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 573/JD",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: network,
+ id: 4006,
+ name: "Relay 831/UN",
+ intel: located,
+ iff: 0,
+ region: "Nero",
+ loc: (210e3, 50e3, 0),
+ parent_type: network,
+ parent_id: 4000,
+
+ unit: {
+ name: "Relay 831/UN",
+ type: "COMSAT",
+ design: "Relay1",
+ regnum: "",
+ },
+}
+
+group: {
+ type: non_com,
+ id: 2300,
+ name: "Freight",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, -20e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: freight,
+ id: 3000,
+ name: "Independent Shipping",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (80e3, -120e3, 0),
+ parent_type: non_com,
+ parent_id: 2300,
+}
+
+group: {
+ type: freight,
+ id: 3798,
+ name: "ISS White Dawn",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (90e3, -130e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS White Dawn",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "798",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3780,
+ name: "ISS Fairlight",
+ intel: known,
+ iff: 0,
+ region: "Prosenar",
+ loc: (110e3, -120e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Fairlight",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "780",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3354,
+ name: "ISS Turimo",
+ intel: known,
+ iff: 0,
+ region: "Vesta",
+ loc: (175e3, 200e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Turimo",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "354",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3843,
+ name: "ISS Farlook",
+ intel: known,
+ iff: 0,
+ region: "Nero",
+ loc: (160e3, 211e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Farlook",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "843",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3235,
+ name: "ISS Grayhawke",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (-20e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Grayhawke",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "235",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3493,
+ name: "ISS Ulmo",
+ intel: known,
+ iff: 0,
+ region: "Prosenar",
+ loc: (-90e3, 160e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Ulmo",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "493",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3219,
+ name: "ISS Wayward",
+ intel: known,
+ iff: 0,
+ region: "Vesta",
+ loc: (-102e3, 138e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Wayward",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "219",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3381,
+ name: "ISS Sutter",
+ intel: known,
+ iff: 0,
+ region: "Vesta",
+ loc: (99e3, -128e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Sutter",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "381",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3521,
+ name: "ISS Alen Carl",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (79e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Alen Carl",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "521",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3617,
+ name: "ISS Hal Bennet",
+ intel: known,
+ iff: 0,
+ region: "Prosenar",
+ loc: (75e3, -150e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Hal Bennet",
+ type: "Cargo",
+ design: "IM2800",
+ regnum: "617",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 5000,
+ name: "Colonial Authority",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: passenger,
+ id: 5001,
+ name: "Far Horizon",
+ intel: known,
+ iff: 0,
+ region: "Silessia",
+ loc: (0, 0, 0),
+ parent_type: civilian,
+ parent_id: 5000,
+
+ unit: {
+ name: "Far Horizon",
+ type: "Station",
+ design: "Colony",
+ regnum: "XJ-1",
+ },
+}
+
diff --git a/data/shatter/Campaigns/Solus.def b/data/shatter/Campaigns/Solus.def
new file mode 100644
index 0000000..a0f18aa
--- /dev/null
+++ b/data/shatter/Campaigns/Solus.def
@@ -0,0 +1,906 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Independent System of Solus",
+ intel: known,
+ iff: 0,
+}
+
+group: {
+ type: civilian,
+ id: 1,
+ name: "Civilian Infrastructure",
+ intel: known,
+ iff: 0,
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2000,
+ name: "Solus Farcaster Network",
+ intel: known,
+ iff: 0,
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: infrastructure,
+ id: 2001,
+ name: "Solus-Kalon",
+ intel: located,
+ iff: 0,
+ region: "Solus",
+ loc: (80e3, 20e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Solus-Kalon",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2002,
+ name: "Kalon-Solus",
+ intel: located,
+ iff: 0,
+ region: "Kalon",
+ loc: (90e3, -54e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Kalon-Solus",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2003,
+ name: "Solus-Trellis",
+ intel: located,
+ iff: 0,
+ region: "Solus",
+ loc: (-200e3, -100e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Solus-Trellis",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2004,
+ name: "Trellis-Solus",
+ intel: located,
+ iff: 0,
+ region: "Trellis",
+ loc: (-100e3, -150e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Trellis-Solus",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2005,
+ name: "Solus-Jalah",
+ intel: located,
+ iff: 0,
+ region: "Solus",
+ loc: (150e3, -180e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Solus-Jalah",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2006,
+ name: "Jalah-Solus",
+ intel: located,
+ iff: 0,
+ region: "Jalah",
+ loc: (0, 0, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Jalah-Solus",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2007,
+ name: "Trellis-Jalah",
+ intel: located,
+ iff: 0,
+ region: "Trellis",
+ loc: (50e3, -100e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Trellis-Jalah",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: infrastructure,
+ id: 2008,
+ name: "Jalah-Trellis",
+ intel: located,
+ iff: 0,
+ region: "Jalah",
+ loc: (120e3, -200e3, 0),
+ parent_type: infrastructure,
+ parent_id: 2000,
+
+ unit: {
+ name: "Jalah-Trellis",
+ type: "Farcaster",
+ design: "Farcaster",
+ regnum: "",
+ },
+}
+
+group: {
+ type: transport,
+ id: 2100,
+ name: "Solus Port Authority",
+ intel: known,
+ iff: 0,
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: station,
+ id: 2101,
+ name: "Trellis Docks",
+ intel: located,
+ iff: 0,
+ region: "Trellis",
+ loc: (0, 0, 0),
+ parent_type: transport,
+ parent_id: 2100,
+
+ unit: {
+ name: "Trellis Docks"
+ type: "Station"
+ design: "Station1"
+ regnum: ""
+ }
+}
+
+group: {
+ type: intercept_squadron
+ id: 2110
+ name: "Trellis Guest 1"
+ intel: known
+ iff: 0,
+ region: "Trellis",
+ loc: (0, 0, 0),
+ parent_type: station,
+ parent_id: 2101,
+
+ unit: {
+ name: "Trellis Guest 1"
+ type: "Fighter"
+ design: "Falcon"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: fighter_squadron,
+ id: 2111,
+ name: "Trellis Guest 2",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (0, 0, 0),
+ parent_type: station,
+ parent_id: 2101,
+
+ unit: {
+ name: "Trellis Guest 2"
+ type: "Fighter"
+ design: "Stormhawk"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: lca_squadron,
+ id: 2112,
+ name: "Trellis Guest 3",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (0, 0, 0),
+ parent_type: station,
+ parent_id: 2101,
+
+ unit: {
+ name: "Trellis Guest 3"
+ type: "LCA"
+ design: "Zodiac"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: station
+ id: 2102
+ name: "Harmony Station"
+ intel: located
+ iff: 0
+ region: "Kalon"
+ loc: (0, 0, 0)
+ parent_type: transport
+ parent_id: 2100
+
+ unit: {
+ name: "Harmony Station"
+ type: "Station"
+ design: "Station2"
+ }
+}
+
+group: {
+ type: intercept_squadron,
+ id: 2120,
+ name: "Harmony Guest 1",
+ intel: known,
+ iff: 0,
+ region: "Kalon",
+ loc: (0, 0, 0),
+ parent_type: station,
+ parent_id: 2102,
+
+ unit: {
+ name: "Harmony Guest 1"
+ type: "Fighter"
+ design: "Falcon"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: fighter_squadron
+ id: 2121
+ name: "Harmony Guest 2"
+ intel: known
+ iff: 0
+ region: "Kalon"
+ loc: (0, 0, 0)
+ parent_type: station
+ parent_id: 2102
+
+ unit: {
+ name: "Harmony Guest 2"
+ type: "Fighter"
+ design: "Stormhawk"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: lca_squadron
+ id: 2122
+ name: "Harmony Guest 3"
+ intel: known
+ iff: 0
+ region: "Kalon"
+ loc: (0, 0, 0),
+ parent_type: station
+ parent_id: 2102
+
+ unit: {
+ name: "Harmony Guest 3"
+ type: "LCA"
+ design: "Zodiac"
+ count: 8
+ dead_count: 8
+ }
+}
+
+group: {
+ type: civilian,
+ id: 2200,
+ name: "Telmera City",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-54e3, 30e3, 0),
+ parent_type: civilian,
+ parent_id: 1,
+}
+
+group: {
+ type: civilian,
+ id: 2201,
+ name: "Admin",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-53000, 29500, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Admin",
+ type: "Building",
+ design: "Bldg00",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2202,
+ name: "Office",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-52500, 28e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Office",
+ type: "Building",
+ design: "Bldg01",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2203,
+ name: "Tower",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-54600, 32800, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Tower",
+ type: "Building",
+ design: "Bldg02",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2204,
+ name: "Alton",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-56e3, 26e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Alton",
+ type: "Building",
+ design: "Bldg03",
+ regnum: "",
+ },
+}
+
+
+group: {
+ type: civilian,
+ id: 2210,
+ name: "City Block",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-60e3, 28e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2211,
+ name: "City Block",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-56000, 30000, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City02",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2212,
+ name: "City Block",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-51e3, 30700, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2215,
+ name: "City Block",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (52600, -52000, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City00",
+ regnum: "",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 2216,
+ name: "City Block",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (53e3, -55e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "City Block",
+ type: "Building",
+ design: "City01",
+ regnum: "",
+ },
+}
+
+
+group: {
+ type: war_production,
+ id: 2207,
+ name: "Factory 2",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-53000, 30500, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Factory 2",
+ type: "Factory",
+ design: "Fact04",
+ regnum: "000",
+ },
+}
+
+group: {
+ type: starbase,
+ id: 1,
+ name: "Telmera Starport",
+ intel: located,
+ iff: 0,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+ parent_type: civilian,
+ parent_id: 2200,
+
+ unit: {
+ name: "Telmera Starport",
+ type: "Starbase",
+ design: "Airbase1",
+ regnum: "000",
+ },
+}
+
+group: {
+ type: intercept_squadron,
+ id: 2223,
+ name: "Telmera Guest 1",
+ intel: known,
+ iff: 0,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Telmera Guest 1",
+ type: "Fighter",
+ design: "Falcon",
+ count: 10,
+ dead_count: 10,
+ },
+}
+
+
+group: {
+ type: fighter_squadron,
+ id: 2224,
+ name: "Telmera Guest 2",
+ intel: known,
+ iff: 0,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Telmera Guest 2",
+ type: "Fighter",
+ design: "Stormhawk",
+ count: 10,
+ dead_count: 10,
+ },
+}
+
+group: {
+ type: lca_squadron,
+ id: 2225,
+ name: "Telmera Guest 3",
+ intel: known,
+ iff: 0,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+ parent_type: starbase,
+ parent_id: 1,
+
+ unit: {
+ name: "Telmera Guest 3",
+ type: "LCA",
+ design: "Zodiac",
+ count: 10,
+ dead_count: 10,
+ },
+}
+
+group: {
+ type: non_com,
+ id: 2300,
+ name: "Freight",
+ intel: known,
+ iff: 0,
+ loc: (0, -20e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: freight,
+ id: 3000,
+ name: "Independent Shipping",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (80e3, -120e3, 0),
+ parent_type: non_com,
+ parent_id: 2300,
+}
+
+group: {
+ type: freight,
+ id: 3798,
+ name: "ISS White Dawn",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (90e3, -130e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS White Dawn",
+ type: Cargo
+ design: IM2800
+ skin: Green
+ regnum: "798",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3780,
+ name: "ISS Fairlight",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (110e3, -120e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Fairlight",
+ type: Cargo
+ design: IM2800
+ skin: Green
+ regnum: "780",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3354,
+ name: "ISS Turimo",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (175e3, 200e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Turimo",
+ type: Cargo
+ design: IM2800
+ skin: Green
+ regnum: "354",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3843,
+ name: "ISS Farlook",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (160e3, 211e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Farlook",
+ type: Cargo
+ design: IM3500
+ skin: Green
+ regnum: "843",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3235,
+ name: "ISS Grayhawke",
+ intel: known,
+ iff: 0,
+ region: "Trellis",
+ loc: (-20e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Grayhawke",
+ type: Cargo
+ design: IM3500
+ skin: Blue
+ regnum: "235",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3493,
+ name: "ISS Ulmo",
+ intel: known,
+ iff: 0,
+ region: "Kalon",
+ loc: (-90e3, 160e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Ulmo",
+ type: Cargo
+ design: IM4300
+ skin: Blue
+ regnum: "493",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3219,
+ name: "ISS Wayward",
+ intel: known,
+ iff: 0,
+ region: "Kalon",
+ loc: (-102e3, 138e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Wayward",
+ type: Cargo
+ design: IM4300
+ skin: Blue
+ regnum: "219",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3381,
+ name: "ISS Sutter",
+ intel: known,
+ iff: 0,
+ region: "Kalon",
+ loc: (99e3, -128e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Sutter",
+ type: Cargo
+ design: IM2800
+ skin: Blue
+ regnum: "381",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3521,
+ name: "ISS Alen Carl",
+ intel: known,
+ iff: 0,
+ region: "Solus",
+ loc: (79e3, 228e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Alen Carl",
+ type: Cargo
+ design: IM2800
+ skin: Blue
+ regnum: "521",
+ },
+}
+
+group: {
+ type: freight,
+ id: 3617,
+ name: "ISS Hal Bennet",
+ intel: known,
+ iff: 0,
+ region: "Meridian",
+ loc: (75e3, -150e3, 0),
+ parent_type: freight,
+ parent_id: 3000,
+
+ unit: {
+ name: "ISS Hal Bennet",
+ type: "Cargo",
+ design: IM3500
+ skin: Blue
+ regnum: "617",
+ },
+}
+
+group: {
+ type: civilian,
+ id: 5000,
+ name: "University",
+ intel: known,
+ iff: 0,
+ region: "Meridian",
+ loc: (75e3, 80e3, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: habitat,
+ id: 5001,
+ name: "Tal Vesta Stellar Observatory",
+ intel: known,
+ iff: 0,
+ region: "Meridian",
+ loc: (75e3, 75e3, 0),
+ parent_type: civilian,
+ parent_id: 5000,
+
+ unit: {
+ name: "Tal Vesta Stellar Observatory",
+ type: "Station",
+ design: "Observatory",
+ regnum: "000",
+ },
+}
+
+group: {
+ type: freight,
+ id: 5002,
+ name: "Logistics",
+ intel: secret,
+ iff: 0,
+ region: "Meridian",
+ loc: (30e3, -180e3, 0),
+ parent_type: habitat,
+ parent_id: 5001,
+
+ unit: {
+ name: "Loader",
+ type: "LCA",
+ design: "Zodiac",
+ count: 2,
+ },
+}
+
diff --git a/data/shatter/Campaigns/Zolons.def b/data/shatter/Campaigns/Zolons.def
new file mode 100644
index 0000000..b49b5e7
--- /dev/null
+++ b/data/shatter/Campaigns/Zolons.def
@@ -0,0 +1,330 @@
+ORDER_OF_BATTLE
+
+group: {
+ type: force,
+ id: 1,
+ name: "Zolon Empire",
+ intel: secret,
+ iff: 4,
+ loc: (0, 0, 0),
+}
+
+group: {
+ type: fleet,
+ id: 1,
+ name: "Nephrys",
+ intel: reserve,
+ iff: 4,
+ region: "Nergal",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 1,
+ name: "Zolon",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (-1e5, -1e5, 0),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "ZD01",
+ type: "Cruiser",
+ design: "ZZCA",
+ },
+
+ unit: {
+ name: "ZD02",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD03",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD04",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZF01",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+
+ unit: {
+ name: "ZF02",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 8,
+ name: "Krill",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (-1.1e5, -1.1e5, 6e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Krill",
+ type: "Fighter",
+ design: "ZZF",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 9,
+ name: "Sculpin",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (1e5, -1e5, 7e3),
+ parent_type: fleet,
+ parent_id: 1,
+
+ unit: {
+ name: "Sculpin",
+ type: "Attack",
+ design: "ZZA",
+ count: 24,
+ },
+}
+
+
+
+group: {
+ type: fleet,
+ id: 2,
+ name: "Nephrys",
+ intel: reserve,
+ iff: 4,
+ region: "Nergal",
+ loc: (0, 180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 2,
+ name: "Zolon",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (1e5, 1e5, 0),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "ZD11",
+ type: "Cruiser",
+ design: "ZZCA",
+ },
+
+ unit: {
+ name: "ZD12",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD13",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD14",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZF11",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+
+ unit: {
+ name: "ZF12",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 3,
+ name: "Moray",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (-1.1e5, -1.1e5, 6e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Moray",
+ type: "Fighter",
+ design: "ZZF",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 4,
+ name: "Lamprey",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (1e5, -1e5, 7e3),
+ parent_type: fleet,
+ parent_id: 2,
+
+ unit: {
+ name: "Lamprey",
+ type: "Attack",
+ design: "ZZA",
+ count: 24,
+ },
+}
+
+
+
+group: {
+ type: fleet,
+ id: 3,
+ name: "Nephrys",
+ intel: reserve,
+ iff: 4,
+ region: "Nergal",
+ loc: (0, 180e3, 6e3),
+ parent_type: force,
+ parent_id: 1,
+}
+
+group: {
+ type: destroyer_squadron,
+ id: 3,
+ name: "Zolon",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (1e5, 1e5, 0),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "ZD21",
+ type: "Cruiser",
+ design: "ZZCA",
+ },
+
+ unit: {
+ name: "ZD22",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD23",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZD24",
+ type: "Destroyer",
+ design: "ZZDD",
+ },
+
+ unit: {
+ name: "ZF21",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+
+ unit: {
+ name: "ZF22",
+ type: "Frigate",
+ design: "ZZFF",
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 12,
+ name: "Crab",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (-1.1e5, -1.1e5, 6e3),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Moray",
+ type: "Fighter",
+ design: "ZZF",
+ count: 24,
+ },
+}
+
+group: {
+ type: fighter_squadron,
+ id: 15,
+ name: "Steelhead",
+ intel: secret,
+ iff: 4,
+ region: "Sintar",
+ loc: (1e5, -1e5, 7e3),
+ parent_type: fleet,
+ parent_id: 3,
+
+ unit: {
+ name: "Lamprey",
+ type: "Attack",
+ design: "ZZA",
+ count: 24,
+ },
+}
+
+
+
+
+group: {
+ type: non_com,
+ id: 1,
+ name: "Zolon Ambassador",
+ intel: known,
+ iff: 0,
+ region: "Tarsus",
+ loc: (0, 0, 0),
+ parent_type: force,
+ parent_id: 1,
+
+ unit: {
+ name: "Consular Starship",
+ type: "Cruiser",
+ design: "ZZCS",
+ },
+}
+
diff --git a/data/shatter/Explosions/Explosions.def b/data/shatter/Explosions/Explosions.def
new file mode 100644
index 0000000..a792c05
--- /dev/null
+++ b/data/shatter/Explosions/Explosions.def
@@ -0,0 +1,376 @@
+EXPLOSION
+
+explosion: {
+ type: SHIELD_FLASH,
+ lifetime: 0.3,
+ light_level: 1e3,
+ light_decay: 0.5,
+ light_color: (80,80,255),
+
+ num_parts: 8,
+ particles: "Blast_pt3.pcx",
+ part_speed: 70,
+ part_drag: 1.5,
+ part_trail: false,
+ part_decay: 150,
+ part_scale: 0,
+ part_bloom: 12,
+}
+
+explosion: {
+ type: HULL_FLASH,
+ lifetime: 0.12,
+ length: 1,
+ scale: 12,
+ bitmap: "flash2.pcx",
+ light_level: 1e3,
+ light_decay: 0.5,
+ light_color: (255,180,96),
+ sound: "Bang-87-01.wav",
+ sound_min_dist: 1e3,
+ sound_max_dist: 20e3
+}
+
+explosion: {
+ type: BEAM_FLASH,
+ lifetime: 0.1,
+ length: 1,
+ scale: 4,
+ bitmap: "flash2.pcx",
+ light_level: 1e3,
+ light_decay: 0.5,
+ light_color: (255,180,96)
+}
+
+explosion: {
+ type: HULL_BURST,
+ lifetime: 8,
+ light_level: 1e3,
+ light_decay: 0.5,
+ light_color: (255,180,96),
+ num_parts: 32,
+ particles: "blast_pt0.pcx",
+ part_speed: 150,
+ part_scale: 0.8,
+ part_decay: 80,
+ part_drag: 0.65,
+ sound: "Bang-71-03.wav",
+ sound_min_dist: 1e3,
+ sound_max_dist: 20e3
+}
+
+explosion: {
+ type: LARGE_BURST,
+ lifetime: 6,
+ light_level: 500,
+ light_decay: 0.65,
+ light_color: (255,180,96),
+ num_parts: 100,
+ particles: "blast_pt.pcx"
+ part_speed: -500,
+ part_rate: 0.6,
+ part_scale: 1.5,
+ part_drag: 0.3,
+}
+
+explosion: {
+ type: PLASMA_LEAK,
+ lifetime: 30,
+ light_level: 1e3,
+ light_decay: 0.5,
+ light_color: (180,200,255),
+ num_parts: 250,
+ particles: "plasma.pcx",
+ part_speed: 40,
+ part_scale: 0.75,
+ part_rate: 0.25,
+ continuous: true
+}
+
+explosion: {
+ type: SMOKE_TRAIL,
+ lifetime: 120,
+ light_level: 0,
+ light_decay: 0,
+ num_parts: 350,
+ particles: smoke,
+ part_frames: 5,
+ part_speed: 40,
+ part_scale: 0.7,
+ part_rate: 0.2,
+ part_drag: 0.4,
+ part_bloom: 1.5,
+ part_decay: 60,
+ part_alpha: 2,
+ continuous: true,
+}
+
+explosion: {
+ type: HULL_FIRE,
+ lifetime: 100,
+ light_level: 500,
+ light_decay: 0.99,
+ light_color: (255,200,100),
+ num_parts: 160,
+ particles: "HullFire.pcx",
+ part_speed: 40,
+ part_scale: 0.2,
+ part_bloom: 1.7
+ part_decay: 120,
+ part_rate: 0.20,
+ part_trail: true,
+ continuous: true,
+}
+
+explosion: {
+ type: SMALL_FIRE,
+ lifetime: 100,
+ light_level: 400,
+ light_decay: 0.95,
+ light_color: (255,200,100),
+ num_parts: 50,
+ particles: "HullFire.pcx",
+ part_speed: 30,
+ part_scale: 0.1,
+ part_bloom: 1.5,
+ part_decay: 170,
+ part_rate: 0.30,
+ part_trail: false,
+ continuous: true,
+}
+
+explosion: {
+ type: SHOT_BLAST,
+ lifetime: 5,
+
+ light_level: 1e3,
+ light_decay: 0.8,
+ light_color: (255,255,255),
+
+ num_parts: 150,
+ particles: "blast_pt.pcx",
+ part_speed: 150,
+ part_trail: false,
+ part_rate: 1,
+ part_decay: 255,
+ part_scale: 2,
+ part_bloom: 8,
+ sound: "Blast-87-03.wav",
+ sound_min_dist: 5e3,
+ sound_max_dist: 20e3
+}
+
+
+explosion: {
+ type: SMALL_EXPLOSION,
+ lifetime: 3,
+
+ light_level: 2e3,
+ light_decay: 0.8,
+ light_color: (255,255,255),
+
+ num_parts: 100,
+ particles: "Fire1.pcx",
+ part_speed: 90,
+ part_drag: 1.9,
+ part_trail: true,
+ part_rate: 0.25,
+ part_decay: 185,
+ part_scale: 0,
+ part_bloom: 4,
+ sound: "SmallExplosion.wav",
+ sound_min_dist: 1e3,
+ sound_min_dist: 20e3
+}
+
+
+explosion: {
+ type: LARGE_EXPLOSION,
+ lifetime: 3,
+
+ light_level: 2e3,
+ light_decay: 0.8,
+ light_color: (255,255,255),
+
+ num_parts: 140,
+ particles: "Fire3.pcx",
+ part_speed: 270,
+ part_drag: 4,
+ part_trail: false,
+ part_decay: 200,
+ part_rate: 0.3,
+ part_scale: 0,
+ part_bloom: 9,
+
+ sound: "Explosion-72-04.wav",
+ sound_min_dist: 5e3,
+ sound_max_dist: 25e3
+}
+
+
+explosion: {
+ type: NUKE_EXPLOSION,
+ lifetime: 10,
+
+ light_level: 5e3,
+ light_decay: 0.8,
+ light_color: (255,255,255),
+
+ num_parts: 15,
+ particles: "Blast_pt2.pcx",
+ part_speed: 350,
+ part_drag: 1.25,
+ part_trail: false,
+ part_decay: 50,
+ part_rate: 0.25,
+ part_scale: 1,
+ part_bloom: 75,
+ sound: "Distant-68-02big.wav",
+ sound_min_dist: 20e3,
+ sound_max_dist: 75e3
+}
+
+explosion: {
+ type: QUANTUM_FLASH,
+ lifetime: 4,
+ light_level: 1e9,
+ light_decay: 0.5,
+ light_color: (100,180,255),
+ sound: "quantum.wav",
+ sound_min_dist: 5e3,
+ sound_max_dist: 30e3
+}
+
+explosion: {
+ type: HYPER_FLASH,
+ lifetime: 4,
+
+ num_parts: 6,
+ particles: "hyperball.pcx",
+ part_speed: 0,
+ part_trail: false,
+ part_decay: 660,
+ part_rate: 4,
+ part_scale: 0.01,
+ part_bloom: 150,
+
+ light_level: 1e9,
+ light_decay: 0.33,
+ light_color: (40,120,255),
+ sound: "quantum.wav",
+ sound_min_dist: 5e3,
+ sound_max_dist: 30e3
+}
+
+explosion: {
+ type: 20,
+ lifetime: 8,
+ light_level: 300,
+ light_decay: 0.5,
+ light_color: (255,180,96),
+ num_parts: 500,
+ particles: "blast_pt.pcx",
+ part_speed: 250,
+ part_rate: 0.5,
+ part_decay: 80,
+ part_scale: 1.2
+ sound: "Atomic-57-01.wav",
+ sound_min_dist: 10e3,
+ sound_max_dist: 30e3
+}
+
+
+explosion: {
+ type: 21, // drone destroyed by weapons fire
+ lifetime: 1.5,
+
+ light_level: 2e3,
+ light_decay: 0.8,
+ light_color: (255,240,200),
+
+ num_parts: 40,
+ particles: "Fire3.pcx",
+ part_speed: 250,
+ part_drag: 3,
+ part_trail: false,
+ part_decay: 255,
+ part_rate: 0.5,
+ part_scale: 0,
+ part_bloom: 6,
+
+ sound: "Explosion-72-05.wav",
+ sound_min_dist: 8e3,
+ sound_max_dist: 25e3
+}
+
+explosion: {
+ type: 22, // small fighter explosion
+ lifetime: 3,
+
+ light_level: 2e3,
+ light_decay: 0.3,
+ light_color: (255,250,235),
+
+ num_parts: 75,
+ particles: "Fire1.pcx",
+ part_speed: -275,
+ part_drag: 1.9,
+ part_trail: true,
+ part_rate: 0.5,
+ part_decay: 185,
+ part_scale: 0,
+ part_bloom: 5,
+ sound: "Blast-87-02.wav",
+ sound_min_dist: 1e3,
+ sound_max_dist: 18e3
+}
+
+explosion: {
+ type: 23, // big fighter explosion
+ lifetime: 5,
+
+ light_level: 2e3,
+ light_decay: 0.5,
+ light_color: (255,245,235),
+
+ num_parts: 100,
+ particles: "Fire3.pcx",
+ part_speed: -350,
+ part_drag: 2,
+ part_trail: false,
+ part_decay: 230,
+ part_rate: 1.0,
+ part_scale: 0,
+ part_bloom: 6,
+
+ sound: "Explosion-72-02mix.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 20e3
+}
+
+explosion: {
+ type: 24, // drone large burst variation
+ lifetime: 4,
+ light_level: 300,
+ light_decay: 0.65,
+ light_color: (255,180,96),
+ num_parts: 80,
+ particles: "blast_pt.pcx",
+ part_speed: 400,
+ part_rate: 1.0,
+ part_scale: 1.0,
+ part_drag: 0.3,
+}
+
+explosion: {
+ type: 25 // debris fire trail
+ lifetime: 3.5
+ num_parts: 360
+ particles: "Fire1.pcx"
+ part_decay: 150
+ part_speed: 25
+ part_scale: 0.25
+ part_bloom: 0.75
+ part_rate: 0.4
+ continuous: false
+}
diff --git a/data/shatter/Fonts/GUIfont.def b/data/shatter/Fonts/GUIfont.def
new file mode 100644
index 0000000..0668cf4
--- /dev/null
+++ b/data/shatter/Fonts/GUIfont.def
@@ -0,0 +1,26 @@
+FONT
+
+height: 12
+baseline: 10
+spacewidth: 4
+flags: ALL_CAPS
+
+kern: { a: "R", b: "T", k: -1 }
+kern: { a: "R", b: "t", k: -1 }
+kern: { a: "r", b: "t", k: -1 }
+kern: { a: "r", b: "T", k: -1 }
+
+kern: { a: "P", b: "A", k: -1 }
+kern: { a: "P", b: "a", k: -1 }
+kern: { a: "p", b: "a", k: -1 }
+kern: { a: "p", b: "A", k: -1 }
+
+kern: { a: "L", b: "O", k: -2 }
+kern: { a: "L", b: "o", k: -2 }
+kern: { a: "l", b: "o", k: -2 }
+kern: { a: "l", b: "O", k: -2 }
+
+kern: { a: "L", b: "T", k: -2 }
+kern: { a: "L", b: "t", k: -2 }
+kern: { a: "l", b: "t", k: -2 }
+kern: { a: "l", b: "T", k: -2 }
diff --git a/data/shatter/Fonts/GUIsmall.def b/data/shatter/Fonts/GUIsmall.def
new file mode 100644
index 0000000..9ce494b
--- /dev/null
+++ b/data/shatter/Fonts/GUIsmall.def
@@ -0,0 +1,5 @@
+FONT
+
+height: 11
+baseline: 9
+flags: 0
diff --git a/data/shatter/Fonts/HUDfont.def b/data/shatter/Fonts/HUDfont.def
new file mode 100644
index 0000000..9ce494b
--- /dev/null
+++ b/data/shatter/Fonts/HUDfont.def
@@ -0,0 +1,5 @@
+FONT
+
+height: 11
+baseline: 9
+flags: 0
diff --git a/data/shatter/Fonts/Limerick12.def b/data/shatter/Fonts/Limerick12.def
new file mode 100644
index 0000000..0668cf4
--- /dev/null
+++ b/data/shatter/Fonts/Limerick12.def
@@ -0,0 +1,26 @@
+FONT
+
+height: 12
+baseline: 10
+spacewidth: 4
+flags: ALL_CAPS
+
+kern: { a: "R", b: "T", k: -1 }
+kern: { a: "R", b: "t", k: -1 }
+kern: { a: "r", b: "t", k: -1 }
+kern: { a: "r", b: "T", k: -1 }
+
+kern: { a: "P", b: "A", k: -1 }
+kern: { a: "P", b: "a", k: -1 }
+kern: { a: "p", b: "a", k: -1 }
+kern: { a: "p", b: "A", k: -1 }
+
+kern: { a: "L", b: "O", k: -2 }
+kern: { a: "L", b: "o", k: -2 }
+kern: { a: "l", b: "o", k: -2 }
+kern: { a: "l", b: "O", k: -2 }
+
+kern: { a: "L", b: "T", k: -2 }
+kern: { a: "L", b: "t", k: -2 }
+kern: { a: "l", b: "t", k: -2 }
+kern: { a: "l", b: "T", k: -2 }
diff --git a/data/shatter/Fonts/Limerick18.def b/data/shatter/Fonts/Limerick18.def
new file mode 100644
index 0000000..cf1a987
--- /dev/null
+++ b/data/shatter/Fonts/Limerick18.def
@@ -0,0 +1,42 @@
+FONT
+
+height: 16
+baseline: 14
+flags: ALL_CAPS
+spacewidth: 6
+expansion: 3
+
+kern: { a: "H", b: "E", k: 0 }
+kern: { a: "H", b: "e", k: 0 }
+kern: { a: "h", b: "e", k: 0 }
+kern: { a: "h", b: "E", k: 0 }
+
+kern: { a: "R", b: "E", k: 0 }
+kern: { a: "R", b: "e", k: 0 }
+kern: { a: "r", b: "e", k: 0 }
+kern: { a: "r", b: "E", k: 0 }
+
+kern: { a: "R", b: "T", k: -1 }
+kern: { a: "R", b: "t", k: -1 }
+kern: { a: "r", b: "t", k: -1 }
+kern: { a: "r", b: "T", k: -1 }
+
+kern: { a: "P", b: "A", k: -1 }
+kern: { a: "P", b: "a", k: -1 }
+kern: { a: "p", b: "a", k: -1 }
+kern: { a: "p", b: "A", k: -1 }
+
+kern: { a: "L", b: "O", k: -1 }
+kern: { a: "L", b: "o", k: -1 }
+kern: { a: "l", b: "o", k: -1 }
+kern: { a: "l", b: "O", k: -1 }
+
+kern: { a: "L", b: "T", k: -1 }
+kern: { a: "L", b: "t", k: -1 }
+kern: { a: "l", b: "t", k: -1 }
+kern: { a: "l", b: "T", k: -1 }
+
+kern: { a: "M", b: "I", k: 1 }
+kern: { a: "M", b: "i", k: 1 }
+kern: { a: "m", b: "i", k: 1 }
+kern: { a: "m", b: "I", k: 1 }
diff --git a/data/shatter/Fonts/OCRB.def b/data/shatter/Fonts/OCRB.def
new file mode 100644
index 0000000..d71f572
--- /dev/null
+++ b/data/shatter/Fonts/OCRB.def
@@ -0,0 +1,7 @@
+FONT
+
+height: 14
+baseline: 11
+flags: FIXED
+
+ \ No newline at end of file
diff --git a/data/shatter/Fonts/Terminal.def b/data/shatter/Fonts/Terminal.def
new file mode 100644
index 0000000..9af9fb0
--- /dev/null
+++ b/data/shatter/Fonts/Terminal.def
@@ -0,0 +1,5 @@
+FONT
+
+height: 12
+baseline: 9
+flags: FIXED_ALL_CAPS
diff --git a/data/shatter/Fonts/Verdana.def b/data/shatter/Fonts/Verdana.def
new file mode 100644
index 0000000..9ce494b
--- /dev/null
+++ b/data/shatter/Fonts/Verdana.def
@@ -0,0 +1,5 @@
+FONT
+
+height: 11
+baseline: 9
+flags: 0
diff --git a/data/shatter/Galaxy/Athenar/Athenar.def b/data/shatter/Galaxy/Athenar/Athenar.def
new file mode 100644
index 0000000..e10ffd8
--- /dev/null
+++ b/data/shatter/Galaxy/Athenar/Athenar.def
@@ -0,0 +1,83 @@
+STARSYSTEM
+
+name: Athenar
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Athenar.mag",
+ poly_stars: "stars.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (16, 17, 26)
+
+star: {
+ name: Talvesta
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - standard yellow
+ back: ( 50, 50, 90) // - nebula6
+}
+
+planet: {
+ name: Athenar,
+ map: "Athenar/athenar_map.pcx"
+ image: "Athenar/athenar_lo.pcx",
+ high_res:"Athenar/athenar_hi.jpg",
+ gloss: "Athenar/athenar_gloss.jpg",
+ radius: 5.72e6,
+ mass: 3.53e24,
+ atmosphere: (150,160,210),
+ orbit: 1.95e11,
+}
+
+region: {
+ name: Athenar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.4
+}
+
+moon: {
+ name: Nike
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 0.72e6,
+ mass: 4.1e22,
+ orbit: 81e6
+}
+
+
+
+
+planet: {
+ name: Pallas
+ map: "Silessia/nero_map.pcx"
+ image: "Silessia/nero_lo.pcx",
+ high_res:"Silessia/nero_hi.jpg",
+ radius: 3.35e6,
+ mass: 2.52e24,
+ atmosphere: (80,120,150),
+ orbit: 4.25e11,
+}
+
+region: {
+ name: Pallas,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 19e6,
+ inclination: 0.2,
+ link: Navara, // Janus
+ link: Dawn, // Jarnell
+}
diff --git a/data/shatter/Galaxy/Black/Black.def b/data/shatter/Galaxy/Black/Black.def
new file mode 100644
index 0000000..5934ce3
--- /dev/null
+++ b/data/shatter/Galaxy/Black/Black.def
@@ -0,0 +1,50 @@
+STARSYSTEM
+
+name: Black
+
+/*************************************
+
+sky: {
+ nebula: "Nebula1.mag",
+ poly_stars: "stars.mag",
+ haze: "Janus/TerrainHaze.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+
+ambient: (32, 32, 32)
+
+star: {
+ name: BlackStar,
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - standard yellow
+ back: ( 70, 80, 130) // - nebula1
+ }
+
+planet: {
+ name: Blackout,
+ image_west: "Moons/rock_w.pcx",
+ image_east: "Moons/rock_e.pcx",
+ radius: 3e3,
+ mass: 5.6e26,
+ orbit: 1.8e11,
+ tscale: 2,
+ rotation: 16.3
+ }
+
+region: {
+ name: Medium,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.55e8,
+ inclination: 0.4
+ }
+
diff --git a/data/shatter/Galaxy/Borova/Borova.def b/data/shatter/Galaxy/Borova/Borova.def
new file mode 100644
index 0000000..d66e30d
--- /dev/null
+++ b/data/shatter/Galaxy/Borova/Borova.def
@@ -0,0 +1,271 @@
+STARSYSTEM
+
+name: Borova
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Borova.mag",
+ poly_stars: "stars.mag"
+ haze: "Janus/Janek/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 200
+
+/*************************************/
+
+ambient: (10, 10, 15)
+
+star: {
+ name: Talantar
+ map: "Suns/StarF_map.pcx"
+ image: "Suns/F8.pcx",
+ tscale: 6,
+ radius: 22e8,
+ mass: 3e30,
+ light: 1.9e11,
+ color: (240, 240, 255),// - blue-white
+ back: ( 25, 35, 65) // - nebula1
+}
+
+region: {
+ name: Tulkas,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 5.38e11,
+ inclination: 0.13,
+ asteroids: 70,
+ link: Navara, // Janus
+ link: Dawn, // Jarnell
+ link: Atlan, // Paragon
+ link: Nero, // Silessia
+}
+
+planet: {
+ name: Talistar
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 2.3e6,
+ mass: 1.39e24,
+ orbit: 4.67e10,
+ rotation: 95
+}
+
+region: {
+ name: Talistar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 10.0e6,
+ inclination: 0.6
+}
+
+planet: {
+ name: Maraner
+ map: "Borova/maraner_map.pcx"
+ image: "Borova/maraner_lo.pcx",
+ high_res: "Borova/maraner_hi.pcx",
+ radius: 3.5e6,
+ mass: 2.18e24,
+ orbit: 8.90e10,
+ rotation: 35
+}
+
+region: {
+ name: Maraner,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 11.0e6,
+ inclination: 0.7
+}
+
+planet: {
+ name: Borova
+ map: "Borova/borova_map.pcx"
+ image: "Borova/borova_lo.pcx",
+ high_res:"Borova/borova_hi.jpg",
+ gloss: "Borova/borova_gloss.jpg",
+ glow_high_res: "Borova/borova_lights.jpg",
+ radius: 5.9e6,
+ mass: 4.38e24,
+ atmosphere: (120,160,210),
+ orbit: 2.1e11,
+ rotation: 29
+}
+
+terrain: {
+ name: Vestapol,
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Borova/Vestapol/terrain.pcx",
+ patch_texture: "Borova/Vestapol/terrain_texture.pcx",
+ apron: "Borova/Vestapol/terrain_apron.pcx",
+ apron_texture: "Borova/Vestapol/terrain_apron_tex.pcx",
+ sky_color: "Borova/Vestapol/terrain_sky.pcx",
+
+ layer: { tile: "Borova/Vestapol/Layer0.pcx" height: 0 detail: "Borova/Vestapol/noise0.pcx" }
+ layer: { tile: "Borova/Vestapol/Layer1.pcx" height: 700 detail: "Borova/Vestapol/noise1.pcx" }
+ layer: { tile: "Borova/Vestapol/Layer2.pcx" height: 2000 detail: "Borova/Vestapol/noise1.pcx" }
+
+ clouds_high: "Janus/Janek/terrain_cloud0.pcx",
+ clouds_low: "Janus/Janek/terrain_cloud1.pcx",
+ shades_low: "Janus/Janek/terrain_cloud1a.pcx",
+ clouds_alt_high: 17.5e3,
+ clouds_alt_low: 11.2e3,
+
+ scale: 1.6e3,
+ mtnscale: 50,
+ haze_fade: 0.3
+ fog_density: 0.6
+ fog_scale: 5.6
+
+ weather_period: 655555
+
+ weather_high_clouds: 20,
+ weather_moderate_clouds: 40,
+ weather_overcast: 10,
+ weather_fog: 5,
+ weather_storm: 5,
+}
+
+
+region: {
+ name: Borova,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18.5e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: Bolus
+ map: "Renser/garana_map.pcx"
+ image: "Renser/garana_lo.pcx",
+ high_res:"Renser/garana_hi.pcx",
+ radius: 1.77e6,
+ mass: 12.2e22,
+ orbit: 51e6
+}
+
+moon: {
+ name: Kalan
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 0.77e6,
+ mass: 4.2e22,
+ orbit: 81e6
+}
+
+
+// GAS GIANTS:
+
+planet: {
+ name: Danova
+ map: "Giants/GasGiant2_map.pcx"
+ image: "Giants/GasGiant2.jpg",
+ radius: 17.1e6,
+ mass: 3.6e26,
+ tilt: 0.13,
+ orbit: 3.95e11,
+ rotation: 31.3
+}
+
+region: {
+ name: Danova,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 49.53e6,
+ inclination: 0.2
+}
+
+moon: {
+ name: "Dana I"
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 5.3e6,
+ rotation: 16.4,
+ mass: 5.98e24,
+ orbit: 4.11e8
+}
+
+moon: {
+ name: "Dana II"
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6.1e6,
+ rotation: 28.4,
+ mass: 5.98e24,
+ orbit: 6.24e8
+}
+
+planet: {
+ name: Zhalisal
+ map: "Giants/GasGiant3_map.pcx"
+ image: "Giants/GasGiant3.jpg",
+ radius: 20e6,
+ mass: 4.81e26,
+ orbit: 4.75e11,
+ tscale: 2,
+ tilt: 0.21,
+ rotation: 46.2,
+}
+
+region: {
+ name: Zhalisal,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.2e8,
+ inclination: 0.3,
+}
+
+moon: {
+ name: Vanna
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 5.65e8,
+ rotation: 100
+}
+
+moon: {
+ name: Mara
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 6.31e8
+}
+
+moon: {
+ name: Folla,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6e6,
+ rotation: 18.4,
+ mass: 5.98e24,
+ orbit: 9.14e8
+}
+
+moon: {
+ name: Amina,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 4e6,
+ rotation: 32.6,
+ mass: 3.28e24,
+ orbit: 11.14e8
+}
+
+
diff --git a/data/shatter/Galaxy/Galaxy.def b/data/shatter/Galaxy/Galaxy.def
new file mode 100644
index 0000000..c455de8
--- /dev/null
+++ b/data/shatter/Galaxy/Galaxy.def
@@ -0,0 +1,50 @@
+GALAXY
+
+// TERRELIAN ALLIANCE
+system: { loc: ( 6.2, 0.3, 1.0), class: G, iff: 1, name: Jarnell }
+system: { loc: ( 4.7, -1.9, 1.0), class: F, iff: 1, name: Borova }
+system: { loc: ( 4.1, 1.7, 1.0), class: G, iff: 1, name: Athenar }
+system: { loc: ( 6.8, -2.5, 1.0), class: G, iff: 1, name: Paragon }
+system: { loc: ( 7.8, 2.3, 1.0), class: K, iff: 1, name: Thralis }
+system: { loc: ( 2.8, -0.3, 0.0), class: G, iff: 1, name: Janus }
+
+// INDEPENDENT SYSTEMS
+system: { loc: ( 1.0, -1.8, 0.0), class: G, iff: 0, name: Solus }
+system: { loc: ( 1.8, -3.1, 1.0), class: K, iff: 0, name: Silessia }
+system: { loc: ( 0.0, 1.0, 1.0), class: K, iff: 0, name: Haiche }
+
+// MARAKAN HEGEMONY
+system: { loc: (-0.8, -1.5, 1.0), class: G, iff: 2, name: Renser }
+system: { loc: (-1.2, -3.4, 1.0), class: G, iff: 2, name: Loris }
+system: { loc: (-1.4, 2.8, 1.0), class: M, iff: 2, name: Ostara }
+system: { loc: (-2.7, 1.1, 1.0), class: G, iff: 2, name: Kolchev }
+system: { loc: (-2.5, -1.0, 1.0), class: G, iff: 2, name: Korius }
+system: { loc: (-2.9, 2.6, 1.0), class: K, iff: 2, name: Tarsus }
+system: { loc: (-4.0, -3.1, 1.0), class: A, iff: 2, name: Nephrys }
+
+system: { loc: (-4.6, 2.1, 1.0), class: G, iff: 2, name: Radix }
+system: { loc: (-5.1, 0.5, 1.0), class: K, iff: 2, name: Isham }
+system: { loc: (-6.5, 2.5, 1.0), class: G, iff: 2, name: Garrison }
+system: { loc: (-7.2, -1.2, 1.0), class: K, iff: 2, name: Trocanther }
+system: { loc: (-8.0, -2.6, 1.0), class: F, iff: 2, name: Marak }
+
+// for screenshots only!
+system: { loc: ( 102, 101, 0.0), class: O, iff: 100, name: Black }
+system: { loc: ( 106, 107, 0.0), class: O, iff: 100, name: Museum }
+
+star: { loc: ( 6.0, 6.0, 1.0), class: M, name: "GSC-3082" }
+star: { loc: (-3.5, 5.0, 1.0), class: M, name: "GSC-0541" }
+star: { loc: (-7.1, -7.5, 1.5), class: O, name: "GSC-2054" }
+star: { loc: ( 4.2, 5.6, 2.1), class: M, name: "GSC-1027" }
+star: { loc: (-5.1, 4.6, -1.8), class: M, name: "GSC-1311" }
+star: { loc: ( 5.4, -4.6, -0.8), class: K, name: "GSC-1245" }
+
+star: { loc: ( 4.3, 6.2, 3.0), class: M, name: "GSC-1952" }
+star: { loc: (-7.7, 4.3, 3.0), class: M, name: "GSC-0163" }
+star: { loc: (-2.1, -6.5, 2.5), class: M, name: "GSC-2690" }
+star: { loc: ( 1.9, 4.6, 1.1), class: A, name: "GSC-0536" }
+star: { loc: (-3.5, -7.6, -3.8), class: K, name: "GSC-1208" }
+star: { loc: (-4.4, -5.2, -3.8), class: K, name: "GSC-0719" }
+
+
+
diff --git a/data/shatter/Galaxy/Garrison/Garrison.def b/data/shatter/Galaxy/Garrison/Garrison.def
new file mode 100644
index 0000000..35002d5
--- /dev/null
+++ b/data/shatter/Galaxy/Garrison/Garrison.def
@@ -0,0 +1,124 @@
+STARSYSTEM
+
+name: Garrison
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Garrison.mag",
+ poly_stars: "stars.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+
+ambient: (30, 15, 8)
+
+star: {
+ name: Khaniset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 2.6e11,
+ color: (255, 250, 238),// - standard yellow
+ back: ( 60, 30, 10),// - nebula8
+}
+
+planet: {
+ name: Rhofar
+ map: "Tarsus/oman_map.pcx"
+ image: "Tarsus/oman_lo.pcx",
+ high_res:"Tarsus/oman_hi.jpg",
+ radius: 3.1e6,
+ tilt: 0.03,
+ mass: 3.1e24,
+ orbit: 0.94e11,
+ rotation: 32.7
+}
+
+region: {
+ name: Rhofar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 16e6,
+ inclination: 0.4,
+}
+
+
+planet: {
+ name: Garrison
+ map: "Garrison/garrison_map.pcx"
+ image: "Garrison/garrison_lo.pcx",
+ high_res:"Garrison/garrison_hi.jpg",
+ glow_high_res: "Garrison/garrison_fire.jpg",
+ gloss: "Garrison/garrison_gloss.jpg",
+ radius: 6e6,
+ tilt: 0.15,
+ ring: "Garrison/ring.pcx",
+ minrad: 1.5,
+ maxrad: 1.75,
+ mass: 5.1e24,
+ orbit: 1.4e11,
+ rotation: 21.7
+}
+
+region: {
+ name: Garrison,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 20e6,
+ inclination: 0.4,
+}
+
+
+planet: {
+ name: Korul
+ map: "Giants/GasGiant10_map.pcx"
+ image: "Giants/GasGiant10.jpg",
+ radius: 23e6,
+ tilt: 0.19,
+ ring: "Giants/Ring2.pcx",
+ minrad: 1.6,
+ maxrad: 1.666,
+ mass: 5.1e24,
+ orbit: 2.4e11,
+ rotation: 21.7
+}
+
+region: {
+ name: Korul,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1e8,
+ inclination: 0.3,
+}
+
+
+
+planet: {
+ name: Nerasil
+ map: "Haiche/kala_map.pcx"
+ image: "Haiche/kala_lo.pcx",
+ high_res:"Haiche/kala_hi.pcx",
+ radius: 4e6,
+ tilt: 0.15,
+ mass: 3.7e24,
+ orbit: 4.2e11,
+ rotation: 17.2
+}
+
+region: {
+ name: Nerasil,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.2,
+ link: Relay, // Isham
+ link: Cavenda, // Radix
+}
+
diff --git a/data/shatter/Galaxy/Haiche/Haiche.def b/data/shatter/Galaxy/Haiche/Haiche.def
new file mode 100644
index 0000000..d23d1fd
--- /dev/null
+++ b/data/shatter/Galaxy/Haiche/Haiche.def
@@ -0,0 +1,198 @@
+STARSYSTEM
+
+name: Haiche
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Haiche.mag",
+ poly_stars: "stars.mag",
+ haze: "Haiche/Tantalus/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (16, 16, 16)
+
+star: {
+ name: Heron
+ map: "Suns/StarK_map.pcx"
+ image: "Suns/K1.pcx",
+ tscale: 6,
+ radius: 12e8,
+ mass: 1.5e30,
+ light: 7.8e10,
+ color: (255, 232, 224),
+ back: ( 44, 66, 88),
+}
+
+planet: {
+ name: Haiche
+ map: "Haiche/haiche_map.pcx"
+ image: "Haiche/haiche_lo.pcx",
+ high_res:"Haiche/haiche_hi.jpg",
+ radius: 4.8e6,
+ mass: 5.75e24,
+ atmosphere: (200,180,160),
+ orbit: 0.94e11,
+ rotation: 17.3
+}
+
+terrain: {
+ name: "Tantalus",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Haiche/Tantalus/terrain.pcx",
+ patch_texture: "Haiche/Tantalus/terrain_big.pcx",
+ apron: "Haiche/Tantalus/terrain_apron.pcx",
+ apron_texture: "Haiche/Tantalus/terrain_apron_tex.pcx",
+ sky_color: "Haiche/Tantalus/terrain_sky.pcx",
+
+ layer: { tile: "Haiche/Tantalus/Layer0.pcx" height: 0 detail: "Haiche/Tantalus/noise0.pcx" }
+ layer: { tile: "Haiche/Tantalus/Layer1.pcx" height: 3300 detail: "Haiche/Tantalus/noise1.pcx" }
+ layer: { tile: "Haiche/Tantalus/Layer2.pcx" height: 9500 detail: "Haiche/Tantalus/noise1.pcx" }
+
+ clouds_high: "Haiche/Tantalus/terrain_cloud0.pcx",
+ clouds_low: "Haiche/Tantalus/terrain_cloud1.pcx",
+ shades_low: "Haiche/Tantalus/terrain_cloud1a.pcx",
+ clouds_alt_high: 16.9e3,
+ clouds_alt_low: 12.1e3,
+
+ scale: 1.5e3,
+ mtnscale: 50,
+ haze_fade: 0.5,
+ fog_density: 0.5,
+ fog_scale: 5,
+
+ weather_period: 59876,
+
+ weather_high_clouds: 25,
+ weather_moderate_clouds: 40,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 5,
+}
+
+region: {
+ name: Haiche,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 19e6,
+ inclination: 0.45
+}
+
+moon: {
+ name: Eiller
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 85e6
+}
+
+// GAS GIANTS:
+
+planet: {
+ name: Cygnus
+ map: "Giants/GasGiant5_map.pcx"
+ image: "Giants/GasGiant5.jpg",
+ radius: 27.1e6,
+ mass: 2.6e26,
+ tscale: 2,
+ tilt: 0.13,
+ orbit: 2.35e11,
+ rotation: 31.3
+}
+
+region: {
+ name: Cygnus,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 100e6,
+ inclination: 0.2
+}
+
+moon: {
+ name: Corvus
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 1.3e6,
+ rotation: 16.4,
+ mass: 5.98e24,
+ orbit: 4.81e8
+}
+
+moon: {
+ name: Aquilae,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 2.1e6,
+ rotation: 28.4,
+ mass: 5.98e24,
+ orbit: 6.14e8
+}
+
+
+
+planet: {
+ name: "Tal Amin"
+ map: "Giants/GasGiant11_map.pcx"
+ image: "Giants/GasGiant11.jpg",
+ radius: 38.2e6,
+ mass: 4.0e26,
+ tscale: 2,
+ tilt: 0.13,
+ orbit: 3.41e11,
+ rotation: 31.3
+}
+
+region: {
+ name: "Tal Amin",
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 150e6,
+ inclination: 0.2
+}
+
+moon: {
+ name: Benares,
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 2.3e6,
+ rotation: 26.4,
+ mass: 5.98e24,
+ orbit: 4.21e8
+}
+
+moon: {
+ name: Kala
+ map: "Haiche/kala_map.pcx"
+ image: "Haiche/kala_lo.pcx",
+ high_res:"Haiche/kala_hi.pcx",
+ radius: 2.9e6,
+ rotation: 18.4,
+ mass: 5.98e24,
+ orbit: 5.74e8
+}
+
+region: {
+ name: Kala,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 11e6,
+ inclination: 0.2,
+ link: Navara, // Janus
+ link: Lornas, // Renser
+ link: Aram, // Ostara
+ link: Volova, // Kolchev
+}
+
+
diff --git a/data/shatter/Galaxy/Isham/Isham.def b/data/shatter/Galaxy/Isham/Isham.def
new file mode 100644
index 0000000..9f66c69
--- /dev/null
+++ b/data/shatter/Galaxy/Isham/Isham.def
@@ -0,0 +1,223 @@
+STARSYSTEM
+
+name: Isham
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Isham.mag",
+ poly_stars: "stars.mag",
+ haze: "Isham/Garden/TerrainHaze.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (10, 8, 8)
+
+star: {
+ name: Isham,
+ map: "Suns/StarK_map.pcx"
+ image: "Suns/K1.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - K
+ back: ( 30, 18, 12) // - nebula25
+}
+
+planet: {
+ name: Garden
+ map: "Isham/garden_map.pcx"
+ image: "Isham/garden_lo.pcx",
+ high_res:"Isham/garden_hi.jpg",
+ gloss: "Isham/garden_gloss.jpg",
+ radius: 3.75e6,
+ mass: 5.6e23,
+ atmosphere: (145,170,190),
+ orbit: 1.8e11,
+ rotation: 26.3
+}
+
+terrain: {
+ name: "Tiger Bay",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Isham/Garden/terrain.pcx"
+ patch_texture: "Isham/Garden/terrain_big.pcx"
+ apron: "Isham/Garden/terrain_apron.pcx"
+ apron_texture: "Isham/Garden/terrain_apron_tex.pcx"
+ sky_color: "Isham/Garden/terrain_sky.pcx"
+
+ water_texture: "Isham/Garden/Water.pcx"
+
+ layer: { tile: "Isham/Garden/Sand.pcx" height: 0 detail: "Haiche/Tantalus/noise0.pcx" }
+ layer: { tile: "Isham/Garden/Forest.pcx" height: 3000 detail: "Isham/Garden/noise1.pcx" }
+ layer: { tile: "Isham/Garden/Rock.pcx" height: 9500 detail: "Isham/Garden/noise1.pcx" }
+
+ clouds_high: "Isham/Garden/terrain_cloud0.pcx",
+ clouds_low: "Isham/Garden/terrain_cloud1.pcx",
+ shades_low: "Isham/Garden/terrain_cloud1a.pcx",
+ clouds_alt_high: 17.5e3,
+ clouds_alt_low: 12.1e3,
+
+ scale: 1.5e3,
+ mtnscale: 65,
+ haze_fade: 0.4,
+ fog_density: 0.4,
+ fog_scale: 5,
+
+ weather_period: 659876,
+
+ weather_high_clouds: 25,
+ weather_moderate_clouds: 40,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 0,
+}
+
+region: {
+ name: Garden,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 17e6,
+ inclination: 0.4
+}
+
+
+// GAS GIANTS:
+
+planet: {
+ name: Senesca,
+ map: "Giants/GasGiant10_map.pcx"
+ image: "Giants/GasGiant10.jpg",
+ radius: 14.1e6,
+ mass: 3.6e26,
+ tilt: 0.2,
+ ring: "Giants/Ring2.pcx",
+ minrad: 1.5,
+ maxrad: 1.8,
+ orbit: 2.65e11,
+ rotation: 61.3
+}
+
+region: {
+ name: Senesca,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 55.53e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: Tarawa
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 2.3e6,
+ rotation: 16.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 4.11e8
+}
+
+moon: {
+ name: Maia,
+ map: "Jarnell/lanos_map.pcx",
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 4.2e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 6.24e8
+}
+
+
+planet: {
+ name: Ramek,
+ map: "Giants/GasGiant9_map.pcx",
+ image: "Giants/GasGiant9.jpg",
+ radius: 18.1e6,
+ mass: 3.6e26,
+ tscale: 2,
+ tilt: 0.13,
+ orbit: 3.35e11,
+ rotation: 31.3
+}
+
+region: {
+ name: Ramek,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 65.3e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: Alin
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 5.3e6,
+ rotation: 16.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 4.11e8
+}
+
+moon: {
+ name: Orpheus
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 3.1e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 6.24e8
+}
+
+moon: {
+ name: Tenebrus,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6.1e6,
+ rotation: 38.4,
+ mass: 5.98e24,
+ orbit: 13.24e8
+}
+
+
+
+planet: {
+ name: Relay,
+ map: "Isham/relay_map.pcx",
+ image: "Isham/relay_lo.pcx",
+ high_res:"Isham/relay_hi.jpg",
+ gloss: "Isham/relay_gloss.jpg",
+ radius: 3.15e6,
+ mass: 4.6e23,
+ atmosphere: (130,120,110),
+ orbit: 4.18e11,
+ rotation: 14.3
+}
+
+region: {
+ name: Relay,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 14e6,
+ inclination: 0.3,
+ link: Solnas, // Korius
+ link: Volova, // Kolchev
+ link: Cavenda, // Radix
+ link: Nerasil, // Garrison
+ link: Path, // Trocanther
+}
+
diff --git a/data/shatter/Galaxy/Janus/Janus.def b/data/shatter/Galaxy/Janus/Janus.def
new file mode 100644
index 0000000..db704fb
--- /dev/null
+++ b/data/shatter/Galaxy/Janus/Janus.def
@@ -0,0 +1,218 @@
+STARSYSTEM
+
+name: Janus
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Janus.mag",
+ poly_stars: "stars.mag",
+ haze: "Janus/Janek/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (16, 16, 21)
+
+star: {
+ name: Janus,
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - standard yellow
+ back: ( 70, 75, 120),// - nebula12
+}
+
+planet: {
+ name: Ilon,
+ map: "Janus/ilon_map.pcx",
+ image: "Janus/ilon_lo.pcx",
+ high_res: "Janus/ilon_hi.pcx",
+ radius: 3.5e6,
+ mass: 2.18e24,
+ orbit: 5.80e10,
+ rotation: 11
+}
+
+region: {
+ name: Ilon,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 9.3e6,
+ inclination: 0.75
+}
+
+planet: {
+ name: Dante,
+ map: "Janus/dante_map.pcx",
+ image: "Janus/dante_lo.pcx",
+ high_res: "Janus/dante_hi.jpg",
+ radius: 5.2e6,
+ atmosphere: (192,160,128),
+ mass: 4.18e24,
+ orbit: 7.20e10,
+ rotation: 8
+}
+
+region: {
+ name: Dante,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.66
+}
+
+moon: {
+ name: Hermes,
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 5e5,
+ mass: 2e21,
+ orbit: 24.3e6,
+ retro: true
+}
+
+planet: {
+ name: Janek,
+ map: "Janus/janek_map.pcx",
+ image: "Janus/janek_lo.pcx",
+ high_res: "Janus/janek_hi.jpg",
+ gloss: "Janus/janek_gloss.jpg",
+ radius: 5.4e6,
+ mass: 4.18e24,
+ atmosphere: (100,150,220),
+ orbit: 1.4e11,
+ rotation: 20
+}
+
+terrain: {
+ name: "Janek Station",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Janus/Janek/terrain.pcx",
+ patch_texture: "Janus/Janek/terrain_big.pcx",
+ apron: "Janus/Janek/terrain_apron.pcx",
+ apron_texture: "Janus/Janek/terrain_apron_tex.pcx",
+ sky_color: "Janus/Janek/terrain_sky.pcx",
+
+ layer: { tile: "Janus/Janek/Layer0.pcx" height: 0 detail: "Janus/Janek/noise0.pcx" }
+ layer: { tile: "Janus/Janek/Layer1.pcx" height: 2800 detail: "Janus/Janek/noise1.pcx" }
+ layer: { tile: "Janus/Janek/Layer2.pcx" height: 9800 detail: "Janus/Janek/noise1.pcx" }
+
+ clouds_high: "Janus/Janek/terrain_cloud0.pcx",
+ clouds_low: "Janus/Janek/terrain_cloud1.pcx",
+ shades_low: "Janus/Janek/terrain_cloud1a.pcx",
+ clouds_alt_high: 16.5e3,
+ clouds_alt_low: 10.2e3,
+
+ scale: 1.5e3,
+ mtnscale: 60,
+ haze_fade: 0.4,
+ fog_density: 0.4,
+ fog_scale: 5,
+
+ weather_period: 659876,
+
+ weather_high_clouds: 25,
+ weather_moderate_clouds: 40,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 0,
+}
+
+region: {
+ name: Janek,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 17e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Lanos,
+ map: "Moons/lunar_map.pcx",
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 42e6
+}
+
+planet: {
+ name: Alystra
+ map: "Giants/GasGiant12_map.pcx"
+ image: "Giants/GasGiant12.jpg"
+ radius: 36e6,
+ mass: 5.6e26,
+ orbit: 2.84e11,
+ tscale: 2,
+ tilt: 0.2,
+ ring: "Giants/Ring.pcx",
+ minrad: 1.3,
+ maxrad: 2.1,
+ rotation: 16.3
+}
+
+region: {
+ name: Alystra,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.55e8,
+ inclination: 0.4
+}
+
+moon: {
+ name: Fenris,
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 2.45e8,
+ rotation: 100
+}
+
+moon: {
+ name: Navara,
+ map: "Moons/lunar_map.pcx",
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 4.1e8
+}
+
+region: {
+ name: Navara,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 20e6,
+ inclination: 0.4,
+ link: Trellis, // Solus
+ link: Pallas, // Athenar
+ link: Tulkas, // Borova
+ link: Kala, // Haiche
+ link: Nero, // Silessia
+}
+
+moon: {
+ name: Cassandra,
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 6e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 0.85e9
+}
diff --git a/data/shatter/Galaxy/Jarnell/Jarnell.def b/data/shatter/Galaxy/Jarnell/Jarnell.def
new file mode 100644
index 0000000..04bc68a
--- /dev/null
+++ b/data/shatter/Galaxy/Jarnell/Jarnell.def
@@ -0,0 +1,227 @@
+STARSYSTEM
+
+name: Jarnell
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Jarnell.mag",
+ poly_stars: "stars.mag",
+
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (10, 15, 13)
+
+star: {
+ name: Valtala
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.4e11,
+ color: (255, 250, 230),// - standard yellow
+ back: ( 11, 18, 15),// - nebula10
+}
+
+
+planet: {
+ name: Adonis,
+ map: "Giants/GasGiant7_map.pcx",
+ image: "Giants/GasGiant7.jpg",
+ radius: 18e6,
+ mass: 2.1e26,
+ orbit: 0.8e11,
+ tscale: 2,
+ tilt: 0.2,
+ ring: "Giants/Ring3.pcx",
+ minrad: 1.5,
+ maxrad: 1.9,
+ rotation: 19.5
+}
+
+region: {
+ name: Adonis,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.15e8,
+ inclination: 0.45
+}
+
+moon: {
+ name: Synad,
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 2.2e6,
+ mass: 1.9e22,
+ orbit: 1.44e8,
+ rotation: 30
+}
+
+moon: {
+ name: Olan,
+ map: "Moons/lunar_map.pcx",
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 3.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.7e24,
+ orbit: 2.251e8
+}
+
+moon: {
+ name: Amnia,
+ map: "Moons/lunar_map.pcx",
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 1.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.0e24,
+ orbit: 3.771e8
+}
+
+
+planet: {
+ name: Jarnell,
+ map: "Jarnell/jarnell_map.pcx",
+ image: "Jarnell/jarnell_lo.pcx",
+ high_res: "Jarnell/jarnell_hi.jpg",
+ gloss: "Jarnell/jarnell_gloss.jpg",
+ glow_high_res: "Jarnell/jarnell_lights.jpg"
+ radius: 5.8e6,
+ mass: 4.98e24,
+ atmosphere: (100,180,220),
+ orbit: 1.4e11,
+ rotation: 27
+}
+
+region: {
+ name: Jarnell,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 19e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Lanora,
+ map: "Jarnell/lanos_map.pcx",
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 42e6
+}
+
+
+planet: {
+ name: Caladan,
+ map: "Jarnell/caladan_map.pcx",
+ image: "Jarnell/caladan_lo.pcx",
+ high_res: "Jarnell/caladan_hi.pcx",
+ radius: 3.8e6,
+ mass: 2.98e24,
+ atmosphere: (50,80,70),
+ orbit: 2.01e11,
+ rotation: 32
+}
+
+region: {
+ name: Caladan,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 12e6,
+ inclination: 0.35
+}
+
+moon: {
+ name: Malta,
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 0.72e6,
+ mass: 6e22,
+ orbit: 32e6
+}
+
+
+planet: {
+ name: Dawn,
+ map: "Giants/GasGiant6_map.pcx"
+ image: "Giants/GasGiant6.jpg",
+ radius: 28e6,
+ mass: 5.1e26,
+ orbit: 4.3e11,
+ tscale: 2,
+ tilt: 0.12,
+ rotation: 27.3,
+}
+
+region: {
+ name: Dawn,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.0e8,
+ inclination: 0.25,
+ link: Pallas, // Athenar
+ link: Tulkas, // Borova
+ link: Sparta, // Thralis
+ link: Atlan, // Paragon
+}
+
+moon: {
+ name: Kash,
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 2.14e8,
+ rotation: 100
+}
+
+moon: {
+ name: Kara
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 4.551e8
+}
+
+moon: {
+ name: Soma,
+ map: "Moons/ice_map.pcx",
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6e6,
+ rotation: 27.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 7.11e8
+}
+
+moon: {
+ name: Tarina,
+ map: "Moons/ice_map.pcx",
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 4e6,
+ rotation: 172.1,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 9.34e8
+}
+
+
diff --git a/data/shatter/Galaxy/Kolchev/Kolchev.def b/data/shatter/Galaxy/Kolchev/Kolchev.def
new file mode 100644
index 0000000..432cf9c
--- /dev/null
+++ b/data/shatter/Galaxy/Kolchev/Kolchev.def
@@ -0,0 +1,217 @@
+STARSYSTEM
+
+name: Kolchev
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Kolchev.mag",
+ poly_stars: "stars.mag",
+ haze: "Kolchev/Lovo/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (13, 10, 8)
+
+star: {
+ name: Kurset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 252, 250),// - G White
+ back: ( 50, 45, 35) // - nebula3
+}
+
+planet: {
+ name: Ilya
+ map: "Kolchev/ilya_map.pcx"
+ image: "Kolchev/ilya_lo.pcx",
+ high_res:"Kolchev/ilya_hi.pcx",
+ radius: 3.6e6,
+ mass: 4.1e26,
+ orbit: 1.03e11,
+ rotation: 19.3
+}
+
+region: {
+ name: Ilya,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.5
+}
+
+
+planet: {
+ name: Kolchev
+ map: "Kolchev/kolchev_map.pcx"
+ image: "Kolchev/kolchev_lo.pcx"
+ high_res:"Kolchev/kolchev_hi.jpg"
+ gloss: "Kolchev/kolchev_gloss.jpg"
+ glow_high_res: "Kolchev/kolchev_lights.jpg"
+ atmosphere: (130,130,150)
+ radius: 4.8e6,
+ mass: 3.9e24,
+ orbit: 1.95e11,
+ rotation: 23.3
+}
+
+terrain: {
+ name: Lovo,
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Kolchev/Lovo/terrain.pcx",
+ patch_texture: "Kolchev/Lovo/terrain_big.pcx",
+ apron: "Kolchev/Lovo/terrain_apron.pcx",
+ apron_texture: "Kolchev/Lovo/terrain_apron_tex.pcx",
+ sky_color: "Kolchev/Lovo/terrain_sky.pcx",
+
+ layer: { tile: "Kolchev/Lovo/Layer0.pcx" height: 0 detail: "Kolchev/Lovo/noise0.pcx" }
+ layer: { tile: "Kolchev/Lovo/Layer1.pcx" height: 4500 detail: "Kolchev/Lovo/noise0.pcx" }
+ layer: { tile: "Kolchev/Lovo/Layer2.pcx" height: 11500 detail: "Kolchev/Lovo/noise0.pcx" }
+
+ clouds_high: "Kolchev/Lovo/terrain_cloud0.pcx",
+ clouds_low: "Kolchev/Lovo/terrain_cloud1.pcx",
+ shades_low: "Kolchev/Lovo/terrain_cloud1a.pcx",
+ clouds_alt_high: 18.3e3,
+ clouds_alt_low: 15.1e3,
+
+ scale: 1.75e3,
+ mtnscale: 75,
+ haze_fade: 0.35,
+ fog_density: 0.45,
+ fog_scale: 4.5,
+
+ weather_period: 49876,
+
+ weather_high_clouds: 100,
+ weather_moderate_clouds: 0,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 0,
+}
+
+region: {
+ name: Kolchev,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 21e6,
+ inclination: 0.4
+}
+
+moon: {
+ name: "Odin"
+ map: "Borova/maraner_map.pcx"
+ image: "Borova/maraner_lo.pcx",
+ high_res:"Borova/maraner_hi.pcx",
+ radius: 1.4e6,
+ mass: 4.3e23,
+ orbit: 40e6,
+ rotation: 9.2
+}
+
+moon: {
+ name: "Dva"
+ map: "Moons/Moon2_map.pcx"
+ high_res:"Moons/Moon2.jpg",
+ radius: 0.85e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 0.6e24,
+ orbit: 71e6
+}
+
+
+
+planet: {
+ name: Anatoly
+ map: "Giants/GasGiant6_map.pcx"
+ image: "Giants/GasGiant6.jpg",
+ radius: 29.1e6,
+ mass: 3.6e26,
+ tscale: 2,
+ tilt: 0.13,
+ orbit: 2.95e11,
+ rotation: 29.3
+}
+
+region: {
+ name: Anatoly,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 79.53e6,
+ inclination: 0.2
+}
+
+planet: {
+ name: Volova,
+ map: "Giants/GasGiant9_map.pcx"
+ image: "Giants/GasGiant9.jpg",
+ radius: 20e6,
+ mass: 5.42e26,
+ orbit: 3.75e11,
+ tilt: 0.25,
+ ring: "Giants/Ring2.pcx",
+ minrad: 1.2,
+ maxrad: 1.9,
+ rotation: 19.5,
+}
+
+region: {
+ name: Volova,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.2e8,
+ inclination: 0.3,
+ link: Kala, // Haiche
+ link: Aram, // Ostara
+ link: Solnas, // Kolchev
+ link: Relay, // Isham
+ link: Theramin, // Tarsus
+ link: Cavenda, // Radix
+}
+
+moon: {
+ name: Anya
+ map: "Silessia/nero_map.pcx"
+ image: "Silessia/nero_lo.pcx",
+ high_res:"Silessia/nero_hi.jpg",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 2.65e8,
+ rotation: 100
+}
+
+moon: {
+ name: Vlad
+ map: "Moons/Moon1_map.pcx"
+ image: "Moons/Moon1_lo.pcx",
+ high_res:"Moons/Moon1.jpg",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 4.31e8
+}
+
+moon: {
+ name: Dmitri,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 8.14e8
+}
+
+
diff --git a/data/shatter/Galaxy/Korius/Korius.def b/data/shatter/Galaxy/Korius/Korius.def
new file mode 100644
index 0000000..179f138
--- /dev/null
+++ b/data/shatter/Galaxy/Korius/Korius.def
@@ -0,0 +1,177 @@
+STARSYSTEM
+
+name: Korius
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Korius.mag",
+ poly_stars: "stars.mag",
+ haze: "Korius/Tanis/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (24, 20, 16)
+
+star: {
+ name: Koriset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx"
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 240),// - G Yellow
+ back: (128, 90, 57), // Nebula 5 orange
+}
+
+region: {
+ name: Solnas,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 4.18e11,
+ inclination: 0.23,
+ asteroids: 60,
+ link: Nergal, // Nephrys
+ link: Lornas, // Renser
+ link: Casalle, // Loris
+ link: Volova, // Kolchev
+ link: Relay, // Isham
+}
+
+planet: {
+ name: Moneta
+ map: "Paragon/bryn_map.pcx"
+ image: "Paragon/bryn_hi.jpg",
+ radius: 3.6e6,
+ mass: 3.96e26,
+ orbit: 0.97e11,
+ rotation: 15.13
+}
+
+region: {
+ name: Moneta,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 12e6,
+ inclination: 0.6
+}
+
+moon: {
+ name: Covana
+ map: "Thralis/benares_map.pcx"
+ image: "Thralis/benares_lo.pcx",
+ high_res:"Thralis/benares_hi.pcx",
+ radius: 1.1e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.6e24,
+ orbit: 34.3e6,
+}
+
+
+planet: {
+ name: Rhomin
+ map: "Giants/GasGiant11_map.pcx"
+ image: "Giants/GasGiant11.jpg",
+ radius: 38.2e6,
+ mass: 4.0e26,
+ tilt: 0.1,
+ tscale: 2,
+ orbit: 1.61e11,
+ rotation: 31.3
+}
+
+moon: {
+ name: Korius
+ map: "Korius/korius_map.pcx"
+ image: "Korius/korius_lo.pcx",
+ high_res:"Korius/korius_hi.jpg",
+ gloss: "Korius/korius_gloss.jpg",
+ glow_high_res: "Korius/korius_lights.jpg",
+ radius: 4e6,
+ mass: 4.2e24,
+ atmosphere: (130,130,130),
+ orbit: 232e6,
+ rotation: 24.3
+}
+
+region: {
+ name: Korius,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.4
+}
+
+
+moon: {
+ name: Adantar
+ map: "Korius/adantar_map.pcx"
+ image: "Korius/adantar_lo.pcx",
+ high_res:"Korius/adantar_hi.jpg",
+ radius: 3.7e6,
+ mass: 3.4e24,
+ atmosphere: (120,100,90),
+ orbit: 356e6,
+ rotation: 17.8
+}
+
+terrain: {
+ name: "Tanis",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Korius/Tanis/terrain.pcx",
+ patch_texture: "Korius/Tanis/terrain_big.pcx",
+ apron: "Korius/Tanis/terrain_apron.pcx",
+ apron_texture: "Korius/Tanis/terrain_apron_tex.pcx",
+ sky_color: "Korius/Tanis/terrain_sky.pcx",
+
+ layer: { tile: "Korius/Tanis/Layer0.pcx" height: 0 detail: "Korius/Tanis/noise0.pcx" }
+ layer: { tile: "Korius/Tanis/Layer1.pcx" height: 3000 detail: "Radix/Canyon/noise1.pcx" }
+ layer: { tile: "Korius/Tanis/Layer2.pcx" height: 9000 detail: "Radix/Canyon/noise1.pcx" }
+
+ clouds_high: "Korius/Tanis/terrain_cloud0.pcx",
+ clouds_low: "Korius/Tanis/terrain_cloud1.pcx",
+ shades_low: "Korius/Tanis/terrain_cloud1a.pcx",
+ clouds_alt_high: 16.3e3,
+ clouds_alt_low: 13.1e3,
+
+ scale: 1.75e3,
+ mtnscale: 55,
+ haze_fade: 0.35,
+ fog_density: 0.65,
+ fog_scale: 5,
+
+ weather_period: 49876,
+
+ weather_high_clouds: 50,
+ weather_moderate_clouds: 35,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 2,
+}
+
+region: {
+ name: Adantar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.4
+}
+
+moon: {
+ name: Alita
+ map: "Haiche/kala_map.pcx"
+ image: "Haiche/kala_lo.pcx",
+ high_res:"Haiche/kala_hi.pcx",
+ radius: 2.11e6,
+ mass: 1.9e22,
+ orbit: 421e6,
+ rotation: 10
+}
diff --git a/data/shatter/Galaxy/Loris/Loris.def b/data/shatter/Galaxy/Loris/Loris.def
new file mode 100644
index 0000000..de28df3
--- /dev/null
+++ b/data/shatter/Galaxy/Loris/Loris.def
@@ -0,0 +1,173 @@
+STARSYSTEM
+
+name: Loris
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Loris.mag",
+ poly_stars: "stars.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (21, 18, 11)
+
+star: {
+ name: Lorset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 15e8,
+ mass: 1.8e30,
+ light: 1.1e11,
+ color: (255, 250, 240), // - G Yellow
+ back: (100, 60, 30), // - nebula16
+}
+
+planet: {
+ name: Duna,
+ map: "Loris/duna_map.pcx"
+ image: "Loris/duna.jpg",
+ radius: 25.1e6,
+ mass: 1.38e25,
+ tilt: 0.125,
+ tscale: 2,
+ orbit: 0.81e11,
+ rotation: 36.3
+}
+
+region: {
+ name: Duna,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 65e6,
+ inclination: 0.6
+}
+
+moon: {
+ name: Ansel
+ map: "Paragon/bryn_map.pcx"
+ image: "Paragon/bryn_hi.jpg",
+ radius: 2.4e6,
+ mass: 1.2e22,
+ orbit: 0.84e8,
+ rotation: 30
+}
+
+moon: {
+ name: Kaius
+ map: "Thralis/benares_map.pcx"
+ image: "Thralis/benares_lo.pcx",
+ high_res:"Thralis/benares_hi.pcx",
+ radius: 3.1e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.6e24,
+ orbit: 1.301e8
+}
+
+
+
+
+planet: {
+ name: Loris,
+ map: "Loris/loris_map.pcx",
+ image: "Loris/loris_lo.pcx",
+ high_res:"Loris/loris_hi.jpg",
+ gloss: "Loris/loris_gloss.jpg",
+ radius: 5.1e6,
+ mass: 3.88e24,
+ tilt: 0.125,
+ atmosphere: (200,180,160),
+ orbit: 1.54e11,
+ rotation: 26.3
+}
+
+region: {
+ name: Loris,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.4
+}
+
+moon: {
+ name: "Loris I",
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 0.4e6,
+ mass: 4.3e23,
+ orbit: 35e6,
+ rotation: 9.2
+}
+
+moon: {
+ name: "Loris II",
+ map: "Moons/rock_map.pcx",
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 0.25e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 0.6e24,
+ orbit: 61e6
+}
+
+
+
+planet: {
+ name: Casalle
+ map: "Giants/GasGiant5_map.pcx"
+ image: "Giants/GasGiant5.jpg",
+ radius: 38.2e6,
+ mass: 4.0e26,
+ orbit: 2.95e11,
+ tilt: 0.1,
+ tscale: 2,
+ ring: "Giants/Ring3.pcx",
+ minrad: 1.4,
+ maxrad: 1.7,
+ rotation: 36.3
+}
+
+region: {
+ name: Casalle,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 175e6,
+ inclination: 0.6,
+ link: Nero, // Silessia
+ link: Lornas, // Renser
+ link: Nergal, // Nephrys
+ link: Solnas, // Korius
+}
+
+moon: {
+ name: Demeter
+ map: "Haiche/kala_map.pcx"
+ image: "Haiche/kala_lo.pcx",
+ high_res:"Haiche/kala_hi.pcx",
+ radius: 2.2e6,
+ mass: 1.9e22,
+ orbit: 1.44e8,
+ rotation: 30
+}
+
+moon: {
+ name: Thoraine,
+ map: "Moons/lunar_map.pcx",
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 3.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.7e24,
+ orbit: 2.251e8
+}
+
+
diff --git a/data/shatter/Galaxy/Marak/Marak.def b/data/shatter/Galaxy/Marak/Marak.def
new file mode 100644
index 0000000..ef25578
--- /dev/null
+++ b/data/shatter/Galaxy/Marak/Marak.def
@@ -0,0 +1,70 @@
+STARSYSTEM
+
+name: Marak
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Marak.mag",
+ poly_stars: "stars.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (36, 6, 6)
+
+star: {
+ name: Marakanis
+ map: "Suns/StarF_map.pcx"
+ image: "Suns/F8.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 255, 255),// - F White
+ back: (120, 20, 14) // - nebula21
+}
+
+region: {
+ name: Xanthe,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 4.38e11,
+ inclination: 0.13,
+ asteroids: 70,
+ link: Path, // Trocanther
+}
+
+planet: {
+ name: Marak
+ map: "Marak/marak_map.pcx"
+ image: "Marak/marak_hi.jpg",
+ gloss: "Marak/marak_gloss.jpg",
+ atmosphere: (90,90,130),
+ radius: 6.1e6,
+ mass: 5.3e24,
+ orbit: 1.1e11,
+ rotation: 23.7
+}
+
+region: {
+ name: Marak,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 21e6,
+ inclination: 0.4,
+}
+
+moon: {
+ name: Manarkan,
+ map: "Moons/Moon3_map.pcx",
+ image: "Moons/Moon3.jpg",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 42e6
+}
+
+
diff --git a/data/shatter/Galaxy/Museum/Museum.def b/data/shatter/Galaxy/Museum/Museum.def
new file mode 100644
index 0000000..68536e2
--- /dev/null
+++ b/data/shatter/Galaxy/Museum/Museum.def
@@ -0,0 +1,49 @@
+STARSYSTEM
+
+name: Museum
+
+/*************************************/
+
+sky: {
+ poly_stars: "Museum.mag"
+}
+
+stars: 0
+dust: 0
+
+/*************************************/
+
+
+ambient: (64, 48, 32)
+
+star: {
+ name: Musette,
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - standard yellow
+ back: (170, 120, 70)
+ }
+
+planet: {
+ name: Mausoleum
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 300,
+ mass: 5.6e26,
+ orbit: 1.8e11,
+ tscale: 2,
+ rotation: 16.3
+ }
+
+region: {
+ name: Museum,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.55e8,
+ inclination: 0.4
+ }
+
diff --git a/data/shatter/Galaxy/Nephrys/Nephrys.def b/data/shatter/Galaxy/Nephrys/Nephrys.def
new file mode 100644
index 0000000..4d2fe87
--- /dev/null
+++ b/data/shatter/Galaxy/Nephrys/Nephrys.def
@@ -0,0 +1,53 @@
+STARSYSTEM
+
+name: Nephrys
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Nephrys.mag",
+ poly_stars: "stars.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (8, 8, 10)
+
+star: {
+ name: Nephrys
+ map: "Suns/StarA_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 3e30,
+ light: 2.6e11,
+ color: (245, 245, 255),// - A Blue-White
+ back: ( 43, 40, 46) // - nebula18 (dark gray)
+}
+
+planet: {
+ name: Nergal
+ map: "Nephrys/nergal_map.pcx"
+ image: "Nephrys/nergal_lo.pcx",
+ high_res:"Nephrys/nergal_hi.jpg",
+ gloss: "Nephrys/nergal_gloss.jpg",
+ glow_high_res: "Nephrys/nergal_fire.jpg",
+ radius: 9e6,
+ mass: 5.6e28,
+ orbit: 4.8e11,
+ rotation: 160.3,
+}
+
+region: {
+ name: Nergal,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 35e6,
+ inclination: 0.1,
+ link: Casalle, // Loris
+ link: Solnas, // Korius
+}
+
diff --git a/data/shatter/Galaxy/Ostara/Ostara.def b/data/shatter/Galaxy/Ostara/Ostara.def
new file mode 100644
index 0000000..b060c1b
--- /dev/null
+++ b/data/shatter/Galaxy/Ostara/Ostara.def
@@ -0,0 +1,61 @@
+STARSYSTEM
+
+name: Ostara
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Ostara.mag",
+ poly_stars: "stars.mag",
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (32, 8, 8)
+
+star: {
+ name: Ostara,
+ image: "Suns/M1.pcx",
+ tscale: 6,
+ radius: 12e8,
+ mass: 1e30,
+ light: 5e10,
+ color: (255, 170, 160),// - deep red
+ back: (130, 90, 50) // - nebula2
+}
+
+planet: {
+ name: Aram,
+ image: "Ostara/aram_lo.pcx",
+ high_res:"Ostara/aram_hi.pcx",
+ radius: 6.4e6,
+ mass: 5.98e24,
+ atmosphere: (180,90,60),
+ orbit: 10.34e10,
+ rotation: 15
+}
+
+region: {
+ name: Aram,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 19e6,
+ inclination: 0.45,
+ link: Volova, // Kolchev
+ link: Kala, // Haiche
+ link: Theramin, // Tarsus
+}
+
+moon: {
+ name: Ur,
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 85e6
+}
+
+
diff --git a/data/shatter/Galaxy/Paragon/Paragon.def b/data/shatter/Galaxy/Paragon/Paragon.def
new file mode 100644
index 0000000..6911970
--- /dev/null
+++ b/data/shatter/Galaxy/Paragon/Paragon.def
@@ -0,0 +1,168 @@
+STARSYSTEM
+
+name: Paragon
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Paragon.mag",
+ poly_stars: "stars.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (30, 36, 38)
+
+star: {
+ name: Talpara
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 230),// - standard yellow
+ back: ( 50, 70, 100) // - nebula24
+}
+
+planet: {
+ name: Dorrath
+ map: "Paragon/dorrath_map.pcx"
+ image: "Paragon/dorrath_lo.pcx",
+ high_res:"Paragon/dorrath_hi.pcx",
+ radius: 3.9e6,
+ mass: 2.58e24,
+ orbit: 7.23e10,
+ atmosphere: (121,120,121),
+ rotation: 29.72
+}
+
+region: {
+ name: Dorrath,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 16e6,
+ inclination: 0.67
+}
+
+moon: {
+ name: Altos
+ map: "Borova/maraner_map.pcx"
+ image: "Borova/maraner_lo.pcx",
+ high_res:"Borova/maraner_hi.pcx",
+ radius: 0.85e6,
+ mass: 8e22,
+ orbit: 43e6,
+ retro: true,
+}
+
+planet: {
+ name: Paragon
+ map: "Paragon/paragon_map.pcx"
+ image: "Paragon/paragon_lo.pcx",
+ high_res: "Paragon/paragon_hi.jpg",
+ gloss: "Paragon/paragon_gloss.jpg",
+ glow_high_res: "Paragon/paragon_lights.jpg",
+ radius: 5.8e6,
+ mass: 4.98e24,
+ atmosphere: (140,170,200),
+ orbit: 1.4e11,
+ rotation: 27
+}
+
+region: {
+ name: Paragon,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 20e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Porthos
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 1.1e6,
+ mass: 8e22,
+ orbit: 39e6
+}
+
+moon: {
+ name: Aramis,
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 0.5e6,
+ mass: 8e22,
+ orbit: 51e6
+}
+
+planet: {
+ name: "Bryn Mawr",
+ map: "Paragon/bryn_map.pcx"
+ image: "Paragon/bryn_hi.jpg",
+ radius: 3.3e6,
+ mass: 2.45e24,
+ orbit: 2.57e11,
+ rotation: 35
+}
+
+region: {
+ name: Bryn,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 12.0e6,
+ inclination: 0.7
+}
+
+planet: {
+ name: Atlan,
+ map: "Giants/GasGiant4_map.pcx"
+ image: "Giants/GasGiant4.jpg",
+ radius: 19e6,
+ mass: 2.1e26,
+ orbit: 4.8e11,
+ tscale: 2,
+ tilt: 0.23,
+ ring: "Giants/Ring3.pcx",
+ minrad: 1.4,
+ maxrad: 1.75,
+ rotation: 21.23
+}
+
+region: {
+ name: Atlan,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.15e8,
+ inclination: 0.42,
+ link: Tulkas, // Borova
+ link: Dawn, // Jarnell
+}
+
+moon: {
+ name: Synad
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 2.2e6,
+ mass: 1.9e22,
+ orbit: 1.44e8,
+ rotation: 30
+}
+
+moon: {
+ name: Olan,
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 3.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 1.7e24,
+ orbit: 2.251e8
+}
diff --git a/data/shatter/Galaxy/Radix/Radix.def b/data/shatter/Galaxy/Radix/Radix.def
new file mode 100644
index 0000000..907861f
--- /dev/null
+++ b/data/shatter/Galaxy/Radix/Radix.def
@@ -0,0 +1,183 @@
+STARSYSTEM
+
+name: Radix
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Radix.mag",
+ poly_stars: "stars.mag",
+ haze: "Radix/Canyon/TerrainHaze.mag"
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (20, 10, 7)
+
+star: {
+ name: Radset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 250, 245),// - G Yellow
+ back: ( 40, 22, 14) // - nebula19
+}
+
+planet: {
+ name: Senna
+ map: "Radix/senna_map.pcx"
+ image: "Radix/senna_lo.pcx",
+ high_res:"Radix/senna_hi.jpg",
+ radius: 4.5e6,
+ mass: 4.1e24,
+ atmosphere: (160,140,120),
+ orbit: 0.75e11,
+ rotation: 24.3
+}
+
+region: {
+ name: Senna,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Galen
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 2.3e6,
+ rotation: 16.4,
+ mass: 5.98e23,
+ orbit: 48e6,
+}
+
+
+planet: {
+ name: Radix
+ map: "Radix/radix_map.pcx"
+ image: "Radix/radix_lo.pcx",
+ high_res:"Radix/radix_hi.jpg",
+ gloss: "Radix/radix_gloss.jpg",
+ radius: 5.1e6,
+ mass: 4.6e24,
+ atmosphere: (175,160,150),
+ orbit: 1.3e11,
+ rotation: 16.3
+}
+
+terrain: {
+ name: "Shadow Canyon",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Radix/Canyon/terrain.pcx",
+ patch_texture: "Radix/Canyon/terrain_big.pcx",
+ apron: "Radix/Canyon/terrain_apron.pcx",
+ apron_texture: "Radix/Canyon/terrain_apron_tex.pcx",
+ sky_color: "Radix/Canyon/terrain_sky.pcx",
+
+ layer: { tile: "Radix/Canyon/Layer0.pcx" height: 0 detail: "Radix/Canyon/noise0.pcx" }
+ layer: { tile: "Radix/Canyon/Layer1.pcx" height: 3000 detail: "Radix/Canyon/noise1.pcx" }
+ layer: { tile: "Radix/Canyon/Layer2.pcx" height: 9000 detail: "Radix/Canyon/noise1.pcx" }
+
+ clouds_high: "Radix/Canyon/terrain_cloud0.pcx",
+ clouds_low: "Radix/Canyon/terrain_cloud1.pcx",
+ shades_low: "Radix/Canyon/terrain_cloud1a.pcx",
+ clouds_alt_high: 16.3e3,
+ clouds_alt_low: 13.1e3,
+
+ scale: 1.75e3,
+ mtnscale: 80,
+ haze_fade: 0.5,
+ fog_density: 0.5,
+ fog_scale: 5,
+
+ weather_period: 59876,
+
+ weather_high_clouds: 50,
+ weather_moderate_clouds: 15,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 0,
+}
+
+region: {
+ name: Radix,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.4
+}
+
+moon: {
+ name: Ariadne,
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 2.9e6,
+ rotation: 310.4,
+ mass: 5.18e23,
+ orbit: 53.2e6,
+}
+
+
+// GAS GIANTS:
+
+planet: {
+ name: Cavenda
+ map: "Giants/GasGiant5_map.pcx"
+ image: "Giants/GasGiant5.jpg",
+ radius: 13.7e6,
+ mass: 3.6e26,
+ tscale: 2,
+ orbit: 2.51e11,
+ rotation: 43.7
+}
+
+region: {
+ name: Cavenda,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 55e6,
+ inclination: 0.3,
+ link: Volova, // Kolchev
+ link: Relay, // Isham
+ link: Theramin, // Tarsus
+ link: Nerasil, // Garrison
+}
+
+moon: {
+ name: Oberon
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 2.3e6,
+ rotation: 26.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 3.11e8
+}
+
+moon: {
+ name: Titania
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 4.1e6,
+ rotation: 38.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 5.24e8
+}
+
+
+
diff --git a/data/shatter/Galaxy/Renser/Renser.def b/data/shatter/Galaxy/Renser/Renser.def
new file mode 100644
index 0000000..1b31fa1
--- /dev/null
+++ b/data/shatter/Galaxy/Renser/Renser.def
@@ -0,0 +1,184 @@
+STARSYSTEM
+
+name: Renser
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Renser.mag",
+ poly_stars: "stars.mag",
+}
+
+stars: 500
+dust: 220
+
+ambient: (22, 20, 20)
+
+/*************************************/
+
+star: {
+ name: Renset
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 15.97e8,
+ mass: 2.13e30,
+ light: 1.6e11,
+ color: (255, 250, 225),
+ back: ( 50, 52, 55),
+}
+
+region: {
+ name: Lornas,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 4.78e11,
+ inclination: 0.23,
+ asteroids: 100,
+ link: Kala, // Haiche
+ link: Casalle, // Loris
+ link: Nero, // Silessia
+ link: Trellis, // Solus
+ link: Solnas, // Korius
+}
+
+
+planet: {
+ name: Garana
+ map: "Renser/garana_map.pcx"
+ image: "Renser/garana_lo.pcx",
+ high_res:"Renser/garana_hi.pcx",
+ radius: 4.318e6,
+ mass: 3.15e24,
+ orbit: 6.19e10,
+ rotation: 13.19
+}
+
+region: {
+ name: Garana,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 13.9e6,
+ inclination: 0.62
+}
+
+
+planet: {
+ name: Rhomindal
+ map: "Renser/rhomindal_map.pcx"
+ image: "Renser/rhomindal_lo.pcx",
+ high_res:"Renser/rhomindal_hi.pcx",
+ radius: 5.735e6,
+ mass: 4.95e24,
+ orbit: 11.53e10,
+ rotation: 29.3
+}
+
+region: {
+ name: Rhomindal,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 22.0e6,
+ inclination: 0.55
+}
+
+planet: {
+ name: Renser
+ map: "Renser/renser_map.pcx"
+ image: "Renser/renser_lo.pcx",
+ high_res:"Renser/renser_hi.jpg",
+ gloss: "Renser/renser_gloss.jpg",
+ glow_high_res: "Renser/renser_glow.jpg",
+ radius: 6.437e6,
+ mass: 5.98e24,
+ atmosphere: (180,170,200),
+ orbit: 19.64e10,
+ rotation: 17
+}
+
+region: {
+ name: Renser,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.49,
+}
+
+
+planet: {
+ name: Marisol
+ map: "Renser/marisol_map.pcx"
+ image: "Renser/marisol.jpg",
+ radius: 27.489e6,
+ mass: 4.21e26,
+ orbit: 3.75e11,
+ tilt: 0.20,
+ rotation: 39.2,
+}
+
+region: {
+ name: Marisol,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 0.75e8,
+ inclination: 0.3,
+}
+
+moon: {
+ name: Asur
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3.541e6,
+ mass: 3e22,
+ orbit: 2.65e8,
+ rotation: 100
+}
+
+moon: {
+ name: Malinus,
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.211e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 3.71e8
+}
+
+moon: {
+ name: Florina,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 3.707e6,
+ rotation: 12.1,
+ atmosphere: (180,180,255),
+ mass: 3.98e24,
+ orbit: 6.24e8
+}
+
+
+planet: {
+ name: Khaital
+ map: "Renser/khaital_map.pcx"
+ image: "Renser/khaital_lo.pcx",
+ high_res:"Renser/khaital_hi.jpg",
+ gloss: "Renser/khaital_gloss.jpg",
+ radius: 3.821e6,
+ mass: 2.87e24,
+ atmosphere: (150,160,190),
+ orbit: 5.78e11,
+ rotation: 28
+}
+
+region: {
+ name: Khaital,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.49,
+ link: Trellis
+}
+
diff --git a/data/shatter/Galaxy/Silessia/Silessia.def b/data/shatter/Galaxy/Silessia/Silessia.def
new file mode 100644
index 0000000..eda0cae
--- /dev/null
+++ b/data/shatter/Galaxy/Silessia/Silessia.def
@@ -0,0 +1,191 @@
+STARSYSTEM
+
+name: Silessia
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Silessia.mag",
+ poly_stars: "stars.mag",
+}
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (15, 15, 18)
+
+star: {
+ name: Siltana
+ map: "Suns/StarK_map.pcx"
+ image: "Suns/K1.pcx",
+ tscale: 6,
+ radius: 12e8,
+ mass: 1e30,
+ light: 7e10,
+ color: (255, 232, 220),
+ back: (45, 65, 75)
+}
+
+planet: {
+ name: Silessia
+ map: "Silessia/silessia_map.pcx"
+ image: "Silessia/silessia_lo.pcx",
+ high_res:"Silessia/silessia_hi.jpg",
+ glow_high_res: "Silessia/silessia_glow.jpg",
+ gloss: "Silessia/silessia_gloss.jpg",
+ radius: 5.4e6,
+ mass: 3.38e24,
+ atmosphere: (80,120,150),
+ orbit: 0.97e11,
+ rotation: 19
+}
+
+region: {
+ name: Silessia,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 19e6,
+ inclination: 0.45
+}
+
+moon: {
+ name: Tannis
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 1e6,
+ mass: 8e22,
+ orbit: 95e6
+}
+
+
+
+// GAS GIANTS:
+
+planet: {
+ name: Prosenar
+ map: "Giants/GasGiant8_map.pcx"
+ image: "Giants/GasGiant8.jpg",
+ radius: 14.1e6,
+ mass: 3.6e26,
+ tilt: 0.2,
+ ring: "Giants/Ring3.pcx",
+ minrad: 1.5,
+ maxrad: 1.9,
+ orbit: 1.85e11,
+ rotation: 61.3
+}
+
+region: {
+ name: Prosenar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 55.53e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: "Proson I",
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 2.3e6,
+ rotation: 16.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 4.11e8
+}
+
+moon: {
+ name: "Proson II",
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 4.2e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 6.24e8
+}
+
+
+planet: {
+ name: Vesta
+ map: "Giants/GasGiant2_map.pcx"
+ image: "Giants/GasGiant2.jpg",
+ radius: 18.1e6,
+ mass: 3.6e26,
+ tilt: 0.13,
+ orbit: 3.15e11,
+ rotation: 31.3
+}
+
+region: {
+ name: Vesta,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 65.3e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: "Vesta I",
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 5.3e6,
+ rotation: 16.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 4.11e8
+}
+
+moon: {
+ name: "Vesta II",
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 3.1e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 6.24e8
+}
+
+moon: {
+ name: "Vesta III",
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6.1e6,
+ rotation: 38.4,
+ mass: 5.98e24,
+ orbit: 13.24e8
+}
+
+
+
+planet: {
+ name: Nero
+ map: "Silessia/nero_map.pcx"
+ image: "Silessia/nero_lo.pcx",
+ high_res:"Silessia/nero_hi.jpg",
+ radius: 2.64e6,
+ mass: 1.48e24,
+ orbit: 5.18e11,
+ rotation: 219
+}
+
+region: {
+ name: Nero,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.2,
+ link: Tulkas, // Borova
+ link: Navara, // Janus
+ link: Trellis, // Solus
+ link: Casalle, // Loris
+}
diff --git a/data/shatter/Galaxy/Solus/Solus.def b/data/shatter/Galaxy/Solus/Solus.def
new file mode 100644
index 0000000..870b6c5
--- /dev/null
+++ b/data/shatter/Galaxy/Solus/Solus.def
@@ -0,0 +1,222 @@
+STARSYSTEM
+
+name: Solus
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Solus.mag",
+ poly_stars: "stars.mag",
+ haze: "Solus/Telmera/TerrainHaze.mag"
+ }
+
+stars: 500
+dust: 220
+
+/*************************************/
+
+ambient: (18, 20, 22)
+
+star: {
+ name: Luxor
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 15.97e8,
+ mass: 2.13e30,
+ light: 1.6e11,
+ color: (255, 250, 225), // standard yellow
+ back: ( 20, 50, 90), // nebula15 blue
+}
+
+
+planet: {
+ name: Meridian
+ map: "Solus/meridian_map.pcx"
+ image: "Solus/ur_lo.pcx",
+ high_res:"Solus/ur_hi.pcx",
+ radius: 3.5e6,
+ mass: 2.18e24,
+ atmosphere: (200,185,165),
+ orbit: 6.80e10,
+ rotation: 15.35
+}
+
+region: {
+ name: Meridian
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 9.5e6,
+ inclination: 0.70
+}
+
+planet: {
+ name: Solus
+ map: "Solus/solus_map.pcx",
+ image: "Solus/solus_lo.pcx",
+ high_res:"Solus/solus_hi.jpg",
+ gloss: "Solus/solus_gloss.jpg",
+ glow_high_res: "Solus/solus_lights.jpg",
+ radius: 5.4e6,
+ mass: 4.18e24,
+ atmosphere: (155,175,220),
+ orbit: 1.4e11,
+ rotation: 21.3
+}
+
+terrain: {
+ name: Telmera,
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Solus/Telmera/terrain.pcx",
+ patch_texture: "Solus/Telmera/terrain_big.pcx",
+ apron: "Solus/Telmera/terrain_apron.pcx",
+ apron_texture: "Solus/Telmera/terrain_apron_tex.pcx",
+ sky_color: "Solus/Telmera/terrain_sky.pcx",
+
+ layer: { tile: "Solus/Telmera/Layer0.pcx" height: 0 }
+ layer: { tile: "Solus/Telmera/Layer1.pcx" height: 3300 }
+ layer: { tile: "Solus/Telmera/Layer2.pcx" height: 9500 }
+
+ detail_texture_0: "Solus/Telmera/noise0.pcx",
+
+ clouds_high: "Solus/Telmera/terrain_cloud0.pcx",
+ clouds_low: "Solus/Telmera/terrain_cloud1.pcx",
+ shades_low: "Solus/Telmera/terrain_cloud1a.pcx",
+ clouds_alt_high: 17.5e3,
+ clouds_alt_low: 12.1e3,
+
+ scale: 1.5e3,
+ mtnscale: 65,
+ haze_fade: 0.4,
+ fog_density: 0.4,
+ fog_scale: 5,
+
+ weather_period: 659876,
+
+ weather_high_clouds: 25,
+ weather_moderate_clouds: 75,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 0,
+}
+
+region: {
+ name: Solus,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Kalon
+ map: "Solus/omane_map.pcx",
+ image: "Solus/omane_lo.pcx",
+ high_res:"Solus/omane_hi.pcx",
+ radius: 1.83e6,
+ mass: 8.12e22,
+ orbit: 45e6,
+ rotation: 8
+}
+
+region: {
+ name: Kalon
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 7.8e6,
+ inclination: 0.5
+}
+
+moon: {
+ name: Alar
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 0.5e6,
+ mass: 4.3e22,
+ orbit: 59.5e6
+}
+
+planet: {
+ name: Jalah,
+ map: "Solus/jalah_map.pcx",
+ image: "Solus/jalah.pcx",
+ radius: 19.1e6,
+ mass: 3.6e26,
+ tscale: 2,
+ tilt: 0.13,
+ orbit: 2.95e11,
+ rotation: 29.3
+}
+
+region: {
+ name: Jalah,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 55.8e6,
+ inclination: 0.2
+}
+
+planet: {
+ name: Trellis
+ map: "Giants/GasGiant9_map.pcx"
+ image: "Giants/GasGiant9.jpg",
+ radius: 30e6,
+ mass: 5.42e26,
+ orbit: 3.75e11,
+ tscale: 2,
+ tilt: 0.125,
+ ring: "Giants/Ring2.pcx",
+ minrad: 1.2,
+ maxrad: 1.9,
+ rotation: 19.5,
+}
+
+region: {
+ name: Trellis,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.2e8,
+ inclination: 0.3,
+ link: Navara, // Janus
+ link: Lornas, // Renser
+ link: Nero, // Silessia
+}
+
+moon: {
+ name: Ovid,
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 2.65e8,
+ rotation: 100
+}
+
+moon: {
+ name: Archimedes
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 4.31e8
+}
+
+moon: {
+ name: Flor,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 8.14e8
+}
+
diff --git a/data/shatter/Galaxy/Tarsus/Tarsus.def b/data/shatter/Galaxy/Tarsus/Tarsus.def
new file mode 100644
index 0000000..313d89a
--- /dev/null
+++ b/data/shatter/Galaxy/Tarsus/Tarsus.def
@@ -0,0 +1,82 @@
+STARSYSTEM
+
+name: Tarsus
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Tarsus.mag",
+ poly_stars: "stars.mag",
+}
+
+stars: 500
+dust: 220
+
+/*************************************/
+
+ambient: (25, 22, 20)
+
+star: {
+ name: Tarsus
+ map: "Suns/StarG_map.pcx"
+ image: "Suns/G3.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.5e11,
+ color: (255, 250, 230),// - standard yellow
+ back: (170, 110, 50),// - nebula7
+}
+
+region: {
+ name: Sintar,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.25e11,
+ inclination: 0.45,
+ asteroids: 200
+}
+
+planet: {
+ name: "Tarsus I"
+ map: "Tarsus/tarsus_map.pcx"
+ image: "Tarsus/tarsus_lo.pcx",
+ high_res:"Tarsus/tarsus_hi.jpg",
+ atmosphere: (90,70,60),
+ radius: 3.75e6,
+ mass: 5.6e26,
+ orbit: 1.95e11,
+ rotation: 21.3
+}
+
+region: {
+ name: Tarsus,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 17e6,
+ inclination: 0.45
+}
+
+
+planet: {
+ name: "Tarsus II",
+ map: "Tarsus/oman_map.pcx"
+ image: "Tarsus/oman_lo.pcx",
+ high_res:"Tarsus/oman_hi.jpg",
+ radius: 2.15e6,
+ mass: 3.96e26,
+ orbit: 3.61e11,
+ rotation: 11.1
+}
+
+region: {
+ name: "Theramin",
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 13e6,
+ inclination: 0.45,
+ link: Volova, // Kolchev
+ link: Aram, // Ostara
+ link: Cavenda, // Radix
+}
+
diff --git a/data/shatter/Galaxy/Thralis/Thralis.def b/data/shatter/Galaxy/Thralis/Thralis.def
new file mode 100644
index 0000000..47bf898
--- /dev/null
+++ b/data/shatter/Galaxy/Thralis/Thralis.def
@@ -0,0 +1,171 @@
+STARSYSTEM
+
+name: Thralis
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Thralis.mag",
+ poly_stars: "stars.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (10, 12, 20)
+
+star: {
+ name: Apollus
+ map: "Suns/StarK_map.pcx"
+ image: "Suns/K1.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 240, 220),// - K Orange
+ back: ( 25, 28, 50) // - nebula11
+}
+
+region: {
+ name: Sparta,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 5.12e11,
+ inclination: 0.19,
+ asteroids: 120,
+ link: Dawn,
+}
+
+planet: {
+ name: Pollux
+ map: "Thralis/benares_map.pcx"
+ image: "Thralis/benares_lo.pcx",
+ high_res:"Thralis/benares_hi.pcx",
+ radius: 3.75e6,
+ mass: 2.50e24,
+ orbit: 6.32e10,
+ atmosphere: (60,55,45),
+ rotation: 32.12
+}
+
+region: {
+ name: Pollux,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 17.5e6,
+ inclination: 0.67
+}
+
+moon: {
+ name: Galad
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 0.724e6,
+ mass: 7e22,
+ orbit: 40e6,
+}
+
+planet: {
+ name: Thrale
+ map: "Thralis/thralis_map.pcx"
+ image: "Thralis/thralis_lo.pcx",
+ high_res:"Thralis/thralis_hi.jpg",
+ gloss: "Thralis/thralis_gloss.jpg",
+ glow_high_res: "Thralis/thralis_lights.jpg",
+ radius: 5.98e6,
+ mass: 4.62e24,
+ atmosphere: (80,100,150),
+ orbit: 1.76e11,
+}
+
+region: {
+ name: Thrale,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 22e6,
+ inclination: 0.4
+}
+
+
+planet: {
+ name: Hera
+ map: "Giants/GasGiant5_map.pcx"
+ image: "Giants/GasGiant5.jpg",
+ radius: 23.1e6,
+ mass: 4.2e26,
+ tscale: 2,
+ tilt: 0.1,
+ orbit: 2.95e11,
+ rotation: 29.3
+}
+
+region: {
+ name: Hera,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 103.53e6,
+ inclination: 0.2
+}
+
+
+planet: {
+ name: Zeus,
+ map: "Giants/GasGiant10_map.pcx"
+ image: "Giants/GasGiant10.jpg",
+ radius: 27.5e6,
+ mass: 5.42e26,
+ orbit: 4.13e11,
+ tilt: 0.2,
+ ring: "Giants/Ring2.pcx",
+ minrad: 1.3,
+ maxrad: 1.7,
+ rotation: 22.5,
+}
+
+region: {
+ name: Zeus,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 1.2e8,
+ inclination: 0.3,
+}
+
+moon: {
+ name: Penelope
+ map: "Moons/rock_map.pcx"
+ image: "Moons/rock_lo.pcx",
+ high_res:"Moons/rock_hi.pcx",
+ radius: 3e6,
+ mass: 3e22,
+ orbit: 3.15e8,
+ rotation: 60
+}
+
+moon: {
+ name: Persephone,
+ map: "Moons/lunar_map.pcx"
+ image: "Moons/lunar_lo.pcx",
+ high_res:"Moons/lunar_hi.pcx",
+ radius: 5.2e6,
+ rotation: 19,
+ inclination: 0.0,
+ mass: 6.0e24,
+ orbit: 5.131e8
+}
+
+moon: {
+ name: Aenia,
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 6e6,
+ rotation: 18.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 7.24e8
+}
+
+
diff --git a/data/shatter/Galaxy/Trocanther/Trocanther.def b/data/shatter/Galaxy/Trocanther/Trocanther.def
new file mode 100644
index 0000000..3ff0cb4
--- /dev/null
+++ b/data/shatter/Galaxy/Trocanther/Trocanther.def
@@ -0,0 +1,155 @@
+STARSYSTEM
+
+name: Trocanther
+
+/*************************************/
+
+sky: {
+ nebula: "Nebula-Trocanther.mag",
+ poly_stars: "stars.mag"
+ haze: "Trocanther/Hell/TerrainHaze.mag"
+ }
+
+stars: 500
+dust: 300
+
+/*************************************/
+
+ambient: (30, 15, 0)
+
+star: {
+ name: Trocanther
+ map: "Suns/StarK_map.pcx"
+ image: "Suns/K1.pcx",
+ tscale: 6,
+ radius: 16e8,
+ mass: 2e30,
+ light: 1.6e11,
+ color: (255, 240, 220),// - K Orange
+ back: ( 90, 50, 30) // - nebula20
+}
+
+
+planet: {
+ name: Volante
+ map: "Trocanther/volante_map.pcx"
+ image: "Trocanther/volante_lo.pcx",
+ high_res:"Trocanther/volante_hi.jpg",
+ radius: 6e6,
+ mass: 5.1e24,
+ orbit: 1.4e11,
+ rotation: 21.7
+}
+
+terrain: {
+ name: "Hell's Kitchen",
+ radius: 480e3,
+ grid: 20e3,
+
+ patch: "Trocanther/Hell/terrain.pcx",
+ patch_texture: "Trocanther/Hell/terrain_big.pcx",
+ apron: "Trocanther/Hell/terrain_apron.pcx",
+ apron_texture: "Trocanther/Hell/terrain_apron_tex.pcx",
+ sky_color: "Trocanther/Hell/terrain_sky.pcx",
+
+ layer: { tile: "Trocanther/Hell/Layer0.pcx" height: 0 detail: "Radix/Canyon/noise0.pcx" }
+ layer: { tile: "Trocanther/Hell/Layer1.pcx" height: 3000 detail: "Radix/Canyon/noise1.pcx" }
+ layer: { tile: "Trocanther/Hell/Layer2.pcx" height: 9000 detail: "Radix/Canyon/noise1.pcx" }
+
+ clouds_high: "Trocanther/Hell/terrain_cloud0.pcx",
+ clouds_low: "Trocanther/Hell/terrain_cloud1.pcx",
+ shades_low: "Trocanther/Hell/terrain_cloud1a.pcx",
+ clouds_alt_high: 16.3e3,
+ clouds_alt_low: 13.1e3,
+
+ scale: 1.75e3,
+ mtnscale: 60,
+ haze_fade: 0.5,
+ fog_density: 0.5,
+ fog_scale: 5,
+
+ weather_period: 59876,
+
+ weather_high_clouds: 0, //20,
+ weather_moderate_clouds: 0, //75,
+ weather_overcast: 0,
+ weather_fog: 0,
+ weather_storm: 100, // 5,
+}
+
+region: {
+ name: Volante,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 18e6,
+ inclination: 0.4
+}
+
+
+// GAS GIANTS:
+
+planet: {
+ name: Narcissus
+ map: "Giants/GasGiant1_map.pcx"
+ image: "Giants/GasGiant1.jpg",
+ radius: 13.7e6,
+ mass: 3.6e26,
+ orbit: 2.51e11,
+ rotation: 43.7
+}
+
+region: {
+ name: Narcissus,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 55e6,
+ inclination: 0.3
+}
+
+moon: {
+ name: Liriope
+ map: "Moons/ice_map.pcx"
+ image: "Moons/ice_lo.pcx",
+ high_res:"Moons/ice_hi.pcx",
+ radius: 2.3e6,
+ rotation: 26.4,
+ atmosphere: (180,180,255),
+ mass: 5.98e24,
+ orbit: 3.11e8
+}
+
+moon: {
+ name: Echo
+ map: "Jarnell/lanos_map.pcx"
+ image: "Jarnell/lanos_lo.pcx",
+ high_res:"Jarnell/lanos_hi.pcx",
+ radius: 4.1e6,
+ rotation: 38.4,
+ atmosphere: (180,180,255),
+ mass: 3.28e24,
+ orbit: 5.24e8
+}
+
+
+
+planet: {
+ name: Path
+ map: "Trocanther/path_map.pcx"
+ image: "Trocanther/path_lo.pcx",
+ high_res:"Trocanther/path_hi.pcx",
+ radius: 4.1e6,
+ mass: 3.5e24,
+ orbit: 4.4e11,
+ rotation: 51.7
+}
+
+region: {
+ name: Path,
+ radius: 480e3,
+ grid: 20e3,
+ orbit: 15e6,
+ inclination: 0.2,
+ link: Xanthe, // Marak
+ link: Relay, // Isham
+}
+
diff --git a/data/shatter/Missions/01-Alert.def b/data/shatter/Missions/01-Alert.def
new file mode 100644
index 0000000..599c4e1
--- /dev/null
+++ b/data/shatter/Missions/01-Alert.def
@@ -0,0 +1,163 @@
+MISSION
+
+name: "01. Red Alert"
+type: PATROL
+system: Ostara
+region: Aram
+
+start: "00/08:00:00"
+degrees: true
+
+sitrep: "The long range reconnaissance ship AFS Vasquez "
+ "has failed to report in during a routine patrol of "
+ "Hegemony border space. "
+ "The Third Fleet carrier Archon has been dispatched "
+ "to Aram sector in the Ostara system to search for the "
+ "missing ship. Tensions are high, and Hegemony ships may "
+ "also be patrolling this sector.\n\n"
+
+ "Your element will patrol the Aram sector for evidence of "
+ "the missing ship. Be on the lookout for Hegemony ships "
+ "that may have engaged and destroyed the Vasquez. Good luck."
+
+objective: "* Search for evidence of the AFS Vasquez\n"
+ "* Defend the Archon Carrier Battle Group\n"
+ "* Return safely to base"
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+ship: {
+ name: Gerson,
+ design: Asher,
+ loc: (-20e3, 7e3, 300),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+ship: {
+ name: Simmons,
+ design: Asher,
+ loc: (16e3, -2e3, 100),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+element: {
+ name: Delta,
+ design: Falcon,
+ squadron: Avengers,
+ loc: (1e3, 2e3, 0),
+ mission: patrol,
+ player: 1,
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ navpt: { cmd: vector, loc: ( 5e3, -10e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: ( 90e3,-130e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: (150e3, -60e3, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: (120e3, 0, 0), speed: 500 },
+ navpt: { cmd: patrol, loc: ( 10e3, 30e3, 0), speed: 500 },
+}
+
+optional: {
+ min: 1,
+ max: 3,
+
+ element: {
+ name: Nagal,
+ design: Viper,
+ rloc: { ref: "Delta:1", dex: 30e3, dex_var: 5e3 },
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+
+ element: {
+ name: Narom,
+ design: Razor,
+ rloc: { ref: "Delta:2", dex: 20e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: secret,
+ },
+
+ element: {
+ name: Nardik,
+ design: Viper,
+ rloc: { ref: "Delta:2", dex: 33e3, dex_var: 5e3 },
+ count: 3,
+ iff: 2,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+ intel: known,
+ },
+}
+
+element: {
+ name: Orten,
+ design: Cobra,
+ loc: (160e3,-210e3, 0),
+ mission: assault,
+
+ count: 4,
+ iff: 2,
+ loadout: { ship: -1, name: "Hvy Ship Strike" },
+
+ objective: { cmd: assault, tgt: Archon },
+
+ navpt: { cmd: vector, loc: (160e3,-130e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Archon, loc: ( 40e3, -30e3, 0), speed: 500 },
+
+}
+
+event: {
+ id: 1,
+ event: Message,
+ sound: "Vox/Misc/M01-E01.ogg",
+ event_message: "We show inbound contacts, presumed hostile.",
+ event_source: Archon,
+ event_ship: Delta,
+
+ trigger: Navpoint,
+ trigger_ship: "Orten 1",
+ trigger_param: 1,
+ delay: 2,
+}
+
+event: {
+ id: 2,
+ event: Objective,
+ event_message: "Engage inbound strike package 'Orten'.",
+ event_source: Archon,
+ event_ship: Delta,
+ event_target: Orten,
+ event_param: 8,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 5,
+}
diff --git a/data/shatter/Missions/02-Wings.def b/data/shatter/Missions/02-Wings.def
new file mode 100644
index 0000000..8a21c75
--- /dev/null
+++ b/data/shatter/Missions/02-Wings.def
@@ -0,0 +1,142 @@
+MISSION
+
+name: "02. On Wings of Thunder"
+type: ESCORT_STRIKE
+system: Loris
+region: Loris
+
+start: "01/11:00:00"
+degrees: true
+
+sitrep: "Force:Intel has discovered a Hegemony plot to smuggle "
+ "weapons and personnel from Loris into Silessia using "
+ "unmarked civilian transports. Field agents report that "
+ "the first of these shipments will use the freighter "
+ "Ascentia. The Heracles is launching strike package Condor "
+ "to take out the freighter before it can leave Loris space.\n\n"
+
+ "Your element, Ranger, is assigned to escort the strike "
+ "package and protect it from enemy fighters. We want to "
+ "get in, do the mission, and get out again before the Hegemony "
+ "has time to react. Choose your loadout, and get to your ships."
+
+objective: "* Disable or destroy inbound enemy units in the Loris sector\n"
+ "* Escort the Thunderbolts in strike package Condor\n"
+ "* Return safely to base"
+
+ship: {
+ name: Heracles,
+ design: Orion,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 0
+}
+
+element: {
+ name: Aces,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ carrier: Heracles,
+ iff: 1,
+}
+
+element: {
+ name: Kings,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Heracles,
+ iff: 1,
+}
+
+element: {
+ name: Condor,
+ design: Thunderbolt,
+ squadron: Kings,
+ loc: (4e3, 5e3, 0),
+ mission: assault,
+
+ alert: true,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "Ship Strike" },
+
+
+ objective: { cmd: assault, tgt: Ascentia },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( 40e3, -95e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Ascentia, loc: (-20e3, -120e3, 0), speed: 500 },
+}
+
+element: {
+ name: Ranger,
+ design: Falcon,
+ squadron: Aces,
+ loc: (4e3, 5e3, 0),
+ mission: escort,
+
+ player: 1,
+ alert: false,
+ count: 2,
+ iff: 1,
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: escort, tgt: Condor },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: escort, tgt: Condor, rloc: { ref: "Condor:1", dex: 15e3 }, speed: 500 },
+ navpt: { cmd: escort, tgt: Condor, rloc: { ref: "Condor:2", dex: 15e3 }, speed: 500 },
+}
+
+
+element: {
+ name: Ascentia,
+ design: IM3500
+ skin: Green
+ loc: (-200e3, -120e3, 0),
+ mission: misc,
+ intel: known,
+ count: 1,
+ iff: 2,
+
+ navpt: { cmd: vector, loc: ( 0e3, -120e3, 0), speed: 500 },
+ navpt: { cmd: vector, loc: ( 90e3, -50e3, 0), speed: 500 },
+}
+
+element: {
+ name: Martak,
+ design: Viper,
+ rloc: { ref: Ascentia, dex: 30e3, dex_var: 5e3 },
+ mission: intercept,
+ intel: secret,
+ count: 2,
+ iff: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: intercept, tgt: Condor },
+
+ navpt: { cmd: escort, tgt: Ascentia, rloc: { ref: "Ascentia:1", dex: 25e3 }, speed: 500 },
+ navpt: { cmd: intercept, tgt: Condor, rloc: { ref: "Ascentia:2", dex: 25e3 }, speed: 500 },
+}
+
+element: {
+ name: Malik,
+ design: Razor,
+ loc: (200e3, -120e3, 0),
+ mission: intercept,
+ intel: secret,
+ count: 2,
+ iff: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: intercept, tgt: Condor },
+
+ navpt: { cmd: vector, rloc: { ref: "Condor:1", dex: 25e3 }, speed: 500 },
+ navpt: { cmd: intercept, tgt: Condor, rloc: { ref: "Condor:2", dex: 25e3 }, speed: 500 },
+}
diff --git a/data/shatter/Missions/03-Honor.def b/data/shatter/Missions/03-Honor.def
new file mode 100644
index 0000000..379f948
--- /dev/null
+++ b/data/shatter/Missions/03-Honor.def
@@ -0,0 +1,628 @@
+MISSION
+
+name: "03. Honor Guard"
+type: ESCORT_SHUTTLE
+system: Solus
+region: Telmera
+
+start: "02/18:10:00"
+stardate: 1080332000
+degrees: true
+
+sitrep: "The Secretary for Foreign Affairs and the Senate "
+ "Subcommittee for Interstellar Trade are on a diplomatic "
+ "mission to the Independent System of Solus. They have "
+ "completed three days of meetings and are preparing to "
+ "return home after a stop-over at Harmony Station in Kalon "
+ "sector.\n\n"
+
+ "Your element has been assigned to escort the diplomatic "
+ "shuttle from Telmera Starbase to Solus orbit, and then "
+ "through the Farcaster to Kalon sector and Harmony Station."
+
+objective: "* Escort the diplomatic shuttle from Telmera to Harmony Station\n"
+ "* Return safely to base"
+
+
+
+element: {
+ name: "Solus-Kalon",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (80e3, 20e3, 0),
+
+ objective: { cmd: Vector, tgt: "Kalon-Solus" },
+}
+
+element: {
+ name: "Solus-Trellis",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (-200e3, -100e3, 0),
+}
+
+element: {
+ name: "Solus-Jalah",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Solus",
+ loc: (150e3, -180e3, 0),
+}
+
+element: {
+ name: "Kalon-Solus",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Kalon",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Solus-Kalon" },
+}
+
+element: {
+ name: "Harmony Station",
+ design: "Station2",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Kalon",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Harmony Guest 1",
+ design: "Falcon",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (3168, 25163, 0),
+}
+
+element: {
+ name: "Harmony Guest 2",
+ design: "Stormhawk",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (20097, 3968, 0),
+}
+
+element: {
+ name: "Harmony Guest 3",
+ design: "Zodiac",
+ carrier: "Harmony Station",
+ commander: "Harmony Station",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 8,
+ dead_count: 8,
+ iff: 0,
+ region: "Kalon",
+ loc: (-4211, 17728, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (55e3, -56e3, 0),
+}
+
+element: {
+ name: "Factory 1",
+ design: "Fact04",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (56e3, -55e3, 0),
+}
+
+element: {
+ name: "Factory 2",
+ design: "Fact02",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (58e3, -56e3, 0),
+}
+
+element: {
+ name: "Admin",
+ design: "Bldg00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 30e3, 0),
+}
+
+element: {
+ name: "Office",
+ design: "Bldg01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-54e3, 28e3, 0),
+}
+
+element: {
+ name: "Tower",
+ design: "Bldg02",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 32e3, 0),
+}
+
+element: {
+ name: "Alton",
+ design: "Bldg03",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-56e3, 26e3, 0),
+}
+
+element: {
+ name: "Trade Center",
+ design: "Bldg04",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 27e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-53e3, 28e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-56e3, 30e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-51e3, 31e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City00",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (53e3, -52e3, 0),
+}
+
+element: {
+ name: "City Block",
+ design: "City01",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (53e3, -55e3, 0),
+}
+
+element: {
+ name: "Factory",
+ design: "Fact03",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-52e3, 32e3, 0),
+}
+
+element: {
+ name: "Factory 2",
+ design: "Fact04",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-50e3, 31e3, 0),
+}
+
+element: {
+ name: "Telmera Starport",
+ design: "Airbase1",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Telmera",
+ loc: (-55e3, 22e3, 0),
+}
+
+element: {
+ name: "Telmera Guest 1",
+ design: "Falcon",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-34225, 35380, 0),
+}
+
+element: {
+ name: "Telmera Guest 2",
+ design: "Stormhawk",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-36379, 32938, 0),
+}
+
+element: {
+ name: "Telmera Guest 3",
+ design: "Zodiac",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ dead_count: 10,
+ iff: 0,
+ region: "Telmera",
+ loc: (-33760, 10404, 0),
+}
+
+
+// ******* PLAYER STUFF STARTS HERE *******
+
+element: {
+ name: Zodiac,
+ design: Zodiac,
+ loc: (-63e3, 30e3, 3e3),
+
+ count: 1,
+ iff: 0,
+
+ hold: 300,
+ head: 180,
+
+ navpt: { cmd: vector, loc: ( -63e3, 45e3, 33e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( 80e3, 60e3, 0e3), speed: 500, rgn: Solus },
+ navpt: { cmd: vector, loc: ( 90e3, -75e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: vector, loc: ( 30e3, -15e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: dock, loc: ( 30e3, 0e3, 0e3), speed: 500, rgn: Kalon, tgt: "Harmony Station" },
+}
+
+element: {
+ name: Daggers,
+ design: "Stormhawk",
+ carrier: "Telmera Starport",
+ commander: "Telmera Starport",
+ mission: "Misc",
+
+ intel: "Known",
+ count: 10,
+ iff: 1,
+ region: "Telmera",
+ loc: (-35e3, 33e3, 0),
+}
+
+element: {
+ name: Dagger,
+ design: Stormhawk,
+ loc: (0,0,5e3),
+
+ count: 2,
+ iff: 1,
+ player: 1,
+ alert: true,
+ squadron: Daggers,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+
+ objective: { cmd: escort, tgt: Zodiac },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( -60e3, 30e3, 3e3), speed: 500 },
+ navpt: { cmd: escort, loc: ( -60e3, 60e3, 33e3), speed: 500 },
+ navpt: { cmd: escort, loc: ( 78e3, 67e3, 0e3), speed: 500, rgn: Solus },
+ navpt: { cmd: escort, loc: ( 90e3, -75e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: escort, loc: ( 30e3, -15e3, 0e3), speed: 500, rgn: Kalon },
+ navpt: { cmd: dock, loc: ( 30e3, 0e3, 0e3), speed: 500, rgn: Kalon, tgt: "Harmony Station" },
+}
+
+
+// ******* BAD GUYS *******
+
+
+element: {
+ name: Vectral,
+ design: Viper,
+ loc: (-2e3, -5e3, 0),
+ region: Solus,
+
+ count: 2,
+ iff: 2,
+ hold: 600,
+
+ objective: { cmd: intercept, tgt: Zodiac },
+
+ navpt: { cmd: intercept, tgt: Zodiac, loc: ( 50e3, 65e3, 0e3), speed: 500, rgn: Solus },
+}
+
+element: {
+ name: Ramius,
+ design: Razor,
+ rloc: { ref: "Dagger:4", dex: 120e3 }
+ region: Kalon,
+
+ count: 2,
+ iff: 2,
+ hold: 600,
+
+ objective: { cmd: intercept, tgt: Zodiac },
+
+ navpt: { cmd: intercept, tgt: Zodiac, loc: (20e3, -15e3, 0e3), speed: 750, rgn: Kalon },
+}
+
+
+// ******* EVENT LIST *******
+
+
+event: {
+ id: 1,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Zodiac,
+
+ trigger: Navpoint,
+ trigger_ship: Dagger,
+ trigger_param: 1,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ sound: "Vox/Misc/M03-E02.ogg",
+ event_message: "Dagger flight, this is diplomatic shuttle Zodiac. Good to see you fellows made it.",
+ event_ship: Dagger,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 3,
+ event: Message,
+ sound: "Vox/Misc/M03-E03.ogg",
+ event_message: "We are ready for orbital insertion, please form on our wing.",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Event,
+ trigger_param: 2,
+ delay: 5,
+}
+
+event: {
+ id: 4,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Vectral,
+
+ trigger: Jump,
+ trigger_ship: Dagger,
+ delay: 10,
+}
+
+event: {
+ id: 5,
+ event: Message,
+ sound: "Vox/Misc/M03-E02.ogg",
+ event_message: "Confirm approach to Solus-Kalon Farcaster.",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Navpoint,
+ trigger_ship: Zodiac,
+ trigger_param: 2,
+ delay: 1,
+}
+
+event: {
+ id: 6,
+ event: Message,
+ sound: "Vox/Misc/M03-E06.ogg",
+ event_message: "Form up and we can take the jump together.",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Event,
+ trigger_param: 5,
+ delay: 1.5,
+}
+
+
+event: {
+ id: 90,
+ event: Message,
+ sound: "Vox/Misc/M03-E90.ogg",
+ event_message: "Stay sharp, there may be enemy fighters in the area.",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Jump,
+ trigger_ship: Dagger,
+ delay: 3,
+}
+
+event: {
+ id: 91,
+ event: Message,
+ sound: "Vox/Misc/M03-E91.ogg",
+ event_message: "We've taken some damage, but it's not too bad.",
+ event_ship: Dagger,
+ event_source: Zodiac,
+
+ trigger: Damage,
+ trigger_ship: Zodiac,
+ trigger_param: 20,
+ delay: 1,
+}
+
+event: {
+ id: 99,
+ event: Message,
+ sound: "Vox/Misc/M03-E99.ogg",
+ event_message: "Thanks for the escort Dagger, Zodiac is clear for docking.",
+
+ trigger: Navpoint,
+ trigger_ship: Zodiac,
+ trigger_param: 5,
+ delay: 1,
+}
+
diff --git a/data/shatter/Missions/04-Sand.def b/data/shatter/Missions/04-Sand.def
new file mode 100644
index 0000000..33855b6
--- /dev/null
+++ b/data/shatter/Missions/04-Sand.def
@@ -0,0 +1,290 @@
+MISSION
+
+name: "04. A Line in the Sand"
+desc: "Air-to-ground action. Destroy enemy mining operation on Haiche."
+type: Strike
+system: Haiche
+region: Haiche
+
+start: "05/09:05:00"
+stardate: 1079225678
+degrees: true
+
+sitrep: "The Hegemony is operating an illegal mining operation in the "
+ "Tantalus sector of Haiche. Force:Command is planning an effort "
+ "to gain air and ground control of the sector. As part of the "
+ "effort, you have been tasked with destroying the support "
+ "facilities for the mine."
+
+objective: "* Destroy enemy mining operation\n"
+ "* Return safely to base"
+
+
+element: {
+ name: "Archon",
+ design: "Orion",
+ mission: "FLIGHT_OPS",
+ intel: "Located",
+ count: 1,
+ iff: 1,
+ playable: false,
+ region: "Haiche",
+ loc: (-25000, 0, 0),
+ head: 0,
+
+}
+
+element: {
+ name: "Desperados",
+ design: "Stormhawk",
+ carrier: "Archon",
+ mission: "Misc",
+ intel: "Secret",
+ count: 20,
+ maint_count: 5,
+ dead_count: 5,
+ iff: 1,
+ playable: false,
+ region: "Haiche",
+ loc: (0, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+}
+
+element: {
+ name: "Alpha",
+ design: "Stormhawk",
+ squadron: "Desperados",
+ mission: "Strike",
+ intel: "Secret",
+ count: 2,
+ alert: true,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Haiche",
+ loc: (5000, 2500, 0),
+
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ objective: { cmd: Strike, tgt: "Cooling Tower 1" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 2" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 3" },
+ objective: { cmd: Strike, tgt: "Cooling Tower 4" },
+
+ navpt: { cmd: Vector, loc: ( 0, -10e3, 0), speed: 500, rgn: "Haiche" },
+ navpt: { cmd: Vector, loc: (10e3, 5e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: Strike, tgt: "Cooling Tower", loc: (-1e3, 7e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: Vector, loc: (24e3, -5e3, 3e3), speed: 500, rgn: "Tantalus" },
+ navpt: { cmd: RTB, loc: ( 0, 25e3, 0), speed: 500, rgn: "Haiche" },
+}
+
+element: {
+ name: "SAM-1",
+ design: "SAM 1",
+ mission: "Misc",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (75e3, -72e3, 0),
+ head: 3.142,
+
+}
+
+element: {
+ name: "AAA-1",
+ design: "AAA 2",
+ mission: "Misc",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (65e3, 25e3, 0),
+ head: 1.571,
+
+}
+
+degrees: true
+
+element: {
+ name: "Tantalus Mining Station",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (3e3, 2e3, 0),
+}
+
+element: {
+ name: "Refinery",
+ design: "Dsrt00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-4e3, 3e3, 0),
+}
+
+element: {
+ name: "Cooling Tower A",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 2200, 0)
+}
+
+element: {
+ name: "Cooling Tower B",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3000, 0)
+}
+
+element: {
+ name: "Cooling Tower C",
+ design: "Cool00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, 3800, 0)
+}
+
+element: {
+ name: "Cryo Tank A",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 2200, 0)
+}
+
+element: {
+ name: "Cryo Tank B",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3000, 0)
+}
+
+element: {
+ name: "Cryo Tank C",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5.5e3, 3800, 0)
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (2e3, 1e3, 0),
+}
+
+element: {
+ name: "Downtown",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-5e3, -2e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (15e3, 2e3, 0),
+}
+
+element: {
+ name: "Processing Plant",
+ design: "Fact01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (5e3, 4e3, 0),
+}
+
+element: {
+ name: "Valag",
+ design: "Viper",
+ mission: "Intercept",
+ intel: "Secret",
+ count: 2,
+ iff: 2,
+ playable: false,
+ region: "Tantalus",
+ loc: (-100e3, -110e3, 2e3),
+ head: 180,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Intercept, tgt: "Alpha" },
+
+ navpt: { cmd: Vector, loc: (-40e3, -41e3, 5e3), speed: 450, rgn: "Tantalus" },
+ navpt: { cmd: Intercept, tgt: "Alpha", loc: (2e3, -21e3, 5e3), speed: 600, rgn: "Tantalus" },
+
+}
+
+// EOF
diff --git a/data/shatter/Missions/05-Execution.def b/data/shatter/Missions/05-Execution.def
new file mode 100644
index 0000000..9488667
--- /dev/null
+++ b/data/shatter/Missions/05-Execution.def
@@ -0,0 +1,179 @@
+MISSION
+
+name: "05. Execution is Everything"
+type: ASSAULT
+system: Renser
+region: Lornas
+
+start: "04/19:20:00"
+degrees: true
+
+sitrep: "A group of smugglers broke out of Solus impound three days "
+ "ago. They were able to bypass customs in Khaital and reached "
+ "the Lornas asteroid belt this morning. We believe we have "
+ "located their ship, but with all the clutter from the belt, "
+ "it is hard to be certain.\n\n"
+
+ "Your element is to sweep the asteroid field and find the "
+ "smugglers' ship. Escort them back to the fleet where they "
+ "can be safely apprehended. We would prefer to take them alive, "
+ "but use whatever means are necessary to prevent their escape."
+
+objective: "* Sweep the Lornas asteroid belt\n"
+ "* Escort the smugglers back to the fleet\n"
+ "* Return safely to base"
+
+
+ship: {
+ name: Archon,
+ design: Orion,
+ loc: (0, 0, 2000),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+}
+
+ship: {
+ name: Gerson,
+ design: Asher,
+ loc: (-20e3, 7e3, 2300),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+ship: {
+ name: Simmons,
+ design: Asher,
+ loc: (16e3, -2e3, 2100),
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Archon,
+}
+
+element: {
+ name: Avengers,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+element: {
+ name: Warbirds,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 4,
+ dead_count: 4,
+ carrier: Archon,
+ iff: 1,
+}
+
+ship: {
+ name: Mustang,
+ design: Thunderbolt,
+ loc: (2e3, 1e3, 3e3),
+ count: 2,
+ iff: 1,
+ player: 1,
+ squadron: Warbirds,
+ mission: assault,
+ alert: true,
+
+ loadout: { ship: -1, name: "Ship Strike" },
+
+ objective: { cmd: assault, tgt: Vagabond },
+ objective: { cmd: RTB },
+
+ navpt: { cmd: vector, loc: ( 40e3, -115e3, 0), speed: 500 },
+ navpt: { cmd: assault, tgt: Vagabond, loc: (-20e3, -160e3, 0), speed: 500 },
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Vagabond
+ design: Marauder
+ rloc: { ref: "Mustang:2", dex: 40e3 },
+ iff: 3,
+ intel: Known
+}
+
+ship: {
+ name: Sidus,
+ design: Volnaris,
+ loc: (0, 0, 0),
+ region: Renser,
+ iff: 2,
+ intel: Secret,
+ hold: 250,
+
+ navpt: { cmd: vector, rloc: { ref: Vagabond, dex: 50e3 }, rgn: Lornas, speed: 750 },
+}
+
+ship: {
+ name: Orinoco,
+ design: Tiger,
+ loc: (10e3, 0, 0),
+ region: Renser,
+ iff: 2,
+ intel: Secret,
+ hold: 250,
+
+ navpt: { cmd: vector, rloc: { ref: Vagabond, dex: 70e3 }, rgn: Lornas, speed: 750 },
+}
+
+
+// ***** EVENTS *****
+
+event: {
+ id: 1,
+ event: Message,
+ sound: "Vox/Misc/M05-E01.ogg",
+ event_message: "This is the Hegemony Warship Sidus to all unauthorized vessels in Lornas sector:",
+
+ trigger: Jump,
+ trigger_ship: Sidus,
+ delay: 10,
+}
+
+event: {
+ id: 2,
+ event: Message,
+ sound: "Vox/Misc/M05-E02.ogg",
+ event_message: "You are ordered to leave the area immediately or be destroyed.",
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 6,
+}
+
+event: {
+ id: 10,
+ event: Message,
+ sound: "Vox/Misc/M05-E10.ogg",
+ event_message: "We have two Hegemony warships inbound."
+ event_source: Archon,
+ event_ship: Mustang,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 8,
+}
+
+event: {
+ id: 11,
+ event: Message,
+ sound: "Vox/Misc/M05-E11.ogg",
+ event_message: "Destroy the smugglers and return to base ASAP.",
+
+ trigger: Event,
+ trigger_param: 10,
+ delay: 3,
+}
+
diff --git a/data/shatter/Missions/06-SEAD.def b/data/shatter/Missions/06-SEAD.def
new file mode 100644
index 0000000..486c04c
--- /dev/null
+++ b/data/shatter/Missions/06-SEAD.def
@@ -0,0 +1,242 @@
+MISSION
+
+name: "06. Supression of Enemy Air Defense"
+type: STRIKE
+system: Radix
+region: "Shadow Canyon"
+
+start: "05/10:34:00"
+degrees: true
+stardate: 1079221203.0
+
+sitrep: "A radical faction of the Radix Military has taken a Force "
+ "recon ship and her crew hostage. Force:Intel has determined "
+ "that the hostages are being held at a military base in the "
+ "Shadow Canyon sector on Radix Prime. We are dispatching two "
+ "Zodiac landing craft to rescue the hostages and destroy the "
+ "recon ship before it can be compromised.\n\n"
+
+ "We need you to take out the SAM and AAA emplacements protecting "
+ "the base. You will take only a single Thunderbolt fighter "
+ "to minimize the chance of our rescue operation being detected. "
+ "Stay as low as possible, and use EMCON 2 until you reach the "
+ "strike zone. Those hostages are counting on you, so get moving."
+
+objective: "* SEAD - Destroy SAM and AAA near Shadow Canyon military base\n"
+ "* Avoid detection until the last possible moment\n"
+ "* Return safely to base"
+
+element: {
+ name: Echo,
+ design: Thunderbolt,
+ loc: (5e3, -4e3, 2e3),
+ mission: strike,
+ player: 1,
+ count: 1,
+ iff: 1,
+ loadout: { ship: -1, name: "Ground Strike" },
+
+ navpt: { cmd: vector, loc: ( 4.5e3, -26e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -16e3, -44e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -34e3, -50e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -42e3, -87e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: ( -82e3, -50e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-115e3, -42e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-135e3, -60e3, 1e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-155e3, -67e3, 2e3), speed: 500 },
+ navpt: { cmd: vector, loc: (-171e3, -93e3, 6e3), speed: 500 },
+ navpt: { cmd: strike, loc: (-180e3, -110e3, 2e3), speed: 500 },
+
+}
+
+
+element: {
+ name: "Jackal",
+ design: "Jackal",
+ mission: "Patrol",
+ intel: "Secret",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-25e3, -95e3, 50),
+ hold: 600,
+
+ navpt: { cmd: patrol, loc: ( -42e3, -87e3, 1e3), speed: 500 },
+}
+
+
+element: {
+ name: "Administration",
+ design: "Dsrt01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -145e3, 0),
+}
+
+element: {
+ name: "Outpost",
+ design: "Dsrt04",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -140e3, 0),
+}
+
+element: {
+ name: "Barracks 1",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-177e3, -148e3, 0),
+}
+
+element: {
+ name: "Barracks 2",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -148e3, 0),
+}
+
+element: {
+ name: "Barracks 3",
+ design: "Dsrt03",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-173e3, -148e3, 0),
+}
+
+element: {
+ name: "Cryo Tank",
+ design: "Tank00",
+ mission: "Misc",
+ intel: "Located",
+ count: 2,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-170e3, -138e3, 0),
+}
+
+element: {
+ name: "Reactor",
+ design: "Reac01",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-170e3, -140e3, 0),
+}
+
+element: {
+ name: "Starbase",
+ design: "Airbase3",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-180e3, -125e3, 0),
+}
+
+element: {
+ name: "SAM 1",
+ design: "SAM 1",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-173e3, -130e3, 0),
+}
+
+element: {
+ name: "AAA 1",
+ design: "AAA 1",
+ mission: "Misc",
+ intel: "Located",
+ count: 1,
+ iff: 2,
+ playable: false,
+ region: "Shadow Canyon",
+ loc: (-175e3, -152e3, 0),
+}
+
+
+// ******* EVENT LIST *******
+
+
+event: {
+ id: 1,
+ event: Hold,
+ event_param: 0,
+ event_ship: Jackal,
+
+ trigger: Navpoint,
+ trigger_ship: Echo,
+ trigger_param: 3,
+}
+
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: "SAM 1",
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: "AAA 1",
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M06-E60.ogg",
+ event_message: "The SAM and AAA sites have been destroyed. Mission accomplished!",
+ event_ship: Pickup,
+
+ trigger: "Event (ALL)",
+ trigger_param: (25, 26),
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event",
+ trigger_param: 60,
+ delay: 5,
+}
diff --git a/data/shatter/Missions/07-SLGAM.def b/data/shatter/Missions/07-SLGAM.def
new file mode 100644
index 0000000..aa8787c
--- /dev/null
+++ b/data/shatter/Missions/07-SLGAM.def
@@ -0,0 +1,282 @@
+MISSION
+
+name: "07. Send Lawyers, Guns, and Money"
+type: ESCORT_FREIGHT
+
+system: Janus
+system: Jarnell
+system: Loris
+system: Paragon
+system: Silessia
+system: Solus
+
+system: Borova
+region: Tulkas
+
+start: "06/16:21:00"
+degrees: true
+
+sitrep: "InterStellar Freightways is preparing to deliver a "
+ "shipment of precision machine tools and parts to a "
+ "distributor in Silessia. The total value of the payload "
+ "is over ten billion marks. Due to the recent increase "
+ "in pirate activity in Silessia, Force:Space has agreed "
+ "to provide two Berents-class frigates as escort.\n\n"
+
+ "You will take command of the frigate AFS Durham and accompany "
+ "the two freighters from the Tulkas jump point to the "
+ "Nero transfer orbit in Silessia. AFS Kingston "
+ "will go with you. Once the freighters reach Nero sector, they "
+ "will use the farcaster to expedite their voyage to the "
+ "distribution station in Vesta orbit. You only need "
+ "to see that they reach the farcaster safely, and then you "
+ "must return to Borova space to rejoin the fleet."
+
+
+objective: "* Escort the Golden Hart and Silver Stag to Silessia\n"
+ "* Disable or destroy any enemy units in Nero sector\n"
+ "* Return safely to Borovan space"
+
+ship: {
+ name: Durham,
+ design: Berents,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1,
+
+ objective: { cmd: escort, tgt: "Golden Hart" },
+ objective: { cmd: escort, tgt: "Silver Stag" },
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 50e3, az: 20, az_var: 60, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 15e3, 140e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-100e3, 180e3, 0), speed: 400 },
+}
+
+ship: {
+ name: Kingston,
+ design: Berents,
+ loc: (8e3, 0, 0),
+ count: 1,
+ iff: 1,
+ commander: Durham,
+
+ objective: { cmd: escort, tgt: "Golden Hart" },
+ objective: { cmd: escort, tgt: "Silver Stag" },
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 20e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 15e3, 140e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-110e3, 180e3, 0), speed: 400 },
+}
+
+
+ship: {
+ name: "Golden Hart",
+ design: IM4300
+ skin: Blue
+ rloc: { ref: Durham, dex: 30e3 },
+ count: 1,
+ iff: 0,
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 30e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 0, 180e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-120e3, 190e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Vesta, loc: ( 90e3, -60e3, 0), speed: 400, farcast: true },
+}
+
+ship: {
+ name: "Silver Stag",
+ design: IM4300
+ skin: Blue
+ rloc: { ref: Durham, dex: 25e3 },
+ count: 1,
+ iff: 0,
+
+ navpt: { cmd: vector, rloc: { ref: "Durham:1", dex: 34e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: ( 0, 160e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Nero, loc: (-120e3, 175e3, 0), speed: 400 },
+ navpt: { cmd: vector, rgn: Vesta, loc: ( 90e3, -60e3, 0), speed: 400, farcast: true },
+}
+
+
+// *** FARCASTER NETWORK ***
+
+element: {
+ name: "Nero-Vesta",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Nero",
+ loc: (-120e3, 110e3, 0),
+
+ objective: { cmd: Vector, tgt: "Vesta-Nero" },
+}
+
+element: {
+ name: "Nero-Silessia",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Nero",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Vesta-Nero",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Vesta",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Nero-Vesta" },
+}
+
+element: {
+ name: "Silessia-Nero",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Located",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Silessia",
+ loc: (90e3, -54e3, 0),
+
+ objective: { cmd: Vector, tgt: "Nero-Silessia" },
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Revenge,
+ design: Marauder,
+ region: Nero,
+ rloc: { ref: "Nero-Vesta", dex: 110e3, az: 180, az_var: 75 },
+ iff: 3,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Durham" }
+}
+
+ship: {
+ name: Skull,
+ design: Cutlass,
+ region: Nero,
+ rloc: { ref: Revenge, dex: 90e3 },
+ iff: 3,
+ count: 4,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Golden Hart" }
+}
+
+ship: {
+ name: Black,
+ design: Cutlass,
+ region: Nero,
+ rloc: { ref: Revenge, dex: 115e3 },
+ iff: 3,
+ count: 4,
+ intel: secret,
+
+ objective: { cmd: assault, tgt: "Silver Stag" }
+}
+
+
+
+// *** EVENT LIST ***
+
+
+event: {
+ id: 5,
+ event: Message,
+ sound: "Vox/Misc/M07-E05.ogg",
+ event_message: "We are ready to make the jump to Silessia/Nero. See you there.",
+ event_ship: Durham,
+ event_source: "Golden Hart",
+
+ trigger: Navpoint,
+ trigger_ship: "Golden Hart",
+ trigger_param: 1,
+}
+
+
+event: {
+ id: 80,
+ event: Message,
+ sound: "Vox/Misc/M07-E80.ogg",
+ event_message: "Freighter Golden Hart has been destroyed. Your mission has failed.",
+
+ trigger: Destroyed,
+ trigger_ship: "Golden Hart",
+}
+
+event: {
+ id: 90,
+ event: Message,
+ sound: "Vox/Misc/M07-E90.ogg",
+ event_message: "Freighter Silver Stag has been destroyed. Your mission has failed.",
+
+ trigger: Destroyed,
+ trigger_ship: "Silver Stag",
+}
+
+event: {
+ id: 101,
+ event: Message,
+ event_message: "",
+
+ trigger: Navpoint,
+ trigger_ship: "Golden Hart",
+ trigger_param: 4,
+}
+
+event: {
+ id: 102,
+ event: Message,
+ event_message: "",
+
+ trigger: Navpoint,
+ trigger_ship: "Silver Stag",
+ trigger_param: 4,
+}
+
+event: {
+ id: 110,
+ event: Message,
+ sound: "Vox/Misc/M07-E110.ogg",
+ event_message: "Both freighters have reached the Vesta sector. Mission accomplished!",
+
+ trigger: "Event (ALL)",
+ trigger_param: (101, 102),
+ delay: 5,
+}
+
+
+event: {
+ id: 120,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (80, 90, 110),
+ delay: 15,
+}
diff --git a/data/shatter/Missions/08-Focus.def b/data/shatter/Missions/08-Focus.def
new file mode 100644
index 0000000..3d23b37
--- /dev/null
+++ b/data/shatter/Missions/08-Focus.def
@@ -0,0 +1,186 @@
+MISSION
+
+name: "08. A Matter of Focus"
+type: PATROL
+system: Solus
+region: Solus
+
+start: "07/23:29:00"
+degrees: true
+
+sitrep: "An illegal drug cartel backed by the Brotherhood of Iron "
+ "criminal organization has set up major a distribution operation "
+ "in the Solus system. The drug of choice is a substance "
+ "called 'Focus' that has become increasingly popular among "
+ "students and some of the wealthier intelligensia. Local "
+ "law enforcement has been unable to stem the tide of this "
+ "devastating and addictive vice.\n\n"
+
+ "We have information from an inside source that a major "
+ "shipment is being brought in tonight. The smugglers are "
+ "using Brotherhood pirate vessels - they are lightly armored "
+ "but very difficult to track and target."
+
+objective: "* Disable or destroy smugglers in the Solus sector\n"
+ "* Escort any civilian traffic out of the area"
+
+ship: {
+ name: Saratoga,
+ design: Berents,
+ loc: (0, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1
+}
+
+ship: {
+ name: Columbia,
+ design: Berents,
+ loc: (35e3, -20e3, 0),
+ count: 1,
+ iff: 1,
+ command_ai: 1,
+ commander: Saratoga
+}
+
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Focus,
+ design: Raider,
+ rloc: { ref: Saratoga, dex: 130e3, az: 90, az_var: 75 },
+ iff: 3,
+ intel: known,
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 60e3, az: 90, az_var: 60 }, speed: 400, emcon: 1 },
+ navpt: { cmd: vector, rloc: { ref: "this:1", dex: 60e3, az: 90, az_var: 60 }, speed: 400, emcon: 1 },
+}
+
+ship: {
+ name: Vagrant,
+ design: Raider,
+ rloc: { ref: Focus, dex: 23e3 },
+ iff: 3,
+ intel: known,
+
+ navpt: { cmd: escort, tgt: Focus, rloc: { ref: "Focus:1", dex: 20e3 }, speed: 400, emcon: 1 },
+ navpt: { cmd: escort, tgt: Focus, rloc: { ref: "Focus:2", dex: 20e3 }, speed: 400, emcon: 1 },
+}
+
+ship: {
+ name: Pickup,
+ design: Jackal,
+ rloc: { ref: "Focus:2", dex: 30e3 },
+ iff: 3,
+ intel: secret,
+
+ hold: 1800,
+
+ navpt: { cmd: vector, rloc: { ref: "this", dex: 50e3, az: 90, az_var: 60 }, speed: 800 },
+ navpt: { cmd: vector, loc: (0, 0, 5e3), rgn: Telmera },
+}
+
+
+// ***** EVENT LIST *****
+
+event: {
+ id: 1,
+ event: Hold,
+ event_message: "",
+ event_param: 0,
+ event_ship: Pickup,
+
+ trigger: Navpoint,
+ trigger_ship: Focus,
+ trigger_param: 2,
+}
+
+event: {
+ id: 20,
+ event: Message,
+ sound: "Vox/Misc/M08-E20.ogg",
+ event_message: "The smugglers have transferred their cargo to a landing craft.",
+ event_ship: Saratoga,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 1,
+}
+
+event: {
+ id: 21,
+ event: Message,
+ sound: "Vox/Misc/M08-E21.ogg",
+ event_message: "Disable or destroy the landing craft before it can break orbit.",
+ event_ship: Saratoga,
+
+ trigger: Event,
+ trigger_param: 1,
+ delay: 4,
+}
+
+event: {
+ id: 22,
+ event: Message,
+ sound: "Vox/Misc/M08-E22.ogg",
+ event_message: "The landing craft has escaped with the shipment. Your mission has failed.",
+ event_ship: Saratoga,
+
+ trigger: Jump,
+ trigger_ship: Pickup,
+ trigger_param: 0,
+ delay: 1,
+}
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Focus,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Pickup,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M08-E50.ogg",
+ event_message: "The smugglers were destroyed before they could offload their shipment. Mission accomplished!",
+ event_ship: Saratoga,
+
+ trigger: "Event (ALL)",
+ trigger_param: (-20, -22, 25),
+ delay: 5,
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M08-E60.ogg",
+ event_message: "The landing craft was destroyed before it could break orbit. Mission complete!",
+ event_ship: Saratoga,
+
+ trigger: "Event (ALL)",
+ trigger_param: (22, 26),
+ delay: 5,
+}
+
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (22, 50, 60),
+ delay: 10,
+}
diff --git a/data/shatter/Missions/09-Hounds.def b/data/shatter/Missions/09-Hounds.def
new file mode 100644
index 0000000..49c1721
--- /dev/null
+++ b/data/shatter/Missions/09-Hounds.def
@@ -0,0 +1,210 @@
+MISSION
+
+name: "09. Hounds and Hunters"
+type: FLEET
+system: Paragon
+region: Paragon
+
+start: "08/09:34:00"
+degrees: true
+
+sitrep: "An enemy destroyer squadron has broken off from the main fleet "
+ "and entered the Paragon system. Force:Command believes that this "
+ "is a diversionary tactic in preparation for a major incursion "
+ "elsewhere in Alliance space. We need to resolve this threat as "
+ "quickly as possible and return to the main fleet.\n\n"
+
+ "Paragon traffic control is working to route civilian vessels away "
+ "from the combat zone, but make sure you verify your targets before "
+ "engaging."
+
+objective: "* Destroy or disable destroyer squadron Wolf\n"
+ "* Protect civilian assets in Paragon system"
+
+
+//
+// GOOD GUYS:
+//
+
+element: {
+ name: Wraith,
+ design: Spectre,
+ loc: (-20e3, 0, 0),
+ count: 1,
+ iff: 1,
+ player: 1,
+ mission: fleet,
+
+ navpt: { cmd: sweep, rloc: { dex: 200e3, dex_var: 30e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:1", dex: 150e3, dex_var: 30e3, az: 35, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:2", dex: 150e3, dex_var: 30e3, az: 85, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "this:3", dex: 140e3, dex_var: 30e3, az: 135, az_var: 20, el_var: 0 }, speed: 500 },
+}
+
+element: {
+ name: Nemesis,
+ design: Spectre,
+ loc: (-30e3, 7e3, -500),
+ count: 1,
+ iff: 1,
+ commander: Wraith,
+ mission: fleet,
+
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:1", dex: 20e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:2", dex: 20e3, dex_var: 3e3, az: 45, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:3", dex: 20e3, dex_var: 3e3, az: 135, az_var: 20, el_var: 0 }, speed: 500 },
+ navpt: { cmd: sweep, rloc: { ref: "Wraith:4", dex: 20e3, dex_var: 3e3, az: 200, az_var: 20, el_var: 0 }, speed: 500 },
+}
+
+element: {
+ name: Bosporus,
+ design: Berents,
+ loc: (-5e3, 12e3, 1200),
+ count: 1,
+ iff: 1,
+ commander: Wraith,
+ mission: escort,
+
+ navpt: { cmd: escort, rloc: { ref: "Wraith:1", dex: 30e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:2", dex: 30e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:3", dex: 30e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 500 },
+ navpt: { cmd: escort, rloc: { ref: "Wraith:4", dex: 30e3, dex_var: 3e3, az: 200, az_var: 30, el_var: 0 }, speed: 500 },
+}
+
+//
+// BAD GUYS:
+//
+
+element: {
+ name: Wolf,
+ design: Wolf,
+ rloc: { ref: "Wraith:4", dex: 80e3 },
+ count: 1,
+ iff: 2,
+ intel: Known,
+
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:4", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:2", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wraith:1", dex: 80e3, dex_var: 25e3, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Jackal,
+ design: Wolf,
+ rloc: { ref: "Wolf", dex: 20e3 },
+ count: 1,
+ iff: 2,
+ intel: Known,
+
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:1", dex: 30e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:2", dex: 30e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: patrol, rloc: { ref: "Wolf:3", dex: 30e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Parthan,
+ design: Baikal,
+ rloc: { ref: "Wolf", dex: 30e3 },
+ count: 1,
+ iff: 2,
+ commander: Wolf,
+ mission: escort,
+ intel: Known,
+
+ navpt: { cmd: escort, rloc: { ref: "Wolf:1", dex: 35e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:2", dex: 35e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:3", dex: 35e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+element: {
+ name: Kyren,
+ design: Baikal,
+ rloc: { ref: "Wolf", dex: 30e3 },
+ count: 1,
+ iff: 2,
+ commander: Jackal,
+ mission: escort,
+ intel: Known,
+
+ navpt: { cmd: escort, rloc: { ref: "Wolf:1", dex: 40e3, dex_var: 3e3, az: -45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:2", dex: 40e3, dex_var: 3e3, az: 45, az_var: 30, el_var: 0 }, speed: 400 },
+ navpt: { cmd: escort, rloc: { ref: "Wolf:3", dex: 40e3, dex_var: 3e3, az: 135, az_var: 30, el_var: 0 }, speed: 400 },
+}
+
+//
+// CIVILIANS:
+//
+
+element: {
+ name: Finisterre
+ design: IM1912
+ rloc: { ref: "Wraith:4", dex: 120e3, az: 90, az_var: 45 },
+ count: 1,
+ iff: 0,
+ intel: Secret,
+
+ navpt: { cmd: vector, rloc: { ref: "Wraith:1", dex: 120e3, dex_var: 35e3 }, speed: 300 },
+ navpt: { cmd: vector, loc: (0,0,0), rgn: Atlan, speed: 500 }
+}
+
+
+//
+// EVENT LIST:
+//
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Wolf,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Jackal,
+}
+
+event: {
+ id: 27,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Parthan,
+}
+
+event: {
+ id: 28,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Kyren,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M09-E50.ogg",
+ event_message: "The enemy destroyer squadron has been destroyed. Mission complete!",
+ event_ship: Drayton,
+
+ trigger: "Event (ALL)",
+ trigger_param: (25, 26, 27, 28),
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: Event,
+ trigger_param: 50,
+ delay: 10,
+}
diff --git a/data/shatter/Missions/10-Angels.def b/data/shatter/Missions/10-Angels.def
new file mode 100644
index 0000000..b343378
--- /dev/null
+++ b/data/shatter/Missions/10-Angels.def
@@ -0,0 +1,233 @@
+MISSION
+
+name: "10. Fiery the Angels Fell"
+type: FLIGHT_OPS
+system: Korius
+region: Korius
+
+start: "11/17:15:00"
+degrees: true
+
+sitrep: "The Korian Affair has reached a crisis point. Treaty negotations "
+ "have collapsed from internal conflicts between the Korian and Dantari "
+ "factions. The Dantari have broken the temporary cease fire agreement "
+ "and dispatched a carrier group to the Korius Sector.\n\n"
+
+ "The only hope of salvaging the treaty negotiations is for Force Second "
+ "Fleet to intercept the Dantari CVBG before the Korian faction has time "
+ "to react. The CV-70 Antares and her battle group will deploy in the Korius "
+ "sector and force the Dantari back to the negotiating table."
+
+objective: "* Remove the Dantari battle group from Korius sector\n"
+ "* Protect Alliance and Korian assets in the combat zone"
+
+// ***** GOOD GUYS *****
+
+ship: {
+ name: Antares
+ design: Orion
+ loc: (0, 0, 0)
+ count: 1
+ iff: 1
+ player: 1
+ command_ai: 1
+}
+
+element: {
+ name: Bearcats,
+ design: Falcon,
+ count: 24,
+ maint_count: 4,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Mustangs,
+ design: Stormhawk,
+ count: 24,
+ maint_count: 4,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Lancers,
+ design: Thunderbolt,
+ count: 12,
+ maint_count: 2,
+ carrier: Antares,
+ iff: 1,
+}
+
+element: {
+ name: Taurus,
+ design: Zodiac,
+ count: 8,
+ maint_count: 2,
+ carrier: Antares,
+ iff: 1,
+}
+
+ship: {
+ name: Ryan,
+ design: Asher,
+ rloc: { ref: Antares, dex: 23e3 },
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Antares,
+}
+
+ship: {
+ name: Card,
+ design: Asher,
+ rloc: { ref: Antares, dex: 25e3 },
+ count: 1,
+ iff: 1,
+ command_ai: 0,
+ commander: Antares,
+}
+
+// ***** BAD GUYS *****
+
+ship: {
+ name: Goliath,
+ design: Goliath,
+ rloc: { ref: Antares, dex: 250e3, dex_var: 40e3 },
+ count: 1,
+ iff: 2,
+}
+
+element: {
+ name: Vampires,
+ design: Viper,
+ count: 16,
+ maint_count: 4,
+ carrier: Goliath,
+ iff: 2,
+}
+
+element: {
+ name: Zombies,
+ design: Razor,
+ count: 16,
+ maint_count: 4,
+ carrier: Goliath,
+ iff: 2,
+}
+
+element: {
+ name: Ghouls,
+ design: Cobra,
+ count: 16,
+ maint_count: 2,
+ carrier: Goliath,
+ iff: 2,
+}
+
+ship: {
+ name: Foxbat,
+ design: Wolf,
+ rloc: { ref: Goliath, dex: 23e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+ship: {
+ name: Hunter,
+ design: Wolf,
+ rloc: { ref: Goliath, dex: 25e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+ship: {
+ name: Kyren,
+ design: Baikal,
+ rloc: { ref: Goliath, dex: 33e3 },
+ count: 1,
+ iff: 2,
+ command_ai: 1,
+ commander: Goliath,
+}
+
+
+//
+// EVENT LIST:
+//
+
+event: {
+ id: 25,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Goliath,
+}
+
+event: {
+ id: 26,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Foxbat,
+}
+
+event: {
+ id: 27,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Hunter,
+}
+
+event: {
+ id: 28,
+ event: Message,
+ event_message: "",
+
+ trigger: Destroyed,
+ trigger_ship: Kyren,
+}
+
+event: {
+ id: 50,
+ event: Message,
+ sound: "Vox/Misc/M10-E50.ogg",
+ event_message: "The enemy carrier has been destroyed. Mission accomplished!",
+ event_ship: Antares,
+
+ trigger: Event,
+ trigger_param: 25,
+ delay: 5,
+}
+
+event: {
+ id: 60,
+ event: Message,
+ sound: "Vox/Misc/M10-E60.ogg",
+ event_message: "The enemy carrier has bugged out. Mission accomplished!",
+ event_ship: Antares,
+
+ trigger: Jump,
+ trigger_ship: Goliath,
+ delay: 5,
+}
+
+event: {
+ id: 99,
+ event: Exit,
+
+ trigger: "Event (ANY)",
+ trigger_param: (50, 60),
+ delay: 10,
+}
+
+
diff --git a/data/shatter/Missions/Missions.def b/data/shatter/Missions/Missions.def
new file mode 100644
index 0000000..b6a1718
--- /dev/null
+++ b/data/shatter/Missions/Missions.def
@@ -0,0 +1,137 @@
+MISSIONLIST
+
+mission: {
+ id: 1,
+ name: "01. Red Alert",
+ type: PATROL,
+ desc: "The long range reconnaissance ship AFS Vasquez "
+ "has failed to report in during a routine patrol of "
+ "Hegemony border space. Your element will patrol the "
+ "Aram sector for evidence of "
+ "the missing ship.",
+ start: "00/08:00:00",
+ system: Ostara,
+ region: Aram,
+ script: "01-Alert.def"
+}
+
+mission: {
+ id: 2,
+ name: "02. On Wings of Thunder",
+ type: ESCORT_STRIKE,
+ desc: "The Heracles is launching strike package Condor "
+ "to take out an enemy freighter before it can leave Loris space."
+ "Your element is assigned to escort the strike "
+ "package and protect it from enemy fighters.",
+ start: "01/11:00:00",
+ system: Loris,
+ region: Loris,
+ script: "02-Wings.def"
+}
+
+mission: {
+ id: 3,
+ name: "03. Honor Guard",
+ type: ESCORT_SHUTTLE,
+ desc: "Your element has been assigned to escort the diplomatic "
+ "shuttle from Telmera Starbase to Solus orbit, and then "
+ "through the Farcaster to Omane sector and Harmony Station.",
+ start: "02/18:10:00",
+ system: Solus,
+ region: Telmera,
+ script: "03-Honor.def"
+}
+
+mission: {
+ id: 4,
+ name: "04. A Line in the Sand",
+ type: STRIKE,
+ desc: "The Hegemony is operating an illegal mining operation in the "
+ "Tantalus sector of Haiche. Your element has been tasked with "
+ "destroying the support facilities for the mine.",
+ start: "03/09:05:00",
+ system: Haiche,
+ region: Haiche,
+ script: "04-Sand.def"
+}
+
+mission: {
+ id: 5,
+ name: "05. Execution is Everything",
+ type: ASSAULT,
+ desc: "A group of smugglers broke out of Solus impound three days "
+ "ago and reached Lornas asteroid belt this morning. Your "
+ "element is to sweep the asteroid field and find the "
+ "smugglers' ship.",
+ start: "04/19:20:00",
+ system: Renser,
+ region: Lornas,
+ script: "05-Execution.def"
+}
+
+mission: {
+ id: 6,
+ name: "06. Supression of Enemy Air Defense",
+ type: STRIKE,
+ desc: "A radical faction of the Radix Military has taken a Force "
+ "recon ship and her crew hostage at a military base in the "
+ "Shadow Canyon sector on Radix. We need you to take out the "
+ "SAM and AAA emplacements protecting the base.",
+ start: "05/10:34:00",
+ system: Radix,
+ region: "Shadow Canyon",
+ script: "06-SEAD.def"
+}
+
+mission: {
+ id: 7,
+ name: "07. Send Lawyers, Guns, and Money",
+ type: ESCORT_FREIGHT,
+ desc: "Your Berents-class frigate has been assigned to escort the freighters "
+ "Silver Stag and Golden Hart through hostile territory.",
+ start: "06/16:21:00",
+ system: Borova,
+ region: Tulkas,
+ script: "07-SLGAM.def"
+}
+
+mission: {
+ id: 8,
+ name: "08. A Matter of Focus",
+ type: PATROL,
+ desc: "An illegal drug cartel has set up major a distribution operation "
+ "in the Solus system. A major shipment is being brought in tonight. "
+ "Disable or destroy the smugglers before they can offload their cargo.",
+ start: "07/23:29:00",
+ system: Solus,
+ region: Solus,
+ script: "08-Focus.def"
+}
+
+mission: {
+ id: 9,
+ name: "09. Hounds and Hunters",
+ type: FLEET,
+ desc: "An enemy destroyer squadron has broken off from the main fleet "
+ "and entered the Paragon system. Your Spectre-class Task Force must "
+ "resolve this threat as quickly as possible and return to the main fleet.",
+ start: "08/09:34:00",
+ system: Paragon,
+ region: Paragon,
+ script: "09-Hounds.def"
+}
+
+mission: {
+ id: 10,
+ name: "10. Fiery the Angels Fell",
+ type: FLIGHT_OPS,
+ desc: "The Korian Affair has reached a crisis point. "
+ "The only hope of salvaging the treaty negotiations is for Force Second "
+ "Fleet to intercept the Dantari CVBG before the Korian faction has time "
+ "to react. The CV-70 Antares and her battle group will deploy in the Korius "
+ "sector and force the Dantari back to the negotiating table.",
+ start: "09/17:15:00",
+ system: Korius,
+ region: Korius,
+ script: "10-Angels.def"
+}
diff --git a/data/shatter/Multiplayer/D4.DEF b/data/shatter/Multiplayer/D4.DEF
new file mode 100644
index 0000000..a3e93a1
--- /dev/null
+++ b/data/shatter/Multiplayer/D4.DEF
@@ -0,0 +1,140 @@
+MISSION
+
+id: 3
+name: "Destroyer Duel"
+desc: "Small fleet engagement between opposing destroyer squadrons."
+type: "Patrol"
+system: "Janus"
+region: "Dante"
+
+objective: "Fleet Engagement - Engage the Destroyer Squadron led by DD-701 Clarke. Clear Dante orbit of hostile vessels."
+
+sitrep: "A rogue faction has taken command of the Clarke DETRON in the Dante sector. Accompanying the Clarke are the Destroyer/Escort Jackson, and the Berents-class Frigates Parker and Suffolk. You are in command of DETRON 40, led by DD-351 Wraith, and supported by the Nemesis and the Frigate Bosporus.\n \n Hostile actions by Force officers will not stand. You must drive this lesson home at all costs. Good luck."
+
+start: "82:34:00"
+
+element: {
+ name: "Wraith",
+ design: "Spectre",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Dante",
+ loc: (0, 10000, 0),
+}
+
+element: {
+ name: "Nemesis",
+ design: "Spectre",
+ commander: "Wraith",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (45152, -320, -500),
+}
+
+element: {
+ name: "Bosporus",
+ design: "Berents",
+ commander: "Wraith",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: false,
+ region: "Dante",
+ loc: (-39475, -836, 1200),
+}
+
+element: {
+ name: "Barth",
+ design: "Berents",
+ commander: "Wraith",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: false,
+ region: "Dante",
+ loc: (64000, -13000, 0),
+
+ objective: { cmd: Escort, tgt: "Nemesis" },
+}
+
+element: {
+ name: "Clarke",
+ design: "Asher",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Dante",
+ loc: (-20000, -145000, 1000),
+ head: 3.142,
+}
+
+element: {
+ name: "Jackson",
+ design: "Asher",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Dante",
+ loc: (10000, -135000, 700),
+ head: 3.142,
+}
+
+element: {
+ name: "Parker",
+ design: "Berents",
+ commander: "Clarke",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: false,
+ region: "Dante",
+ loc: (-25000, -135000, 1000),
+ head: 3.142,
+}
+
+element: {
+ name: "Suffolk",
+ design: "Berents",
+ commander: "Clarke",
+ mission: "Escort",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: false,
+ region: "Dante",
+ loc: (45000, -135000, 0),
+ head: 3.142,
+}
+
+// EOF
diff --git a/data/shatter/Multiplayer/Thrash.def b/data/shatter/Multiplayer/Thrash.def
new file mode 100644
index 0000000..fc07277
--- /dev/null
+++ b/data/shatter/Multiplayer/Thrash.def
@@ -0,0 +1,97 @@
+MISSION
+
+id: 2
+name: "Fighter Thrash Pit"
+type: "Patrol"
+desc: "Multiple spaceborne fighters locked in team-vs-team action."
+system: "Kolchev"
+region: "Kolchev"
+
+objective: "* Eliminate all enemy fighters.\n* Protect friendly strike ships."
+
+sitrep: "Get ready to rumble! This is a team-vs-team scenario with six ships on each side. "
+ "The Blue team has four Stormhawk multirole fighters and two Thunderbolt attack ships, "
+ "while the Red team has four Viper interceptors and two Avenger heavy fighters.\n\n"
+ "Your mission is to eliminate the opposition and protect your team mates. All ships "
+ "have three lives, so be sure to watch your back!"
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: "Alpha",
+ design: "Stormhawk",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 4,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Kolchev",
+ loc: (0, 0, 0),
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Escort, tgt: "Bravo" },
+}
+
+element: {
+ name: "Bravo",
+ design: "Thunderbolt",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 2,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Kolchev",
+ loc: (23000, 4000, 0),
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Narom",
+ design: "Viper",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 4,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Kolchev",
+ loc: (27000, -34000, 0),
+ head: 179,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+
+ objective: { cmd: Escort, tgt: "Nagal" },
+}
+
+element: {
+ name: "Nagal",
+ design: "Avenger",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 2,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Kolchev",
+ loc: (22000, -46000, 0),
+ head: 179,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+// EOF
diff --git a/data/shatter/Multiplayer/hawkmatch.def b/data/shatter/Multiplayer/hawkmatch.def
new file mode 100644
index 0000000..71d4786
--- /dev/null
+++ b/data/shatter/Multiplayer/hawkmatch.def
@@ -0,0 +1,182 @@
+MISSION
+
+id: 1
+name: "Hawk Match"
+desc: "Four-way deathmatch with Stormhawk fighters in Borova Sector."
+type: Patrol
+system: Borova
+region: Borova
+
+degrees: true
+
+objective: "Kill or be killed!"
+
+sitrep: "Four-way deathmatch with Stormhawk fighters in Borova Sector. "
+ "Each fighter has three lives. You will be rearmed with missiles "
+ "and decoys after each respawn.\n \n Good Luck!"
+
+start: "33:00:00"
+
+element: {
+ name: "Hawk",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: Borova,
+ loc: (0, 15000, 0),
+ head: 0,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Falcon",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: Borova,
+ loc: (15000, 0, 0),
+ head: 271,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Raptor",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 3,
+ playable: true,
+ region: Borova,
+ loc: (0, -15000, 0),
+ head: 180,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+element: {
+ name: "Condor",
+ design: "Stormhawk",
+ mission: "Patrol",
+
+ intel: "Tracked",
+ count: 1,
+ command_ai:1,
+ iff: 4,
+ playable: true,
+ region: Borova,
+ loc: (-15000, 0, 0),
+ head: 90,
+ respawns: 2,
+
+ loadout: { ship: -1, name: "ACM Short Range" },
+}
+
+// teams dead:
+
+event: {
+ id: 1
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 1)
+}
+
+event: {
+ id: 2
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 2)
+}
+
+event: {
+ id: 3
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 3)
+}
+
+event: {
+ id: 4
+ event: Message
+ trigger: "Ships Left"
+ trigger_param: (0, 4)
+}
+
+// victory combinations:
+
+event: {
+ id: 10
+ delay: 1
+ event: Message
+ event_message: "HAWK WINS!"
+ trigger: "Event (ALL)"
+ trigger_param: (2,3,4)
+}
+
+event: {
+ id: 20
+ delay: 1
+ event: Message
+ event_message: "FALCON WINS!"
+ trigger: "Event (ALL)"
+ trigger_param: (1,3,4)
+}
+
+event: {
+ id: 30
+ delay: 1
+ event: Message
+ event_message: "RAPTOR WINS!"
+ trigger: "Event (ALL)"
+ trigger_param: (1,2,4)
+}
+
+event: {
+ id: 40
+ delay: 1
+ event: Message
+ event_message: "CONDOR WINS!"
+ trigger: "Event (ALL)"
+ trigger_param: (1,2,3)
+}
+
+// exit conditions:
+
+
+event: {
+ id: 50
+ event: Exit
+ delay: 10
+ trigger: "Event (ANY)"
+ trigger_param: (10,20,30,40)
+ event_target: "Thrash.def"
+}
+
+event: {
+ id: 90
+ time: 900.0 // fifteen minute time limit
+ event: Exit
+ trigger: "Time"
+ event_target: "Thrash.def"
+}
+
+
+// EOF
diff --git a/data/shatter/Multiplayer/wargames.def b/data/shatter/Multiplayer/wargames.def
new file mode 100644
index 0000000..37de971
--- /dev/null
+++ b/data/shatter/Multiplayer/wargames.def
@@ -0,0 +1,446 @@
+MISSION
+
+id: 4
+name: "War Games"
+desc: "Fleet war game scenario designed for the persistent multiplayer server mode."
+type: "Patrol"
+system: "Janus"
+region: "Janek"
+
+objective: "Unspecified"
+
+sitrep: "Welcome to the Force:Space fleet war game exercises in Janus System. For this scenario, two equal star fleets will face off in unlimited combat. The entire system is in bounds for this exercise.\n \n Fleet 1 (BLUE) consists of the Archon CVBG including twenty Stormhawk fighters, and Spectre-Class DESRON 43 'Shadow'.\n \n Fleet 2 (RED) includes the Titan CVBG with twenty Stormhawk fighters, and Spectre-Class DESRON 45 'Warlock'.\n \n The goal of the exercise is to destroy the enemy carrier. The exercise will end when either the Archon or the Titan has been destroyed."
+
+start: "33:00:00"
+
+degrees: true
+
+element: {
+ name: "Archon",
+ design: "Orion",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ player: 1,
+ playable: true,
+ region: "Janek",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Stallions",
+ design: "Stormhawk",
+ carrier: "Archon",
+ commander: "Archon",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 20,
+ iff: 1,
+ region: "Janek",
+ loc: (5000, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Stalwart",
+ design: "Courageous",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (22000, 6000, 0),
+}
+
+element: {
+ name: "Gerson",
+ design: "Asher",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Simmons",
+ design: "Asher",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Janek",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Shadow",
+ design: "Spectre",
+ commander: "Archon",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Necromancer",
+ design: "Spectre",
+ commander: "Shadow",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 1,
+ playable: true,
+ region: "Dante",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Titan",
+ design: "Orion",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (0, 0, 0),
+}
+
+element: {
+ name: "Chargers",
+ design: "Stormhawk",
+ carrier: "Titan",
+ commander: "Titan",
+ mission: "Flight Ops",
+
+ intel: "Secret",
+ count: 20,
+ iff: 2,
+ region: "Alystra",
+ loc: (5000, 0, 0),
+
+ loadout: { ship: -1, name: "ACM Medium Range" },
+}
+
+element: {
+ name: "Defender",
+ design: "Courageous",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (22000, 6000, 0),
+}
+
+element: {
+ name: "Reynolds",
+ design: "Asher",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Hawker",
+ design: "Asher",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Alystra",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Warlock",
+ design: "Spectre",
+ commander: "Titan",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Navara",
+ loc: (-25000, -2000, 0),
+}
+
+element: {
+ name: "Merlin",
+ design: "Spectre",
+ commander: "Warlock",
+ mission: "Fleet",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 2,
+ playable: true,
+ region: "Navara",
+ loc: (33000, -20000, 0),
+}
+
+element: {
+ name: "Janek-Ilon",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Janek",
+ loc: (80000, -50000, 0),
+
+ objective: { cmd: Vector, tgt: "Ilon-Janek" },
+}
+
+element: {
+ name: "Ilon-Janek",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Ilon",
+ loc: (50000, -40000, 0),
+
+ objective: { cmd: Vector, tgt: "Janek-Ilon" },
+}
+
+element: {
+ name: "Janek-Alystra",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Janek",
+ loc: (-80000, 60000, 0),
+
+ objective: { cmd: Vector, tgt: "Alystra-Janek" },
+}
+
+element: {
+ name: "Alystra-Janek",
+ design: "Farcaster",
+ mission: "Misc",
+
+ intel: "Secret",
+ count: 1,
+ command_ai:1,
+ iff: 0,
+ playable: false,
+ region: "Alystra",
+ loc: (-50000, -40000, 0),
+
+ objective: { cmd: Vector, tgt: "Janek-Alystra" },
+}
+
+event: {
+ id: 1,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "ARCHON DESTROYED - RED TEAM VICTORY!",
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 2,
+ time: 0.0,
+ delay: 1.0,
+ event: Damage,
+ event_ship: "Stalwart",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 3,
+ time: 0.0,
+ delay: 2.0,
+ event: Damage,
+ event_ship: "Gerson",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 4,
+ time: 0.0,
+ delay: 3.0,
+ event: Damage,
+ event_ship: "Simmons",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 5,
+ time: 0.0,
+ delay: 4.0,
+ event: Damage,
+ event_ship: "Shadow",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 6,
+ time: 0.0,
+ delay: 5.0,
+ event: Damage,
+ event_ship: "Necromancer",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Archon",
+}
+
+event: {
+ id: 7,
+ time: 0.0,
+ delay: 0.0,
+ event: Message,
+ event_message: "TITAN DESTROYED - BLUE TEAM VICTORY!",
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 8,
+ time: 0.0,
+ delay: 1.0,
+ event: Damage,
+ event_ship: "Defender",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 9,
+ time: 0.0,
+ delay: 2.0,
+ event: Damage,
+ event_ship: "Reynolds",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 10,
+ time: 0.0,
+ delay: 3.0,
+ event: Damage,
+ event_ship: "Hawker",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 11,
+ time: 0.0,
+ delay: 4.0,
+ event: Damage,
+ event_ship: "Warlock",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 12,
+ time: 0.0,
+ delay: 5.0,
+ event: Damage,
+ event_ship: "Merlin",
+ event_param: 1000000,
+ event_chance: 100,
+ trigger: "Destroyed",
+ trigger_ship: "Titan",
+}
+
+event: {
+ id: 13,
+ time: 0.0,
+ delay: 10.0,
+ event: Exit,
+ event_message: "Mission Exit",
+ event_chance: 100,
+ trigger: "Event (ANY)",
+ trigger_param: (1, 7),
+}
+
+// EOF
diff --git a/data/shatter/Screens/AudDlg.frm b/data/shatter/Screens/AudDlg.frm
new file mode 100644
index 0000000..f18b128
--- /dev/null
+++ b/data/shatter/Screens/AudDlg.frm
@@ -0,0 +1,298 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: AudDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Options",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: Video
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: Audio
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: Controls
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: Gameplay
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "Mod Config"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: (0.2, 0.3, 0.3, 0.2, 0.3, 0.3, 0.2)
+
+ y_mins: ( 20, 25, 25, 25, 25, 25, 25, 25, 20)
+ y_weights: (0.3, 0, 0, 0, 0, 0, 0, 0, 0.7)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ text: "Effects Volume:"
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ text: "GUI Volume:"
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: label
+ text: "Warning Volume:"
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: label
+ text: "Vox Volume:"
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 105
+ pid: 300
+ type: label
+ text: "Menu Music:"
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 106
+ pid: 300
+ type: label
+ text: "In Game Music:"
+ cells: (1,7,1,1)
+ },
+
+ defctrl: {
+ cell_insets: (0,0,0,16)
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+
+ active_color: (250, 250, 100)
+ back_color: ( 41, 41, 41)
+ border: false
+ active: true
+ },
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: slider
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: slider
+ cells: (2,2,1,1)
+ },
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: slider
+ cells: (2,3,1,1)
+ },
+
+ ctrl: {
+ id: 204
+ pid: 300
+ type: slider
+ cells: (2,4,1,1)
+ },
+
+ ctrl: {
+ id: 205
+ pid: 300
+ type: slider
+ cells: (2,6,1,1)
+ },
+
+ ctrl: {
+ id: 206
+ pid: 300
+ type: slider
+ cells: (2,7,1,1)
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/AwardDlg.frm b/data/shatter/Screens/AwardDlg.frm
new file mode 100644
index 0000000..a1048b0
--- /dev/null
+++ b/data/shatter/Screens/AwardDlg.frm
@@ -0,0 +1,145 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: AwardDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 50, 512, 50, 10)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: (28, 25, 20, 5, 30, 256, 10, 50, 45)
+ y_weights: ( 0, 0, 0, 1, 0, 0, 0, 2, 0)
+ },
+
+ // background images:
+
+/***
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,6),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,3,6),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+***/
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Congratulations",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ },
+
+ // award name:
+
+ ctrl: {
+ id: 203,
+ type: label,
+ cells: (2,4,1,1)
+ align: center
+ transparent: true
+ border: false
+ font: Limerick18
+ fore_color: (255,255,255)
+ back_color: ( 10, 10, 10)
+ style: 0x0040
+ },
+
+ // award insignia:
+
+ ctrl: {
+ id: 202,
+ type: image,
+ cells: (2,5,1,1)
+ align: center
+ transparent: true
+ border: false
+ },
+
+ // award description or info:
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (2,7,1,1)
+ align: left
+ transparent: true
+ border: false
+ font: Verdana
+ fore_color: (0,0,0)
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (50,5,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ pid: 0
+ type: button
+ text: Close
+ cells: (3,8,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/CmdDlg.frm b/data/shatter/Screens/CmdDlg.frm
new file mode 100644
index 0000000..9dd3089
--- /dev/null
+++ b/data/shatter/Screens/CmdDlg.frm
@@ -0,0 +1,435 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARSHATTER
+// File: CmdDlg.frm
+//
+// John DiCamillo
+// Copyright © 1997-2001. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 640, 480),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: (160, 160, 150),
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "std_B_640.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: false,
+ transparent: true,
+ align: left,
+ },
+
+ ctrl: {
+ id: 1000,
+ type: label,
+ rect: (7, 6, 600, 20),
+ text: "Operational Command",
+ },
+
+ ctrl: {
+ id: 1001,
+ type: label,
+ rect: (20, 50, 600, 50),
+ transparent: false,
+ back_color: (69, 69, 67),
+ border_color: ( 4, 4, 4),
+ text: " ",
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 55, 300, 20),
+ text: "Operation Title Goes Here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (420, 55, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 75, 400, 20),
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (440, 75, 180, 20),
+ align: right,
+ },
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (20, 120, 130, 17),
+ text: "Orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (20, 145, 130, 17),
+ text: "Theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (20, 170, 130, 17),
+ text: "Forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (20, 195, 130, 17),
+ text: "Intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (20, 220, 130, 17),
+ text: "Missions"
+ },
+
+ defctrl: { sticky: false },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (350, 445, 130, 17),
+ text: "Save",
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (490, 445, 130, 17),
+ text: "Cancel",
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 800, 600),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "cmd_800.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 50, 300, 20),
+ text: "Operation Title Goes Here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (575, 50, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 75, 450, 25),
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (575, 75, 200, 25),
+ align: right,
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (25, 130, 130, 17),
+ text: "Orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (25, 155, 130, 17),
+ text: "Theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (25, 180, 130, 17),
+ text: "Forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (25, 205, 130, 17),
+ text: "Intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (25, 230, 130, 17),
+ text: "Missions"
+ },
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: false,
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (500, 558, 130, 17),
+ text: Save,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (640, 558, 130, 17),
+ text: Exit,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 1024, 768),
+ screen_width: 1024,
+ screen_height: 768,
+
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "cmd_1024.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (25, 55, 300, 20),
+ text: "Operation Title Goes Here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ rect: (800, 55, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 80, 450, 25),
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (800, 80, 200, 25),
+ align: right,
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ sticky: true,
+ font: Terminal,
+ fore_color: (4, 4, 4),
+ border: false,
+ simple: false,
+
+ standard_image: btn_130x17_0,
+ activated_image: btn_130x17_1,
+ transition_image: btn_130x17_2,
+ },
+
+ ctrl: {
+ id: 100,
+ type: button,
+ rect: (25, 155, 130, 17),
+ text: "Orders"
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: (25, 180, 130, 17),
+ text: "Theater"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: (25, 205, 130, 17),
+ text: "Forces"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (25, 230, 130, 17),
+ text: "Intel"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (25, 255, 130, 17),
+ text: "Missions"
+ },
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: false,
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (730, 730, 130, 17),
+ text: Save,
+ sticky: false,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (870, 730, 130, 17),
+ text: Exit,
+ sticky: false,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ },
+}
+
diff --git a/data/shatter/Screens/CmdForceDlg.frm b/data/shatter/Screens/CmdForceDlg.frm
new file mode 100644
index 0000000..0c7b1dd
--- /dev/null
+++ b/data/shatter/Screens/CmdForceDlg.frm
@@ -0,0 +1,358 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdForceDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Operational Command",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: "Operation Title Goes Here",
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: Orders
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: Theater
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: Forces
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: Intel
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: Missions
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 100, 100, 25)
+ y_weights: ( 0, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 0
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 400,
+ type: combo,
+ cells: (0,0,1,1)
+ cell_insets: (0,0,0,0)
+ fixed_height: 18
+
+ back_color: ( 61, 61, 59),
+ border_color: (255, 255, 255),
+ active_color: ( 92, 92, 92),
+
+ simple: true,
+ text_align: left,
+ transparent: false,
+ },
+
+ ctrl: {
+ id: 401,
+ type: list,
+ cells: (0,1,1,1)
+ back_color: ( 61, 61, 59),
+ border_color: ( 92, 92, 92),
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: "Combat Groups",
+ width: 330,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 402,
+ type: list,
+ cells: (0,2,1,1)
+ back_color: ( 61, 61, 59),
+ border_color: ( 92, 92, 92),
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: NAME,
+ width: 90,
+ align: left,
+ color: (192,192,192),
+ sort: 0 },
+
+ column: {
+ title: VALUE,
+ width: 320,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 403,
+ type: button,
+ cells: (0,3,1,1)
+ text: Transfer
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+ fixed_width: 150
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Save
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Exit
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/shatter/Screens/CmdIntelDlg.frm b/data/shatter/Screens/CmdIntelDlg.frm
new file mode 100644
index 0000000..a4ed701
--- /dev/null
+++ b/data/shatter/Screens/CmdIntelDlg.frm
@@ -0,0 +1,364 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdIntelDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 250, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Operational Command",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: "Operation Title Goes Here",
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: Orders
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: Theater
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: Forces
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: Intel
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: Missions
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 250, 10, 256)
+ x_weights: ( 1, 0, 0)
+
+ y_mins: ( 20, 80, 256, 10, 20)
+ y_weights: ( 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 441
+ type: label
+ text: "Newsfeed"
+ cells: (0,0,3,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 401
+ type: list
+ cells: (0,1,3,1)
+ back_color: ( 69, 69, 67),
+ border_color: ( 4, 4, 4),
+ style: 0x02,
+ scroll_bar: 2,
+ show_headings: true,
+
+ column: { title: "", width: 20, align: center,sort: 0 },
+ column: { title: "DATE", width: 110, align: left, sort: 0 },
+ column: { title: "TITLE", width: 160, align: left, sort: 0 },
+ column: { title: "LOC", width: 80, align: left, sort: 0 },
+ column: { title: "SOURCE", width: 60, align: left, sort: 0 },
+ },
+
+ ctrl: {
+ id: 402
+ type: text,
+ cells: (0,2,1,3)
+ cell_insets: (0,0,0,0)
+ back_color: ( 69, 69, 67),
+ border_color: ( 4, 4, 4),
+ style: 0x02,
+ scroll_bar: 2,
+ }
+
+ ctrl: {
+ id: 403
+ type: image
+ cells: (2,2,1,1)
+ picture: "def_image.pcx"
+ style: 0x02
+ fixed_width: 256
+ fixed_height: 256
+ }
+
+ ctrl: {
+ id: 404
+ type: label
+ cells: (0,2,3,3)
+ cell_insets: (0,0,0,0)
+ style: 0x02
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 405
+ type: button
+ cells: (2,4,1,1)
+ text: Play
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Save
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Exit
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/shatter/Screens/CmdMissionsDlg.frm b/data/shatter/Screens/CmdMissionsDlg.frm
new file mode 100644
index 0000000..2e95b4b
--- /dev/null
+++ b/data/shatter/Screens/CmdMissionsDlg.frm
@@ -0,0 +1,351 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdMissionsDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Operational Command",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: "Operation Title Goes Here",
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: Orders
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: Theater
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: Forces
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: Intel
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: Missions
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 20, 100, 20. 100, 25)
+ y_weights: ( 0, 1, 0, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 441
+ type: label
+ text: "Mission Roster"
+ cells: (0,0,1,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 401
+ type: list
+ cells: (0,1,1,1)
+
+ style: 0x02
+ scroll_bar: 2
+ show_headings: true
+
+ column: { title: "MISSION", width: 150, align: left, sort: 0 }
+ column: { title: "TYPE", width: 150, align: left, sort: 0 }
+ column: { title: "START", width: 130, align: right, sort: 0 }
+ },
+
+ ctrl: {
+ id: 442
+ type: label
+ text: "Objectives"
+ cells: (0,2,1,1)
+ cell_insets: (0,0,0,0)
+ font: Limerick12
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ style: 0x0040
+ transparent: true
+ }
+
+ ctrl: {
+ id: 402
+ type: text
+ cells: (0,3,1,1)
+ style: 0x02
+ scroll_bar: 2
+ },
+
+ ctrl: {
+ id: 403,
+ type: button,
+ text: Accept,
+ cells: (0,4,1,1)
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+ fixed_width: 150
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Save
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Exit
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/shatter/Screens/CmdMsgDlg.frm b/data/shatter/Screens/CmdMsgDlg.frm
new file mode 100644
index 0000000..f62e2b9
--- /dev/null
+++ b/data/shatter/Screens/CmdMsgDlg.frm
@@ -0,0 +1,76 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdMsgDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,240)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 10, 80, 35),
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ text: "Message Title",
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (180, 195, 280, 120),
+ text: "Message Text",
+ align: left
+ font: Verdana
+ cells: (1,3,3,1)
+ cell_insets: (0,0,0,20)
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ cells: (3,4,1,1)
+ text: Close
+ }
+}
+
diff --git a/data/shatter/Screens/CmdOrdersDlg.frm b/data/shatter/Screens/CmdOrdersDlg.frm
new file mode 100644
index 0000000..be66d7e
--- /dev/null
+++ b/data/shatter/Screens/CmdOrdersDlg.frm
@@ -0,0 +1,264 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdOrdersDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Operational Command",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: "Operation Title Goes Here",
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: Orders
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: Theater
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: Forces
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: Intel
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: Missions
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 400
+ pid: 0
+ type: text
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ style: 0x02,
+ scroll_bar: 2,
+ text: "Orders and objectives for the campaign go here...",
+ fixed_height: 0
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Save
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Exit
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/shatter/Screens/CmdTheaterDlg.frm b/data/shatter/Screens/CmdTheaterDlg.frm
new file mode 100644
index 0000000..610ecdf
--- /dev/null
+++ b/data/shatter/Screens/CmdTheaterDlg.frm
@@ -0,0 +1,356 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdTheaterDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+
+ texture: "Frame1.pcx"
+ margins: (1,1,64,8)
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 100, 10)
+ x_weights: ( 0, 1, 0, 2, 2, 2, 0)
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,5,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,3,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (4,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Operational Command",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,5,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 100, 20, 100, 20)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 5, 20, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 700
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ cells: (1,1,1,1)
+ text: "Operation Title Goes Here",
+ font: Limerick12
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ cells: (1,3,1,1)
+ text: "PLAYER GROUP",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (3,3,1,1)
+ align: right,
+ },
+
+ // tab buttons:
+
+ ctrl: {
+ id: 600
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,1,1),
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10)
+ x_weights: ( 1)
+
+ y_mins: ( 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ pid: 600
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ text: Orders
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 101
+ type: button
+ text: Theater
+ cells: (0,1,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: button
+ text: Forces
+ cells: (0,2,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: button
+ text: Intel
+ cells: (0,3,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ type: button
+ text: Missions
+ cells: (0,4,1,1)
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 900
+ pid: 0
+ type: panel
+ transparent: true
+ fixed_height: 0
+
+ cells: (3,5,3,1)
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 100, 100, 100, 100, 25, 25)
+ x_weights: ( 1, 1, 1, 2, 0, 0)
+
+ y_mins: ( 25, 100)
+ y_weights: ( 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ font: Verdana
+ back_color: ( 41, 41, 41)
+ fore_color: (255,255,255)
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ bevel_width: 6
+ cell_insets: (0,0,0,10)
+ pid: 900
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 400
+ type: map
+ cells: (0,1,6,1)
+ cell_insets: (0,0,0,0)
+ style: 2
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 6
+ border: false
+ cell_insets: (0,10,0,0)
+ fore_color: (0,0,0)
+ font: Limerick12
+ sticky: true,
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 401,
+ type: button,
+ cells: (0,0,1,1)
+ text: "Galaxy"
+ }
+
+ ctrl: {
+ id: 402,
+ type: button,
+ cells: (1,0,1,1)
+ text: "System"
+ }
+
+ ctrl: {
+ id: 403,
+ type: button,
+ cells: (2,0,1,1)
+ text: "Sector"
+ }
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ margins: (0,0,0,0)
+ font: Verdana,
+ align: center,
+ sticky: false
+ fixed_height: 19
+ cell_insets: (6,0,0,0)
+ },
+
+ ctrl: {
+ id: 410,
+ type: button,
+ cells: (4,0,1,1)
+ text: "+",
+ },
+
+ ctrl: {
+ id: 411,
+ type: button,
+ cells: (5,0,1,1)
+ text: "-",
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Save
+ cells: (4,6,1,1),
+ }
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Exit
+ cells: (5,6,1,1),
+ }
+}
diff --git a/data/shatter/Screens/CmpCompleteDlg.frm b/data/shatter/Screens/CmpCompleteDlg.frm
new file mode 100644
index 0000000..f99de81
--- /dev/null
+++ b/data/shatter/Screens/CmpCompleteDlg.frm
@@ -0,0 +1,85 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmpCompleteDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2005. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+ font: Limerick12,
+
+ layout: {
+ x_mins: (0)
+ x_weights: (1)
+
+ y_mins: (0, 0, 0)
+ y_weights: (1, 6, 2)
+ }
+
+ // background images:
+
+ defctrl: {
+ fore_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ }
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: LoadDlg1
+ cells: (0,0,1,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 100
+ type: image
+ cells: (0,1,1,1)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 400
+ type: background
+ texture: LoadDlg2
+ cells: (0,2,1,1)
+ margins: (2,248,48,2)
+ hide_partial: false
+
+ layout: {
+ x_mins: (20, 100, 100, 20)
+ x_weights: ( 0, 1, 0, 0)
+
+ y_mins: (20, 20, 30)
+ y_weights: ( 1, 0, 0)
+ }
+ }
+
+ // close button:
+
+ ctrl: {
+ id: 1
+ pid: 400
+ type: button
+ text: Close
+
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fixed_height: 19
+
+ cells: (2,1,1,1)
+ }
+}
diff --git a/data/shatter/Screens/CmpLoadDlg.frm b/data/shatter/Screens/CmpLoadDlg.frm
new file mode 100644
index 0000000..25861c5
--- /dev/null
+++ b/data/shatter/Screens/CmpLoadDlg.frm
@@ -0,0 +1,89 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmpLoadDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2005. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0)
+ fore_color: (255, 255, 255)
+ font: Limerick12,
+
+ layout: {
+ x_mins: (0)
+ x_weights: (1)
+
+ y_mins: (0, 0, 0)
+ y_weights: (2, 1, 3)
+ },
+
+ // background images:
+
+ defctrl: {
+ fore_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: LoadDlg1
+ cells: (0,0,1,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 100
+ type: image
+ cells: (0,1,1,1)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 400
+ type: background
+ texture: LoadDlg2
+ cells: (0,2,1,1)
+ margins: (2,248,48,2)
+ hide_partial: false
+
+ layout: {
+ x_mins: (30, 150, 30)
+ x_weights: ( 1, 1, 1)
+
+ y_mins: (20, 20, 20, 20)
+ y_weights: ( 1, 1, 1, 3)
+ }
+ },
+
+
+ ctrl: {
+ id: 101
+ pid: 400
+ type: label,
+ cells: (1,1,1,1)
+ text: "",
+ font: Verdana
+ align: center
+ transparent: true
+ },
+
+ ctrl: {
+ id: 102
+ pid: 400
+ type: slider
+ cells: (1,2,1,1)
+
+ active_color: (255, 255, 160)
+ back_color: ( 21, 21, 21)
+ border: true
+ transparent: false
+ fixed_height: 10
+ },
+}
+
diff --git a/data/shatter/Screens/CmpSceneDlg.frm b/data/shatter/Screens/CmpSceneDlg.frm
new file mode 100644
index 0000000..3f3a264
--- /dev/null
+++ b/data/shatter/Screens/CmpSceneDlg.frm
@@ -0,0 +1,31 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmpSceneDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2005. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: (0,0,0)
+
+ layout: {
+ x_mins: (0)
+ x_weights: (1)
+
+ y_mins: (0, 200, 0)
+ y_weights: (1, 6, 1)
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (0,1,1,1)
+ hide_partial: false
+ fore_color: (0,0,0)
+ back_color: (0,0,0)
+ cell_insets: (0,0,0,0)
+ }
+}
diff --git a/data/shatter/Screens/CmpSelectDlg.frm b/data/shatter/Screens/CmpSelectDlg.frm
new file mode 100644
index 0000000..ef7debd
--- /dev/null
+++ b/data/shatter/Screens/CmpSelectDlg.frm
@@ -0,0 +1,214 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnSelectDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 1, 1, 0, 3, 3, 3, 0),
+
+ y_mins: (28, 25, 20, 52, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Dynamic Campaigns",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ cells: (1,3,6,3)
+ cell_insets: (10,10,14,54)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 70, 20, 50, 50, 50)
+ x_weights: ( 0, 0, 0, 0, 1, 1, 1)
+
+ y_mins: (40, 25, 100, 30)
+ y_weights: ( 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ font: Limerick12
+ fixed_width: 0
+ fixed_height: 19
+ cell_insets: (0,5,10,0)
+ margins: (10,10,0,0)
+ fore_color: (0,0,0)
+ transparent: false
+ style: 0
+ pid: 300
+ }
+
+ ctrl: {
+ id: 100
+ type: button
+ cells: (0,0,1,1)
+ text: New
+ },
+
+ ctrl: {
+ id: 101
+ type: button
+ cells: (1,0,1,1)
+ text: Saved
+ },
+
+ ctrl: {
+ id: 102
+ type: button
+ cells: (0,3,1,1)
+ text: Delete
+ },
+
+ defctrl: {
+ fore_color: (255,255,255)
+ back_color: (0,0,0)
+ bevel_width: 0
+ fixed_height: 0
+ align: left
+ transparent: true
+ style: 0x0040
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 901,
+ type: label,
+ cells: (0,1,3,1)
+ text: "Campaign"
+ }
+
+ ctrl: {
+ id: 902,
+ type: label,
+ cells: (4,1,3,1)
+ text: "Description",
+ }
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ font: Verdana,
+ back_color: ( 69, 69, 67),
+ fore_color: (255,255,255),
+ style: 0x02
+ scroll_bar: 2
+
+ texture: Panel
+ margins: (12,12,12,0)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 201
+ type: list
+ cells: (0,2,3,1)
+ line_height: 100,
+
+ column: {
+ title: Campaigns,
+ width: 252,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 200
+ type: text
+ cells: (4,2,3,1)
+ font: Verdana
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ texture: ""
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/shatter/Screens/ConfirmDlg.frm b/data/shatter/Screens/ConfirmDlg.frm
new file mode 100644
index 0000000..0452452
--- /dev/null
+++ b/data/shatter/Screens/ConfirmDlg.frm
@@ -0,0 +1,79 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ConfirmDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,280)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 30, 80, 35),
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "Are You Sure?"
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ }
+
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "Are you sure you want to take this action?"
+ align: left
+ font: Verdana
+ cells: (1,2,3,1)
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ cells: (2,4,1,1)
+ text: "OK"
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ cells: (3,4,1,1)
+ text: "Cancel"
+ }
+}
diff --git a/data/shatter/Screens/CtlDlg.frm b/data/shatter/Screens/CtlDlg.frm
new file mode 100644
index 0000000..69070d5
--- /dev/null
+++ b/data/shatter/Screens/CtlDlg.frm
@@ -0,0 +1,475 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Options",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: Video
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: Audio
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: Controls
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: Gameplay
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "Mod Config"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: (10, 90, 90, 90, 90, 20, 80, 120, 10)
+ x_weights: ( 2, 3, 3, 3, 3, 2, 3, 3, 2)
+
+ y_mins: (20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 20)
+ y_weights: ( 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12,
+ align: left
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ bevel_width: 6
+ margins: (10,10,0,0)
+ cell_insets: (2,3,0,6)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: button
+ text: " Flight"
+ cells: (1,1,1,1)
+ cell_insets: (0,3,0,6)
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: button
+ text: " Wep"
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: button
+ text: " View"
+ cells: (3,1,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: button
+ text: " Misc"
+ cells: (4,1,1,1)
+ cell_insets: (2,0,0,6)
+ },
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 41, 41, 41)
+ simple: true
+ bevel_width: 3
+ text_align: left
+ cell_insets: (0,0,0,0)
+
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ sticky: false
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: list
+ cells: (1,2,4,10)
+
+ style: 0x02
+ scroll_bar: 2
+ show_headings: true
+ transparent: false
+
+ column: {
+ title: COMMAND
+ width: 160
+ align: left
+ sort: 0 },
+
+ column: {
+ title: KEY
+ width: 197
+ align: left
+ sort: 0 }
+ }
+
+
+ defctrl: {
+ transparent: true
+ }
+
+ ctrl: {
+ id: 110
+ pid: 300
+ type: label
+ text: "Control Style:"
+ cells: (6,1,1,1)
+ }
+
+ ctrl: {
+ id: 111
+ pid: 300
+ type: label
+ text: "Joystick:"
+ cells: (6,2,1,1)
+ }
+
+ ctrl: {
+ id: 112
+ pid: 300
+ type: label
+ text: "Throttle:"
+ cells: (6,3,1,1)
+ }
+
+ ctrl: {
+ id: 113
+ pid: 300
+ type: label
+ text: "Rudder:"
+ cells: (6,4,1,1)
+ }
+
+ ctrl: {
+ id: 114
+ pid: 300
+ type: label
+ text: "Sensitivity:"
+ cells: (6,5,1,1)
+ }
+
+ ctrl: {
+ id: 115
+ pid: 300
+ type: label
+ text: "Joy Axis:"
+ cells: (6,6,1,1)
+ }
+
+ ctrl: {
+ id: 411
+ pid: 300
+ type: label
+ text: "Mouse:"
+ cells: (6,8,1,1)
+ }
+
+ ctrl: {
+ id: 414
+ pid: 300
+ type: label
+ text: "Sensitivity:"
+ cells: (6,9,1,1)
+ }
+
+ ctrl: {
+ id: 415
+ pid: 300
+ type: label
+ text: "Inverted:"
+ cells: (6,10,1,1)
+ }
+
+ defctrl: {
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ cell_insets: (0,0,0,5)
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ }
+
+ ctrl: {
+ id: 210
+ pid: 300
+ type: combo
+ cells: (7,1,1,1)
+
+ item: "Aircraft",
+ item: "Spacecraft",
+ }
+
+ ctrl: {
+ id: 211
+ pid: 300
+ type: combo
+ cells: (7,2,1,1)
+
+ item: "Disable",
+ item: "Joystick 1",
+ item: "Joystick 2",
+ item: "Both"
+ }
+
+ ctrl: {
+ id: 212
+ pid: 300
+ type: combo
+ cells: (7,3,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 213
+ pid: 300
+ type: combo
+ cells: (7,4,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 214
+ pid: 300
+ type: slider
+ cells: (7,5,1,1)
+ cell_insets: (0,0,6,10)
+
+ active_color: (250, 250, 100)
+ back_color: ( 0, 0, 0)
+ border_color: ( 92, 92, 92)
+ active: true
+ }
+
+ ctrl: {
+ id: 215
+ pid: 300
+ type: button
+ cells: (7,6,1,1)
+ text: "Setup...",
+
+ fore_color: (0,0,0)
+ font: Limerick12,
+ align: left
+ sticky: true
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (2,3,0,6)
+ }
+
+ ctrl: {
+ id: 511
+ pid: 300
+ type: combo,
+ cells: (7,8,1,1)
+
+ item: "Disable",
+ item: "Mouse Look",
+ item: "Virtual Stick",
+ }
+
+ ctrl: {
+ id: 514
+ pid: 300
+ type: slider,
+ cells: (7,9,1,1)
+ cell_insets: (0,0,6,10)
+
+ active_color: (250, 250, 100),
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active: true,
+ },
+
+ ctrl: {
+ id: 515
+ pid: 300
+ type: button
+ cells: (7,10,1,1)
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ transparent: false
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/DebriefDlg.frm b/data/shatter/Screens/DebriefDlg.frm
new file mode 100644
index 0000000..8d4df97
--- /dev/null
+++ b/data/shatter/Screens/DebriefDlg.frm
@@ -0,0 +1,375 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: DebriefDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Debriefing",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "alpha"
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "Sector:"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "bravo"
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "Day 7 11:32:04"
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 4, 0, 3, 0)
+
+ y_mins: ( 10, 20, 40, 20, 60, 20, 60, 20)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ pid: 800
+ }
+
+ ctrl: {
+ id: 110,
+ type: label
+ cells: (1,1,3,1)
+ text: Objectives
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 210
+ type: label
+ cells: (1,2,3,1)
+ text: " "
+ font: Verdana
+ },
+
+ ctrl: {
+ id: 111
+ type: label
+ cells: (3,1,1,1)
+ text: "Mission Score"
+ font: Limerick12
+ }
+
+ ctrl: {
+ id: 211
+ type: label
+ cells: (3,1,1,1)
+ align: right
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ }
+
+
+ ctrl: {
+ id: 120
+ type: label
+ cells: (1,3,1,1)
+ text: "Active Units"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 320
+ type: list
+ cells: (1,4,1,1)
+ cell_insets: (0,0,0,10)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 3 },
+
+ column: {
+ title: CALLSIGN,
+ width: 90,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: ROLE,
+ width: 82,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: TYPE,
+ width: 60,
+ align: left,
+ sort: 3 },
+ },
+
+ ctrl: {
+ id: 130
+ type: label
+ cells: (1,5,1,1)
+ text: "Mission Summary"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 330
+ type: list
+ cells: (1,6,1,1)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: STAT,
+ width: 141,
+ align: right,
+ sort: 3 },
+
+ column: {
+ title: VALUE,
+ width: 141,
+ align: left,
+ sort: 3 },
+
+ },
+
+
+ ctrl: {
+ id: 130
+ type: label
+ cells: (3,3,1,1)
+ text: "Mission Log"
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 340
+ type: list
+ cells: (3,4,1,3)
+ font: "Verdana"
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: TIME,
+ width: 50,
+ align: center,
+ sort: 3 },
+
+ column: {
+ title: EVENT,
+ width: 132,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: TARGET,
+ width: 80,
+ align: left,
+ sort: 3 },
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ pid: 0
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Close
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/DeckDlg.frm b/data/shatter/Screens/DeckDlg.frm
new file mode 100644
index 0000000..b78a6c1
--- /dev/null
+++ b/data/shatter/Screens/DeckDlg.frm
@@ -0,0 +1,275 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: DeckWin.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 1998. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: ( 0, 0, 640, 480),
+ centered: true,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "DeckWin.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: map,
+ rect: (390, 66, 237, 237),
+ back_color: ( 32, 32, 32),
+ text: "System"
+ },
+
+ defctrl: {
+ back_color: ( 62, 106, 151),
+ sticky: true
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: button,
+ rect: ( 11, 36, 68, 25),
+ text: "Bay 1"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ rect: ( 82, 36, 68, 25),
+ text: "Bay 2"
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ rect: (153, 36, 68, 25),
+ text: "Bay 3"
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ rect: (224, 36, 68, 25),
+ text: "Bay 4"
+ },
+
+ ctrl: {
+ id: 201,
+ type: button,
+ rect: (295, 76, 72, 25),
+ text: "Launch"
+ },
+
+ ctrl: {
+ id: 202,
+ type: button,
+ rect: (295, 103, 72, 25),
+ text: "Recover"
+ },
+
+
+ defctrl: {
+ back_color: (62,106,151),
+ sticky: false
+ },
+
+ ctrl: {
+ id: 301,
+ type: button,
+ rect: (520, 36, 25, 25),
+ text: "+"
+ },
+
+ ctrl: {
+ id: 302,
+ type: button,
+ rect: (549, 36, 25, 25),
+ text: "-"
+ },
+
+ ctrl: {
+ id: 303,
+ type: button,
+ rect: (577, 36, 25, 25),
+ text: "<"
+ },
+
+ ctrl: {
+ id: 304,
+ type: button,
+ rect: (605, 36, 25, 25),
+ text: ">"
+ },
+
+ // Package controls:
+
+ ctrl: {
+ id: 401,
+ type: button,
+ rect: ( 35, 317, 72, 25),
+ text: "Package"
+ },
+
+ ctrl: {
+ id: 402,
+ type: button,
+ rect: (111, 317, 72, 25),
+ text: "Launch"
+ },
+
+ ctrl: {
+ id: 403,
+ type: button,
+ rect: (187, 317, 72, 25),
+ text: "Scramble"
+ },
+
+ ctrl: {
+ id: 404,
+ type: button,
+ rect: (263, 317, 72, 25),
+ text: "Cancel"
+ },
+
+
+ // Order and Loadout controls:
+
+ defctrl: {
+ sticky: true
+ },
+
+ ctrl: {
+ id: 501,
+ type: button,
+ rect: (390, 327, 115, 25),
+ text: "Vector"
+ },
+
+ ctrl: {
+ id: 502,
+ type: button,
+ rect: (390, 354, 115, 25),
+ text: "Patrol"
+ },
+
+ ctrl: {
+ id: 503,
+ type: button,
+ rect: (390, 381, 115, 25),
+ text: "Engage"
+ },
+
+ ctrl: {
+ id: 504,
+ type: button,
+ rect: (390, 408, 115, 25),
+ text: "Defend"
+ },
+
+ ctrl: {
+ id: 505,
+ type: button,
+ rect: (390, 435, 115, 25),
+ text: "Escort"
+ },
+
+ ctrl: {
+ id: 601,
+ type: button,
+ rect: (510, 327, 115, 25),
+ text: "Intercept 1"
+ },
+
+ ctrl: {
+ id: 602,
+ type: button,
+ rect: (510, 354, 115, 25),
+ text: "Intercept 2"
+ },
+
+ ctrl: {
+ id: 603,
+ type: button,
+ rect: (510, 381, 115, 25),
+ text: "Strike"
+ },
+
+ // bay contents:
+
+ defctrl: {
+ back_color: (32, 32, 32),
+ fore_color: (53, 159, 67),
+ font: "GUIsmall",
+ transparent: true
+ },
+
+ ctrl: { id: 1001, type: label, rect: ( 20, 175, 16, 18) },
+ ctrl: { id: 1002, type: label, rect: ( 20, 191, 16, 18) },
+ ctrl: { id: 1003, type: label, rect: ( 20, 207, 16, 18) },
+ ctrl: { id: 1004, type: label, rect: ( 20, 223, 16, 18) },
+ ctrl: { id: 1005, type: label, rect: ( 20, 239, 16, 18) },
+ ctrl: { id: 1006, type: label, rect: ( 20, 255, 16, 18) },
+ ctrl: { id: 1007, type: label, rect: ( 20, 271, 16, 18) },
+ ctrl: { id: 1008, type: label, rect: ( 20, 287, 16, 18) },
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ },
+
+ ctrl: { id: 1101, type: label, rect: ( 40, 175, 80, 18) },
+ ctrl: { id: 1102, type: label, rect: ( 40, 191, 80, 18) },
+ ctrl: { id: 1103, type: label, rect: ( 40, 207, 80, 18) },
+ ctrl: { id: 1104, type: label, rect: ( 40, 223, 80, 18) },
+ ctrl: { id: 1105, type: label, rect: ( 40, 239, 80, 18) },
+ ctrl: { id: 1106, type: label, rect: ( 40, 255, 80, 18) },
+ ctrl: { id: 1107, type: label, rect: ( 40, 271, 80, 18) },
+ ctrl: { id: 1108, type: label, rect: ( 40, 287, 80, 18) },
+
+ ctrl: { id: 1201, type: label, rect: (120, 175, 80, 18) },
+ ctrl: { id: 1202, type: label, rect: (120, 191, 80, 18) },
+ ctrl: { id: 1203, type: label, rect: (120, 207, 80, 18) },
+ ctrl: { id: 1204, type: label, rect: (120, 223, 80, 18) },
+ ctrl: { id: 1205, type: label, rect: (120, 239, 80, 18) },
+ ctrl: { id: 1206, type: label, rect: (120, 255, 80, 18) },
+ ctrl: { id: 1207, type: label, rect: (120, 271, 80, 18) },
+ ctrl: { id: 1208, type: label, rect: (120, 287, 80, 18) },
+
+ ctrl: { id: 1301, type: label, rect: (200, 175, 80, 18) },
+ ctrl: { id: 1302, type: label, rect: (200, 191, 80, 18) },
+ ctrl: { id: 1303, type: label, rect: (200, 207, 80, 18) },
+ ctrl: { id: 1304, type: label, rect: (200, 223, 80, 18) },
+ ctrl: { id: 1305, type: label, rect: (200, 239, 80, 18) },
+ ctrl: { id: 1306, type: label, rect: (200, 255, 80, 18) },
+ ctrl: { id: 1307, type: label, rect: (200, 271, 80, 18) },
+ ctrl: { id: 1308, type: label, rect: (200, 287, 80, 18) },
+
+ ctrl: { id: 1401, type: label, rect: (280, 175, 80, 18) },
+ ctrl: { id: 1402, type: label, rect: (280, 191, 80, 18) },
+ ctrl: { id: 1403, type: label, rect: (280, 207, 80, 18) },
+ ctrl: { id: 1404, type: label, rect: (280, 223, 80, 18) },
+ ctrl: { id: 1405, type: label, rect: (280, 239, 80, 18) },
+ ctrl: { id: 1406, type: label, rect: (280, 255, 80, 18) },
+ ctrl: { id: 1407, type: label, rect: (280, 271, 80, 18) },
+ ctrl: { id: 1408, type: label, rect: (280, 287, 80, 18) }
+
+}
+
diff --git a/data/shatter/Screens/EngDlg.frm b/data/shatter/Screens/EngDlg.frm
new file mode 100644
index 0000000..ded97c8
--- /dev/null
+++ b/data/shatter/Screens/EngDlg.frm
@@ -0,0 +1,606 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: EngDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 100, 10),
+ x_weights: ( 0, 3, 1, 0),
+
+ y_mins: (28, 30, 10, 50, 10, 60, 45),
+ y_weights: ( 0, 0, 0, 1, 0, 2, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,2,2),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (2,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10
+ type: label
+ text: Engineering
+ align: left
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // upper panel:
+
+ ctrl: {
+ id: 1100
+ type: panel
+ transparent: true
+
+ cells: (1,3,2,2),
+
+ layout: {
+ x_mins: ( 10, 100, 10, 100, 10, 100, 10, 100, 10)
+ x_weights: ( 0, 1, 0, 1, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 25, 10, 25, 10)
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+ }
+
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1100
+ }
+
+ ctrl: {
+ id: 201
+ type: button
+ cells: (1,1,1,1)
+ text: "Reac 1"
+ },
+
+ ctrl: {
+ id: 202
+ type: button
+ cells: (3,1,1,1)
+ text: "Reac 2"
+ },
+
+ ctrl: {
+ id: 203
+ type: button
+ cells: (5,1,1,1)
+ text: "Reac 3"
+ },
+
+ ctrl: {
+ id: 204
+ type: button
+ cells: (7,1,1,1)
+ text: "Reac 4"
+ },
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ fixed_height: 0
+ active: false
+ active_color: (255,255,128)
+ border: false
+ },
+
+ ctrl: {
+ id: 211
+ type: slider
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 212
+ type: slider
+ cells: (3,2,1,1)
+ },
+
+ ctrl: {
+ id: 213
+ type: slider
+ cells: (5,2,1,1)
+ },
+
+ ctrl: {
+ id: 214
+ type: slider
+ cells: (7,2,1,1)
+ },
+
+ defctrl: {
+ back_color: ( 61, 61, 59),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ leading: 2,
+ multiselect: 1,
+ dragdrop: 1,
+ scroll_bar: 2,
+ show_headings: true,
+ style: 0x20,
+
+ texture: Panel
+ margins: (12,12,12,0)
+ },
+
+ ctrl: {
+ id: 301
+ type: list
+ cells: (1,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 302,
+ type: list
+ cells: (3,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 303,
+ type: list
+ cells: (5,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+ ctrl: {
+ id: 304,
+ type: list
+ cells: (7,3,1,1)
+
+ column: {
+ title: SYSTEM,
+ width: 107,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: POWER,
+ width: 59,
+ align: right,
+ sort: -2 }
+ },
+
+
+ // lower panel:
+
+ ctrl: {
+ id: 1200
+ pid: 0
+ type: panel
+ transparent: true
+
+ cells: (1,5,2,1),
+
+ layout: {
+ x_mins: ( 10, 50, 50, 10, 50, 50, 50, 10, 100, 10)
+ x_weights: ( 0, 3, 3, 0, 2, 2, 2, 0, 6, 0)
+
+ y_mins: ( 30, 20, 30, 30, 20, 30, 20, 30, 23, 18, 5)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ border: false
+ transparent: false
+ pid: 1200
+ },
+
+ ctrl: {
+ id: 401
+ pid: 1200
+ type: label
+ cells: (1,1,2,1)
+ style: 0x0040
+ back_color: (41,41,41)
+ transparent: true
+ },
+
+ defctrl: {
+ bevel_width: 0
+ border: false
+ fore_color: (0,0,0)
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 402
+ pid: 1200
+ type: button
+ cells: (1,2,1,1)
+ cell_insets: (0,3,0,0)
+ text: "PWR OFF"
+ sticky: true
+ }
+
+ ctrl: {
+ id: 403
+ pid: 1200
+ type: button
+ cells: (2,2,1,1)
+ cell_insets: (3,0,0,0)
+ text: "PWR ON"
+ sticky: true
+ }
+
+ ctrl: {
+ id: 410
+ pid: 1200
+ type: button
+ cells: (1,3,2,1)
+ text: OVERRIDE
+ sticky: true
+ }
+
+ ctrl: {
+ id: 700
+ pid: 1200
+ type: button
+ cells: (1,8,2,1)
+ text: "Auto Repair"
+ sticky: true
+ }
+
+ defctrl: {
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 450
+ pid: 1200
+ type: label
+ cells: (1,4,2,1)
+ text: "Power Allocation",
+ font: Verdana,
+ transparent: true
+ },
+
+ ctrl: {
+ id: 404
+ pid: 1200
+ type: slider
+ cells: (1,5,2,1)
+ active: true
+ active_color: (255,255,128)
+ border: false
+ fixed_height: 10
+ }
+
+ ctrl: {
+ id: 451
+ pid: 1200
+ type: label
+ cells: (1,6,2,1)
+ text: "Capacitor Charge"
+ font: Verdana
+ transparent: true
+ }
+
+ ctrl: {
+ id: 405
+ pid: 1200
+ type: slider
+ cells: (1,7,2,1)
+ active: false
+ active_color: (255,255,128)
+ border: false
+ fixed_height: 10
+ }
+
+
+
+ ctrl: {
+ id: 500
+ pid: 1200
+ type: label
+ cells: (4,1,3,1)
+ style: 0x0040,
+ back_color: (41,41,41),
+ text: "Components",
+ transparent: true,
+ font: Limerick12,
+ fore_color: (255,255,255),
+ },
+
+ ctrl: {
+ id: 501
+ pid: 1200
+ type: list
+ cells: (4,2,3,6)
+ cell_insets: (0,0,0,6)
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ leading: 2
+ multiselect: 0
+ dragdrop: 0
+ scroll_bar: 2
+ show_headings: true
+ style: 0x20
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: COMPONENT,
+ width: 155,
+ align: left,
+ sort: 1 },
+
+ column: {
+ title: STATUS,
+ width: 82,
+ align: left,
+ sort: -2 },
+
+ column: {
+ title: SPARES,
+ width: 65,
+ align: right,
+ sort: -2 }
+ },
+
+ defctrl: {
+ bevel_width: 0
+ border: false
+ fore_color: (0,0,0)
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ margins: (3,18,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 502
+ pid: 1200
+ type: button
+ cells: (4,8,1,1)
+ cell_insets: (0,3,0,0)
+ text: "Repair"
+ sticky: false
+ },
+
+ ctrl: {
+ id: 503,
+ pid: 1200
+ type: button
+ cells: (5,8,1,1)
+ cell_insets: (3,0,0,0)
+ text: "Replace"
+ sticky: false
+ },
+
+ ctrl: {
+ id: 512
+ pid: 1200
+ type: label
+ cells: (4,9,1,1)
+ cell_insets: (0,3,0,0)
+ // text: "Repair Time"
+ font: Verdana
+ align: right
+ transparent: true
+ },
+
+ ctrl: {
+ id: 513,
+ pid: 1200
+ type: label
+ cells: (5,9,1,1)
+ cell_insets: (3,0,0,0)
+ // text: "Replace Time"
+ font: Verdana
+ align: right
+ transparent: true
+ },
+
+ ctrl: {
+ id: 600
+ pid: 1200
+ type: label
+ cells: (8,1,1,1)
+ style: 0x0040
+ text: "Repair Queue"
+ transparent: true
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (41,41,41)
+ }
+
+ ctrl: {
+ id: 601
+ pid: 1200
+ type: list
+ cells: (8,2,1,6)
+ cell_insets: (0,0,0,6)
+ fixed_height: 0
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ leading: 2
+ multiselect: 0
+ dragdrop: 0
+ scroll_bar: 2
+ show_headings: true
+ style: 0x20
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+
+ column: {
+ title: SYSTEM,
+ width: 212,
+ align: left,
+ sort: 3 },
+
+ column: {
+ title: ETR,
+ width: 90,
+ align: right,
+ sort: 3 }
+ },
+
+ defctrl: {
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ cell_insets: (0,0,0,0)
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 602
+ pid: 1200
+ type: button
+ cells: (8,8,1,1)
+ text: "^"
+ },
+
+ ctrl: {
+ id: 603
+ pid: 1200
+ type: button
+ cells: (8,8,1,1)
+ cell_insets: (25,0,0,0)
+ text: "v"
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Close
+ cells: (2,6,1,1)
+ },
+}
diff --git a/data/shatter/Screens/ExitDlg.frm b/data/shatter/Screens/ExitDlg.frm
new file mode 100644
index 0000000..fb463b5
--- /dev/null
+++ b/data/shatter/Screens/ExitDlg.frm
@@ -0,0 +1,88 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ExitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,320)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 40, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 30, 80, 35)
+ y_weights: ( 0, 0, 0, 1, 0)
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ text: "Exit Starshatter?",
+ transparent: true,
+ align: center,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ cells: (1,1,3,1)
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ text: "Are you sure you want to exit Starshatter and return to Windows?",
+ transparent: true,
+ align: left,
+ font: Verdana,
+ fore_color: (255,255,255),
+ cells: (1,2,3,1)
+ }
+
+ ctrl: {
+ id: 201,
+ type: text,
+ text: "",
+ scroll_bar: 0,
+ smooth_scroll: true,
+ transparent: true,
+ align: left,
+ font: Verdana,
+ fore_color: (255,255,255),
+ cells: (1,3,3,1)
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Exit",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/shatter/Screens/FileDlg.frm b/data/shatter/Screens/FileDlg.frm
new file mode 100644
index 0000000..1061d34
--- /dev/null
+++ b/data/shatter/Screens/FileDlg.frm
@@ -0,0 +1,122 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: CmdMsgDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,400,380)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 50, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 10, 25, 80, 35)
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ transparent: true
+ }
+
+ ctrl: {
+ id: 100,
+ type: label,
+ align: center
+ cells: (1,1,3,1)
+ font: Limerick18
+ text: "Save Game to File",
+ },
+
+ defctrl: {
+ font: Verdana,
+ transparent: false,
+ style: 0,
+ },
+
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (1,3,1,1)
+ text: "Name: ",
+ transparent: true,
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Files: ",
+ transparent: true,
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41),
+ style: 0x02,
+ scroll_bar: 0,
+ },
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,3,2,1)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 201
+ type: list
+ cells: (2,4,2,1)
+ cell_insets: (10,0,0,20)
+ scroll_bar: 2,
+
+ column: {
+ title: Files,
+ width: 200,
+ align: left,
+ sort: 0 }
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (2,5,1,1)
+ text: Save
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ cells: (3,5,1,1)
+ text: Cancel
+ },
+}
diff --git a/data/shatter/Screens/FirstTimeDlg.frm b/data/shatter/Screens/FirstTimeDlg.frm
new file mode 100644
index 0000000..ac71739
--- /dev/null
+++ b/data/shatter/Screens/FirstTimeDlg.frm
@@ -0,0 +1,163 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: FirstTimeDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,430)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 90, 100, 100, 20)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 25, 5, 45, 45, 45, 45, 45, 45, 35)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 1, 0, 1, 0)
+ }
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 21, 21, 21),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ align: left,
+ transparent: true,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: (192, 192, 192),
+ style: 0,
+ },
+
+ ctrl: {
+ id: 110
+ type: label
+ cells: (1,1,3,1)
+ font: Limerick18
+ text: "NEW PLAYER"
+ align: center
+ },
+
+ ctrl: {
+ id: 100
+ type: label
+ cells: (1,3,3,1)
+ text: "Create a new player account. Enter your name in the box provided. "
+ "The user name may be a nickname, callsign, or last name.",
+ },
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Player Name:",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,5,3,1)
+ text: "Select your preferred style of play. Arcade mode is similar to games "
+ "such as Wing Commander or FreeSpace. Standard mode is more like "
+ "Babylon 5, Independence War, or Falcon 4.0",
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,6,1,1)
+ text: "Play Style:"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (1,7,3,1)
+ align: left
+ transparent: true
+ text: "The following option allows you to skip the training campaign, "
+ "'Operation Live Fire'. If this is your first time playing Starshatter "
+ "select 'Cadet (First timer)'",
+ },
+
+ ctrl: {
+ id: 105
+ type: label
+ cells: (1,8,1,1)
+ text: "Experience:",
+ },
+
+ defctrl: {
+ style: 0x02
+ scroll_bar: 0
+
+ active_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ base_color: ( 92, 92, 92)
+ border_color: (192, 192, 192)
+
+ border: true
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+
+ fixed_height: 18
+ }
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,4,2,1)
+ single_line: true
+ }
+
+ ctrl: {
+ id: 201
+ type: combo
+ cells: (2,6,2,1)
+
+ item: "Arcade Style"
+ item: "Standard Model"
+ }
+
+ ctrl: {
+ id: 202
+ type: combo
+ cells: (2,8,2,1)
+
+ item: "Cadet (First timer)"
+ item: "Admiral (Experienced)"
+ }
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (3,9,1,1)
+ text: Accept
+ }
+}
+
diff --git a/data/shatter/Screens/FltDlg.frm b/data/shatter/Screens/FltDlg.frm
new file mode 100644
index 0000000..5adf7c8
--- /dev/null
+++ b/data/shatter/Screens/FltDlg.frm
@@ -0,0 +1,428 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: FltDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 100, 10),
+ x_weights: ( 0, 3, 1, 0),
+
+ y_mins: (28, 30, 10, 50, 10, 60, 45),
+ y_weights: ( 0, 0, 0, 1, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,2,2),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (2,5,1,2),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "Flight Operations"
+ align: left
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+
+ // upper panel:
+
+ ctrl: {
+ id: 1100
+ type: panel
+ transparent: true
+
+ cells: (1,3,2,2),
+
+ layout: {
+ x_mins: ( 10, 100, 100, 20, 100, 10)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 25, 25, 25, 25, 25, 25, 10)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+ }
+
+ ctrl: {
+ id: 11
+ pid: 1100
+ type: label
+ cells: (1,1,1,1)
+ cell_insets: (0,0,0,0)
+ text: "Squadron"
+ align: left
+ font: Limerick12
+ style: 0x0040
+ back_color: (41,41,41)
+ fore_color: (255,255,255)
+ transparent: true
+ }
+
+ ctrl: {
+ id: 101
+ pid: 1100
+ type: combo
+ cells: (2,1,1,1)
+
+ fore_color: (255, 255, 255)
+ back_color: ( 60, 60, 60)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ fixed_height: 20
+ },
+
+ ctrl: {
+ id: 102
+ pid: 1100
+ type: list
+ cells: (1,2,2,5)
+
+ transparent: false
+ texture: Panel
+ margins: (12,12,12,0)
+
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ multiselect: 1
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: INDEX,
+ width: 90,
+ align: right,
+ sort: 2,
+ },
+
+ column: {
+ title: NAME,
+ width: 255,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: STATUS,
+ width: 120,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: MISSION,
+ width: 170,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: TIME,
+ width: 97,
+ align: left,
+ sort: 1,
+ },
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: left,
+ fore_color: (0,0,0),
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1100
+ },
+
+ ctrl: {
+ id: 110
+ type: button
+ cells: (4,2,1,1)
+ text: "Package"
+ },
+
+ ctrl: {
+ id: 111
+ type: button
+ cells: (4,3,1,1)
+ text: "Alert"
+ },
+
+ ctrl: {
+ id: 112
+ type: button
+ cells: (4,4,1,1)
+ text: "Launch"
+ },
+
+ ctrl: {
+ id: 113
+ type: button
+ cells: (4,5,1,1)
+ text: "Standby"
+ },
+
+ ctrl: {
+ id: 114
+ type: button
+ cells: (4,6,1,1)
+ text: "Recall"
+ },
+
+
+
+
+ // lower panel:
+
+ ctrl: {
+ id: 1200
+ pid: 0
+ type: panel
+ cells: (1,5,2,1)
+ transparent: true
+ fixed_height: 0
+ fixed_width: 0
+
+
+ layout: {
+ x_mins: ( 10, 100, 20, 200, 20, 200, 10)
+ x_weights: ( 0, 1, 0, 2, 0, 2, 0)
+
+ y_mins: ( 30, 25, 25, 25, 25, 25, 25, 25, 10)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ back_color: (41,41,41)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ border: false
+ transparent: true
+ pid: 1200
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ text: Objective
+ cells: (3,1,1,1)
+ style: 0x0040
+ }
+
+ ctrl: {
+ id: 402
+ type: label
+ text: Loadout
+ cells: (5,1,1,1)
+ style: 0x0040
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ font: Limerick12
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,0)
+ fixed_height: 19
+ pid: 1200
+ },
+
+ ctrl: {
+ id: 210
+ type: button
+ cells: (1,2,1,1)
+ text: "Patrol"
+ },
+
+ ctrl: {
+ id: 211,
+ type: button,
+ cells: (1,3,1,1)
+ text: "Intercept"
+ },
+
+ ctrl: {
+ id: 212,
+ type: button,
+ cells: (1,4,1,1)
+ text: "Assault"
+ },
+
+ ctrl: {
+ id: 213,
+ type: button,
+ cells: (1,5,1,1)
+ text: "Strike"
+ },
+
+ ctrl: {
+ id: 214,
+ type: button,
+ cells: (1,6,1,1)
+ text: "Escort"
+ },
+
+ ctrl: {
+ id: 215,
+ type: button,
+ cells: (1,7,1,1)
+ text: "Scout"
+ },
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 59)
+ transparent: false
+ texture: Panel
+ margins: (12,12,12,0)
+ fixed_height: 0
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+ }
+
+ ctrl: {
+ id: 221
+ type: list
+ cells: (3,2,1,6)
+
+ column: {
+ title: NAME
+ width: 130
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: SECTOR
+ width: 90
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: RANGE
+ width: 82
+ align: right
+ sort: 1
+ }
+ }
+
+ ctrl: {
+ id: 222
+ type: list
+ cells: (5,2,1,6)
+
+ column: {
+ title: NAME
+ width: 190
+ align: left
+ sort: 1
+ }
+
+ column: {
+ title: WEIGHT
+ width: 112
+ align: right
+ sort: 1
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Close
+ cells: (2,6,1,1)
+ },
+}
diff --git a/data/shatter/Screens/HelmDetail.frm b/data/shatter/Screens/HelmDetail.frm
new file mode 100644
index 0000000..cd5ac82
--- /dev/null
+++ b/data/shatter/Screens/HelmDetail.frm
@@ -0,0 +1,235 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: HelmDetail.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 1999. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (10, 345, 620, 127),
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "WepDetail_640.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (15, 345, 180, 20),
+ text: "Helm Control",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 201,
+ type: slider,
+ rect: (260, 365, 20, 100),
+ active_color: (192,192,64),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ active: true,
+ back_color: ( 92, 92, 92)
+ },
+
+ ctrl: {
+ id: 202,
+ type: slider,
+ rect: (295, 365, 20, 100),
+ active_color: (192,192,64),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ active: true,
+ back_color: ( 92, 92, 92)
+ },
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: true,
+ transparent: false
+ },
+
+ ctrl: {
+ id: 251,
+ type: button,
+ rect: (365, 365, 75, 25),
+ text: "Manual"
+ },
+
+ ctrl: {
+ id: 252,
+ type: button,
+ rect: (365, 392, 75, 25),
+ text: "Helm"
+ },
+
+ ctrl: {
+ id: 253,
+ type: button,
+ rect: (365, 419, 75, 25),
+ text: "Nav"
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (445, 345, 180, 20),
+ text: "Contact List",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 301,
+ type: list,
+ rect: (445, 365, 180, 100),
+ text: "contact list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+ scroll_bar: 2,
+ style: 0x20
+ },
+
+ ctrl: {
+ id: 400,
+ type: compass,
+ rect: (135, 365, 100, 100),
+ font: GUIsmall,
+ transparent: true
+ }
+}
+
+
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+
+form: {
+ rect: (10, 465, 620, 127),
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "WepDetail_640.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (15, 465, 180, 20),
+ text: "Helm Control",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 201,
+ type: slider,
+ rect: (260, 485, 20, 100),
+ active_color: (192,192,64),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ active: true,
+ back_color: ( 92, 92, 92)
+ },
+
+ ctrl: {
+ id: 202,
+ type: slider,
+ rect: (295, 485, 20, 100),
+ active_color: (192,192,64),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ active: true,
+ back_color: ( 92, 92, 92)
+ },
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: true,
+ transparent: false
+ },
+
+ ctrl: {
+ id: 251,
+ type: button,
+ rect: (365, 485, 75, 25),
+ text: "Manual"
+ },
+
+ ctrl: {
+ id: 252,
+ type: button,
+ rect: (365, 512, 75, 25),
+ text: "Helm"
+ },
+
+ ctrl: {
+ id: 253,
+ type: button,
+ rect: (365, 539, 75, 25),
+ text: "Nav"
+ },
+
+ ctrl: {
+ id: 300,
+ type: label,
+ rect: (445, 465, 180, 20),
+ text: "Contact List",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 301,
+ type: list,
+ rect: (445, 485, 180, 100),
+ text: "contact list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+ scroll_bar: 2,
+ style: 0x20
+ },
+
+ ctrl: {
+ id: 400,
+ type: compass,
+ rect: (135, 485, 100, 100),
+ font: GUIsmall,
+ transparent: true
+ }
+}
+
diff --git a/data/shatter/Screens/JoyDlg.frm b/data/shatter/Screens/JoyDlg.frm
new file mode 100644
index 0000000..77cd348
--- /dev/null
+++ b/data/shatter/Screens/JoyDlg.frm
@@ -0,0 +1,220 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: KeyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 1, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 30, 75, 10, 35),
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ defctrl: {
+ align: center
+ base_color: ( 92, 92, 92)
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ cells: (1,1,3,1)
+ text: "Joystick Axis Setup",
+ },
+
+
+ ctrl: {
+ id: 501,
+ type: label,
+ cells: (1,2,1,1)
+ text: "Axis",
+ },
+
+ ctrl: {
+ id: 502,
+ type: label,
+ cells: (2,2,1,1)
+ text: "Select",
+ },
+
+ ctrl: {
+ id: 503,
+ type: label,
+ cells: (3,2,1,1)
+ text: "Invert",
+ },
+
+ defctrl: {
+ align: left
+ font: Verdana
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,3,1,1)
+ text: "X Axis:"
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,4,1,1)
+ text: "Y Axis:"
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,5,1,1)
+ text: "Rudder:"
+ }
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (1,6,1,1)
+ text: "Throttle:"
+ }
+
+ ctrl: {
+ id: 11
+ type: label
+ cells: (1,8,3,1)
+ text: "Click an axis button and then move the controller to bind a new axis. "
+ "You can also invert any axis by clicking the 'Invert' checkbox to the "
+ "right of the select button.\n\n"
+ "Then click Apply to save the new bindings, or Cancel to return to the "
+ "original bindings."
+ }
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,0,0,6)
+ sticky: true
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201
+ type: button
+ cells: (2,3,1,1)
+ text: Select
+ },
+
+ ctrl: {
+ id: 202
+ type: button
+ cells: (2,4,1,1)
+ text: Select
+ },
+
+ ctrl: {
+ id: 203
+ type: button
+ cells: (2,5,1,1)
+ text: Select
+ },
+
+ ctrl: {
+ id: 204
+ type: button
+ cells: (2,6,1,1)
+ text: Select
+ }
+
+ defctrl: {
+ cell_insets: (55,0,0,0)
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ }
+
+ ctrl: {
+ id: 301
+ type: button
+ cells: (3,3,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ cells: (3,4,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 304
+ type: button
+ cells: (3,6,1,1)
+ }
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ fixed_width: 0
+ fixed_height: 0
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (2,10,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (3,10,1,1),
+ }
+}
diff --git a/data/shatter/Screens/KeyDlg.frm b/data/shatter/Screens/KeyDlg.frm
new file mode 100644
index 0000000..328fdae
--- /dev/null
+++ b/data/shatter/Screens/KeyDlg.frm
@@ -0,0 +1,142 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: KeyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 40, 55, 10, 35),
+ y_weights: ( 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "Key Binding"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "Command:"
+ cells: (1,2,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ text: "Current Key:"
+ cells: (1,3,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ text: "New Key:"
+ cells: (1,4,1,1)
+ }
+
+ ctrl: {
+ id: 11
+ type: label
+ cells: (1,8,3,1)
+ text: "Press any key to select a new binding for this command. "
+ "Then click Apply to save the new binding, or Cancel to "
+ "return to the original binding."
+ }
+
+ defctrl: {
+ cell_insets: (0,0,0,5)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (2,2,2,1)
+ text: "none selected",
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ cells: (2,3,2,1)
+ text: "none selected",
+ },
+
+
+ ctrl: {
+ id: 203,
+ type: label,
+ cells: (2,4,2,1)
+ text: "",
+ },
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (10,0,0,16)
+ }
+
+ ctrl: {
+ id: 300,
+ type: button,
+ cells: (2,6,2,1)
+ text: "Clear Binding",
+ cell_insets: (0,0,0,6)
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (2,10,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (3,10,1,1),
+ }
+}
diff --git a/data/shatter/Screens/LoadDlg.frm b/data/shatter/Screens/LoadDlg.frm
new file mode 100644
index 0000000..34f9f40
--- /dev/null
+++ b/data/shatter/Screens/LoadDlg.frm
@@ -0,0 +1,64 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ExitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,320)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (40, 40, 100, 100, 40)
+ x_weights: ( 0, 0, 1, 1, 0)
+
+ y_mins: (44, 30, 60, 35, 25)
+ y_weights: ( 0, 0, 0, 0, 0)
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ cells: (1,1,3,1)
+ text: "Loading Mission"
+
+ align: center
+ font: Limerick18
+ fore_color: (255,255,255)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,3,3,1)
+ text: ""
+
+ align: center
+ font: Verdana
+ fore_color: (255,255,255)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 102,
+ type: slider,
+ cells: (1,4,3,1)
+ fixed_height: 8
+
+ active_color: (250, 250, 100),
+ back_color: ( 21, 21, 21),
+ border: false,
+ transparent: false,
+ },
+}
+
diff --git a/data/shatter/Screens/MenuDlg.frm b/data/shatter/Screens/MenuDlg.frm
new file mode 100644
index 0000000..4785e09
--- /dev/null
+++ b/data/shatter/Screens/MenuDlg.frm
@@ -0,0 +1,159 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+ font: Limerick12,
+
+ layout: {
+ x_mins: (20, 20, 28, 180, 20),
+ x_weights: ( 0, 1, 0, 0, 0),
+
+ y_mins: (60, 60, 40, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30),
+ y_weights: ( 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ },
+
+ // background images:
+
+ defctrl: {
+ fore_color: (4,4,4),
+ cell_insets: (0,0,0,0)
+ },
+
+ ctrl: {
+ id: 300
+ type: background
+ texture: MenuDlg1
+ cells: (0,0,5,1)
+ margins: (248,2,2,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 301
+ type: background
+ texture: Plasma
+ cells: (0,1,5,1)
+ margins: (0,896,0,0)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 302
+ type: background
+ texture: MenuDlg2
+ cells: (0,2,5,12)
+ margins: (2,248,32,2)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ align: right,
+ font: Verdana,
+ transparent: true,
+ cells: (3,2,1,1)
+ cell_insets: (0,0,30,5)
+ hide_partial: false
+ },
+
+
+ // buttons:
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button23_0,
+ activated_image: Button23_1,
+ transition_image: Button23_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (0,0,0,5)
+ },
+
+
+ ctrl: {
+ id: 120,
+ type: button,
+ text: "Start",
+ alt: "Start a new game, or resume your current game",
+ cells: (3,3,1,1)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ text: "Campaign",
+ alt: "Start a new dynamic campaign, or load a saved game",
+ cells: (3,4,1,1),
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ text: "Mission",
+ alt: "Play or create a scripted mission exercise",
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 104,
+ type: button,
+ text: "Multiplayer",
+ alt: "Start or join a multiplayer scenario",
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 103,
+ type: button,
+ text: "Logbook",
+ alt: "Manage your logbook and player preferences",
+ cells: (3,7,1,1)
+ },
+
+ ctrl: {
+ id: 111,
+ type: button,
+ text: "Options",
+ alt: "Audio, Video, Gameplay, Control, and Mod configuration options",
+ cells: (3,8,1,1)
+ },
+
+ ctrl: {
+ id: 116,
+ type: button,
+ text: "Tac Reference",
+ alt: "View ship and weapon stats and mission roles",
+ cells: (3,9,1,1)
+ },
+
+ ctrl: {
+ id: 114,
+ type: button,
+ text: "Exit",
+ alt: "Exit Starshatter and return to Windows",
+ cells: (3,10,1,1)
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ align: center,
+ font: Verdana,
+ transparent: true,
+ cells: (1,11,3,1)
+ }
+
+
+}
diff --git a/data/shatter/Screens/ModConfigDlg.frm b/data/shatter/Screens/ModConfigDlg.frm
new file mode 100644
index 0000000..5d5aeb5
--- /dev/null
+++ b/data/shatter/Screens/ModConfigDlg.frm
@@ -0,0 +1,138 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARSHATTER
+// File: ModConfigDlg.frm
+//
+// John DiCamillo
+// Copyright © 1997-2002. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 640, 480),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: ( 0, 0, 0),
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+ font: GUI,
+
+ texture: "Demo_640.pcx",
+
+ defctrl: {
+ base_color: ( 0, 0, 0),
+ back_color: ( 62, 106, 151),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (0, 120, 640, 20),
+ text: "MOD Configuration",
+ transparent: true,
+ align: center
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (70, 140, 240, 20),
+ text: "Disabled Mods",
+ transparent: true,
+ align: center
+ }
+
+ ctrl: {
+ id: 102,
+ type: label,
+ rect: (330, 140, 240, 20),
+ text: "Enabled Mods",
+ transparent: true,
+ align: center
+ }
+
+ ctrl: {
+ id: 201,
+ type: list,
+ rect: (70, 170, 240, 180),
+ back_color: (21, 21, 21),
+ font: GUIsmall,
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: Disabled,
+ width: 218,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 202,
+ type: list,
+ rect: (330, 170, 240, 180),
+ back_color: (21, 21, 21),
+ font: GUIsmall,
+ style: 0x02,
+ scroll_bar: 2,
+
+ column: {
+ title: Enabled,
+ width: 218,
+ align: left,
+ sort: 0 }
+ },
+
+
+ ctrl: {
+ id: 301,
+ type: button,
+ rect: (70, 360, 130, 25),
+ text: "Enable"
+ },
+
+ ctrl: {
+ id: 302,
+ type: button,
+ rect: (330, 360, 130, 25),
+ text: "Disable"
+ },
+
+ ctrl: {
+ id: 303,
+ type: button,
+ rect: (515, 360, 26, 25),
+ text: "^",
+ font: GUIsmall
+ },
+
+ ctrl: {
+ id: 304,
+ type: button,
+ rect: (545, 360, 26, 25),
+ text: "v",
+ font: GUIsmall
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (300, 420, 130, 25),
+ text: "Accept"
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (440, 420, 130, 25),
+ text: "Cancel"
+ }
+}
+
diff --git a/data/shatter/Screens/ModDlg.frm b/data/shatter/Screens/ModDlg.frm
new file mode 100644
index 0000000..5d3e662
--- /dev/null
+++ b/data/shatter/Screens/ModDlg.frm
@@ -0,0 +1,337 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ModDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ },
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Options",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: Video
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: Audio
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: Controls
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: Gameplay
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "Mod Config"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,10,54)
+
+ layout: {
+ x_mins: (100, 100, 30, 30, 20, 100, 100, 30, 30)
+ x_weights: ( 3, 3, 0, 0, 0, 3, 3, 0, 0)
+
+ y_mins: ( 3, 84, 40, 80, 30, 10)
+ y_weights: ( 0, 0, 0, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: text
+ cells: (0,1,9,1)
+ cell_insets: (0,0,0,0)
+ transparent: false
+ scroll_bar: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ text: "<font Limerick12><color ffffff>INSTRUCTIONS:\n"
+ "<font Verdana>\n\t* Download mods from the Internet, "
+ "and save them in any subfolder of the Starshatter install folder.\n\t* Mods are initially disabled "
+ "and are shown in the DISABLED MODS list below.\n\t* To enable a mod, select it and click the "
+ "ENABLE button.\n\t* To disable an enabled mod, select it in the ENABLED MODS list and click the "
+ "DISABLE button."
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ cells: (0,2,4,1)
+ cell_insets: (0,0,20,0)
+ text: "Disabled Mods"
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ align: center
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ cells: (5,2,4,1)
+ cell_insets: (0,0,20,0)
+ text: "Enabled Mods"
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ align: center
+ },
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: list,
+ cells: (0,3,4,1)
+ cell_insets: (0,0,0,10)
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: Disabled,
+ width: 248,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: list,
+ cells: (5,3,4,1)
+ cell_insets: (0,0,0,10)
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0)
+
+ column: {
+ title: Enabled,
+ width: 248,
+ align: left,
+ sort: 0 }
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,11)
+ }
+
+ ctrl: {
+ id: 301
+ pid: 300
+ type: button
+ cells: (0,4,1,1)
+ text: "Enable >>"
+ },
+
+ ctrl: {
+ id: 302
+ pid: 300
+ type: button
+ cells: (5,4,1,1)
+ text: "Disable <<"
+ },
+
+ defctrl: {
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ cell_insets: (10,0,0,0)
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 303
+ pid: 300
+ type: button
+ cells: (7,4,1,1)
+ text: "^"
+ },
+
+ ctrl: {
+ id: 304
+ pid: 300
+ type: button
+ cells: (8,4,1,1)
+ text: "v"
+ },
+
+
+ // apply and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_width: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Apply
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/ModInfoDlg.frm b/data/shatter/Screens/ModInfoDlg.frm
new file mode 100644
index 0000000..caf44b3
--- /dev/null
+++ b/data/shatter/Screens/ModInfoDlg.frm
@@ -0,0 +1,111 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: ModInfoDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,340)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 15, 128, 20)
+ x_weights: ( 0, 1, 0, 0, 0)
+
+ y_mins: (44, 25, 5, 30, 128, 10, 45, 35)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0)
+ }
+
+ defctrl: {
+ base_color: (160, 160, 150)
+ back_color: ( 92, 92, 92)
+ fore_color: (255, 255, 255)
+ font: Verdana
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ transparent: true
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ cells: (1,1,3,1)
+ text: "Mod Description"
+ font: Limerick18
+ align: center
+ },
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,3,3,1)
+ text: "Mod Name Here"
+ font: Limerick12
+ align: left
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Description goes here",
+ font: Verdana,
+ transparent: true
+ },
+
+ ctrl: {
+ id: 200,
+ type: image,
+ cells: (3,4,1,1)
+ back_color: (12,12,12)
+ border: true
+ style: 0x02,
+ picture: "mod_logo.pcx"
+ fixed_width: 128
+ fixed_height: 128
+ transparent: false
+ },
+
+ ctrl: {
+ id: 103,
+ type: label,
+ cells: (1,6,3,1)
+ text: "Copyright Notice",
+ font: Verdana,
+ transparent: true
+ },
+
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,16)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1
+ type: button
+ cells: (3,7,1,1)
+ text: Close
+ }
+}
+
diff --git a/data/shatter/Screens/MsgDlg.frm b/data/shatter/Screens/MsgDlg.frm
new file mode 100644
index 0000000..4742ab9
--- /dev/null
+++ b/data/shatter/Screens/MsgDlg.frm
@@ -0,0 +1,120 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: MessageDlg.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 1997-2003. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (145, 115, 350, 250),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "message.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (160, 140, 320, 20),
+ text: "Message Title",
+ transparent: true,
+ align: center
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (180, 170, 280, 120),
+ text: "Message Text",
+ font: Verdana,
+ transparent: true
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (325, 310, 100, 25),
+ back_color: ( 62, 106, 151),
+ text: "Close"
+ }
+}
+
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (225, 175, 350, 250),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "message.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 0,
+ transparent: true,
+ align: center
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (240, 230, 320, 20),
+ text: "Message Title",
+ },
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (260, 280, 280, 120),
+ text: "Message Text",
+ font: Verdana,
+ },
+
+ defctrl: {
+ transparent: false,
+ font: Terminal,
+ fore_color: (5,5,5),
+ align: left,
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (405, 380, 130, 17),
+ text: Close,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+}
diff --git a/data/shatter/Screens/MsnDlg.frm b/data/shatter/Screens/MsnDlg.frm
new file mode 100644
index 0000000..b5d37cb
--- /dev/null
+++ b/data/shatter/Screens/MsnDlg.frm
@@ -0,0 +1,454 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: MsnDlg.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 2001. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 640, 480),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: ( 72, 82, 92),
+ back_color: ( 72, 82, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "msn_brief_640.pcx",
+
+ defctrl: {
+ base_color: (160, 160, 150),
+ back_color: ( 62, 106, 151),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0),
+ transparent: true,
+ align: left
+ },
+
+ ctrl: {
+ id: 100,
+ type: label,
+ rect: (7, 6, 600, 20),
+ text: "Mission Briefing",
+ transparent: true,
+ align: left,
+ font: GUI,
+ fore_color: (255,255,255),
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (20, 55, 300, 20),
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (20, 87, 65, 50),
+ text: "System:",
+ font: "Verdana"
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ rect: (80, 87, 125, 50),
+ text: "alpha",
+ font: "Verdana"
+ },
+
+ ctrl: {
+ id: 203,
+ type: label,
+ rect: (20, 77, 65, 50),
+ text: "Sector:",
+ font: "Verdana"
+ },
+
+ ctrl: {
+ id: 204,
+ type: label,
+ rect: (80, 77, 125, 50),
+ text: "bravo",
+ font: "Verdana"
+ },
+
+
+ ctrl: {
+ id: 206,
+ type: label,
+ rect: (420, 55, 200, 20),
+ text: "Day 7 11:32:04",
+ align: right
+ },
+
+
+ defctrl: {
+ transparent: false,
+ align: center,
+ font: Terminal,
+ fore_color: (4,4,4),
+ bevel_width: 0,
+ align: left,
+ sticky: true,
+ standard_image: tab_70x17_0,
+ activated_image: tab_70x17_1,
+ transition_image: tab_70x17_2,
+ },
+
+ ctrl: {
+ id: 900,
+ type: button,
+ rect: (20, 450, 70, 17),
+ sticky: true,
+ text: "SIT"
+ },
+
+ ctrl: {
+ id: 901,
+ type: button,
+ rect: (95, 450, 70, 17),
+ sticky: true,
+ text: "PKG"
+ },
+
+ ctrl: {
+ id: 902,
+ type: button,
+ rect: (170, 450, 70, 17),
+ sticky: true,
+ text: "NAV"
+ },
+
+ ctrl: {
+ id: 903,
+ type: button,
+ rect: (245, 450, 70, 17),
+ sticky: true,
+ text: "WEP",
+ },
+
+
+
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (350, 450, 130, 17),
+ text: Accept,
+ sticky: false,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (490, 450, 130, 17),
+ text: Cancel,
+ sticky: false,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 800, 600),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "msn_brief_800.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 55, 400, 20),
+ text: "title goes here",
+ fore_color: (255, 255, 128),
+ font: GUI,
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (25, 70, 65, 50),
+ text: "System:",
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ rect: (100, 70, 225, 50),
+ text: "alpha",
+ },
+
+ ctrl: {
+ id: 203,
+ type: label,
+ rect: (25, 82, 65, 50),
+ text: "Sector:",
+ },
+
+ ctrl: {
+ id: 204,
+ type: label,
+ rect: (100, 82, 225, 50),
+ text: "bravo",
+ },
+
+
+ ctrl: {
+ id: 206,
+ type: label,
+ rect: (575, 55, 200, 20),
+ text: " ",
+ align: right
+ },
+
+ defctrl: {
+ font: Terminal,
+ simple: false,
+ border: false,
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: true,
+
+ standard_image: tab_90x17_0,
+ activated_image: tab_90x17_1,
+ transition_image: tab_90x17_2,
+ },
+
+ ctrl: {
+ id: 900,
+ type: button,
+ rect: (20, 550, 90, 17),
+ text: " Sit",
+ },
+
+ ctrl: {
+ id: 901,
+ type: button,
+ rect: (115, 550, 90, 17),
+ text: " Pkg",
+ },
+
+ ctrl: {
+ id: 902,
+ type: button,
+ rect: (210, 550, 90, 17),
+ text: " Map",
+ },
+
+ ctrl: {
+ id: 903,
+ type: button,
+ rect: (305, 550, 90, 17),
+ text: " Wep",
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (500, 558, 130, 17),
+ text: Accept,
+ sticky: false,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (640, 558, 130, 17),
+ text: Cancel,
+ sticky: false,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ }
+}
+
+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0, 0, 1024, 768),
+ screen_width: 1024,
+ screen_height: 768,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "msn_brief_1024.pcx",
+
+ defctrl: {
+ base_color: (180, 180, 172),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: Verdana,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: ( 0, 0, 0),
+ transparent: true,
+ align: left,
+ active: true,
+ },
+
+ ctrl: {
+ id: 200,
+ type: label,
+ rect: (25, 55, 500, 20),
+ text: "title goes here",
+ fore_color: (255, 255, 128),
+ font: GUI,
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ rect: (25, 70, 65, 50),
+ text: "System:",
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ rect: (100, 70, 325, 50),
+ text: "alpha",
+ },
+
+ ctrl: {
+ id: 203,
+ type: label,
+ rect: (25, 82, 65, 50),
+ text: "Sector:",
+ },
+
+ ctrl: {
+ id: 204,
+ type: label,
+ rect: (100, 82, 325, 50),
+ text: "bravo",
+ },
+
+
+ ctrl: {
+ id: 206,
+ type: label,
+ rect: (575, 55, 200, 20),
+ text: " ",
+ align: right
+ },
+
+ defctrl: {
+ font: Terminal,
+ simple: false,
+ border: false,
+ base_color: (160, 160, 150),
+ back_color: ( 92, 92, 92),
+ fore_color: ( 4, 4, 4),
+ bevel_width: 0,
+ transparent: false,
+ sticky: true,
+
+ standard_image: tab_90x17_0,
+ activated_image: tab_90x17_1,
+ transition_image: tab_90x17_2,
+ },
+
+ ctrl: {
+ id: 900,
+ type: button,
+ rect: (20, 730, 90, 17),
+ text: " SIT",
+ },
+
+ ctrl: {
+ id: 901,
+ type: button,
+ rect: (115, 730, 90, 17),
+ text: " PKG",
+ },
+
+ ctrl: {
+ id: 902,
+ type: button,
+ rect: (210, 730, 90, 17),
+ text: " MAP",
+ },
+
+ ctrl: {
+ id: 903,
+ type: button,
+ rect: (305, 730, 90, 17),
+ text: " WEP",
+ },
+
+ ctrl: {
+ id: 1,
+ type: button,
+ rect: (730, 730, 130, 17),
+ text: Accept,
+ sticky: false,
+ standard_image: grn_130x17_0,
+ activated_image: grn_130x17_1,
+ transition_image: grn_130x17_2,
+ },
+
+ ctrl: {
+ id: 2,
+ type: button,
+ rect: (870, 730, 130, 17),
+ text: Cancel,
+ sticky: false,
+ standard_image: red_130x17_0,
+ activated_image: red_130x17_1,
+ transition_image: red_130x17_2,
+ },
+}
+
diff --git a/data/shatter/Screens/MsnEditDlg.frm b/data/shatter/Screens/MsnEditDlg.frm
new file mode 100644
index 0000000..dc5fbfc
--- /dev/null
+++ b/data/shatter/Screens/MsnEditDlg.frm
@@ -0,0 +1,618 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnEditDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 2, 4, 2, 2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 20
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 21
+ type: background
+ texture: Frame2a
+ cells: (1,4,2,3)
+ cell_insets: (0,0,0,10)
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 22
+ type: background
+ texture: Frame2b
+ cells: (3,4,2,3)
+ cell_insets: (0,0,0,10)
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Editor",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 90
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0)
+ cell_insets: (0,4,0,0)
+ pid: 90
+ },
+
+ ctrl: {
+ id: 301
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 70
+ pid: 0
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 20, 20, 10)
+ y_weights: ( 1, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 70
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,1,1,1)
+ text: "Name:"
+ },
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,2,1,1)
+ text: "Type:"
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (3,1,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (3,2,1,1)
+ text: "Sector:"
+ },
+
+ defctrl: {
+ style: 2
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ active_color: ( 62, 106, 151)
+ border_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ border: true
+ simple: true
+ bevel_width: 3
+ transparent: false
+ cell_insets: (0,20,0,5)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,1,1,1)
+ single_line: true,
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (2,2,1,1)
+
+ item: "Patrol",
+ item: "Sweep",
+ item: "Intercept",
+ item: "Airborne Patrol",
+ item: "Airborne Sweep",
+ item: "Airborne Intercept",
+ item: "Strike",
+ item: "Assault",
+ item: "Defend",
+ item: "Escort",
+ item: "Freight Escort",
+ item: "Shuttle Escort",
+ item: "Strike Escort",
+ item: "Intel",
+ item: "Scout",
+ item: "Recon",
+ item: "Blockade",
+ item: "Fleet",
+ item: "Attack",
+ item: "Flight Ops",
+ item: "Transport",
+ item: "Cargo",
+ item: "Training",
+ item: "Misc",
+ }
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (4,1,1,1)
+ }
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (4,2,1,1)
+ }
+
+ defctrl: {
+ fixed_height: 0
+ fixed_width: 0
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 400
+ pid: 0
+ type: panel
+ transparent: false
+ style: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 20, 100, 10)
+ x_weights: ( 0, 1, 0, 1, 0)
+
+ y_mins: ( 15, 20, 50, 20, 50, 15)
+ y_weights: ( 0, 0, 1, 0, 2, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Limerick12
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ pid: 400
+
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ transparent: true
+ style: 0x0040
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ cells: (1,1,3,1)
+ text: Description
+ },
+
+ ctrl: {
+ id: 402
+ type: label
+ cells: (1,3,1,1)
+ text: Situation
+ },
+
+ ctrl: {
+ id: 403
+ type: label
+ cells: (3,3,1,1)
+ text: Objective
+ },
+
+ defctrl: {
+ font: Verdana
+ style: 0x02
+ scroll_bar: 0
+ bevel_width: 0
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ fixed_height: 0
+ cell_insets: (0,0,0,5)
+ },
+
+ ctrl: {
+ id: 410
+ type: edit
+ cells: (1,2,3,1)
+ text: "Description goes here."
+ },
+
+ ctrl: {
+ id: 411
+ type: edit
+ cells: (1,4,1,1)
+ text: "Situation goes here."
+ },
+
+ ctrl: {
+ id: 412
+ type: edit
+ cells: (3,4,1,1)
+ text: "Objective goes here."
+ },
+
+ // main panel:
+
+ ctrl: {
+ id: 500
+ pid: 0
+ type: panel
+ transparent: false
+ style: 0
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 110, 110, 110, 10, 25, 25, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0)
+
+ y_mins: ( 15, 20, 50, 20, 20, 50, 20, 15)
+ y_weights: ( 0, 0, 1, 0, 0, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Limerick12
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ pid: 500
+
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+
+ ctrl: {
+ id: 510,
+ type: list,
+ cells: (1,2,6,1)
+ back_color: ( 41, 41, 41),
+
+ font: Verdana
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: IFF,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: CALLSIGN,
+ width: 125,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: TYPE,
+ width: 125,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: ROLE,
+ width: 107,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SECTOR,
+ width: 125,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 520,
+ type: list,
+ cells: (1,5,6,1)
+ back_color: ( 41, 41, 41),
+
+ font: Verdana
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: ID,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: TIME,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: EVENT,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SHIP,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: MESSAGE,
+ width: 232,
+ align: left,
+ sort: 0 },
+ },
+
+
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ fore_color: (0,0,0)
+ cell_insets: (0,5,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 501
+ type: button
+ cells: (1,1,1,1)
+ text: "Add Elem"
+ },
+
+ ctrl: {
+ id: 505
+ type: button
+ cells: (2,1,1,1)
+ text: "Edit Elem"
+ },
+
+ ctrl: {
+ id: 502
+ type: button
+ cells: (3,1,1,1)
+ text: "Del Elem"
+ },
+
+ ctrl: {
+ id: 511
+ type: button
+ cells: (1,4,1,1)
+ text: "Add Event"
+ },
+
+ ctrl: {
+ id: 515
+ type: button
+ cells: (2,4,1,1)
+ text: "Edit Event"
+ },
+
+ ctrl: {
+ id: 512
+ type: button
+ cells: (3,4,1,1)
+ text: "Del Event"
+ },
+
+ defctrl: {
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ fore_color: (0,0,0)
+ align: center
+ fixed_height: 19
+ fixed_width: 19
+ },
+
+ ctrl: {
+ id: 503,
+ type: button,
+ cells: (5,3,1,1)
+ text: "^",
+ },
+
+ ctrl: {
+ id: 504,
+ type: button,
+ cells: (6,3,1,1)
+ text: "V",
+ },
+
+ ctrl: {
+ id: 513,
+ type: button,
+ cells: (5,6,1,1)
+ text: "^",
+ },
+
+ ctrl: {
+ id: 514,
+ type: button,
+ cells: (6,6,1,1)
+ text: "V",
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/MsnEditNavDlg.frm b/data/shatter/Screens/MsnEditNavDlg.frm
new file mode 100644
index 0000000..d9d1518
--- /dev/null
+++ b/data/shatter/Screens/MsnEditNavDlg.frm
@@ -0,0 +1,520 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnEditNavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 2, 4, 2, 2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 20
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 21
+ type: background
+ texture: Frame2a
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 22
+ type: background
+ texture: Frame2b
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Editor - Navigation Form",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 90
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0)
+ cell_insets: (0,4,0,0)
+ pid: 90
+ },
+
+ ctrl: {
+ id: 301
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 302
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 303
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 70
+ pid: 0
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 10, 20, 20, 10)
+ y_weights: ( 1, 1, 1, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ pid: 70
+ },
+
+ ctrl: {
+ id: 71
+ type: label
+ cells: (1,1,1,1)
+ text: "Name:"
+ },
+
+ ctrl: {
+ id: 72
+ type: label
+ cells: (1,2,1,1)
+ text: "Type:"
+ },
+
+ ctrl: {
+ id: 73
+ type: label
+ cells: (3,1,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 74
+ type: label
+ cells: (3,2,1,1)
+ text: "Sector:"
+ },
+
+ defctrl: {
+ style: 2
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ active_color: ( 62, 106, 151)
+ border_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ border: true
+ simple: true
+ bevel_width: 3
+ transparent: false
+ cell_insets: (0,20,0,5)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,1,1,1)
+ single_line: true,
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (2,2,1,1)
+
+ item: "Patrol",
+ item: "Sweep",
+ item: "Intercept",
+ item: "Airborne Patrol",
+ item: "Airborne Sweep",
+ item: "Airborne Intercept",
+ item: "Strike",
+ item: "Assault",
+ item: "Defend",
+ item: "Escort",
+ item: "Freight Escort",
+ item: "Shuttle Escort",
+ item: "Strike Escort",
+ item: "Intel",
+ item: "Scout",
+ item: "Recon",
+ item: "Blockade",
+ item: "Fleet",
+ item: "Attack",
+ item: "Flight Ops",
+ item: "Transport",
+ item: "Cargo",
+ item: "Training",
+ item: "Misc",
+ }
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (4,1,1,1)
+ }
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (4,2,1,1)
+ }
+
+ defctrl: {
+ fixed_height: 0
+ fixed_width: 0
+ pid: 0
+ }
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 100, 100, 10, 24, 24, 15, 95, 90, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
+
+ y_mins: ( 15, 25, 25, 25, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 1, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,2,6,4)
+ cell_insets: (0,0,0,0)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+ style: 2
+ font: Limerick12
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (1,1,1,1)
+ text: Galaxy
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (2,1,1,1)
+ text: System
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (3,1,1,1)
+ text: Sector
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ //font: Verdana,
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (5,1,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (6,1,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 0
+ cell_insets: (0,2,0,6)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: button
+ cells: (8,1,1,1)
+ text: System
+ }
+
+ ctrl: {
+ id: 403
+ pid: 800
+ type: button
+ cells: (8,2,1,1)
+ text: Sector
+ }
+
+ ctrl: {
+ id: 405
+ pid: 800
+ type: button
+ cells: (8,3,1,1)
+ text: Starship
+ }
+
+ defctrl: {
+ cell_insets: (2,0,0,6)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 800
+ type: button
+ cells: (9,1,1,1)
+ text: Planet
+ }
+
+ ctrl: {
+ id: 404
+ pid: 800
+ type: button
+ cells: (9,2,1,1)
+ text: Station
+ }
+
+ ctrl: {
+ id: 406
+ pid: 800
+ type: button
+ cells: (9,3,1,1)
+ text: Fighter
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+
+ scroll_bar: 2
+ style: 0x02
+ transparent: false
+
+ cell_insets: (0,0,5,0)
+ },
+
+ ctrl: {
+ id: 801
+ pid: 800
+ type: list
+ cells: (8,4,2,1)
+ show_headings: true
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 800
+ type: list
+ cells: (8,5,2,1)
+ show_headings: false
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/MsnElemDlg.frm b/data/shatter/Screens/MsnElemDlg.frm
new file mode 100644
index 0000000..9d5aebf
--- /dev/null
+++ b/data/shatter/Screens/MsnElemDlg.frm
@@ -0,0 +1,494 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnElemDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,600,450)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 100, 100, 20)
+ x_weights: ( 0, 1, 1, 1, 0)
+
+ y_mins: (44, 30, 100, 10, 35)
+ y_weights: ( 0, 0, 1, 0, 0)
+ }
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "Mission Element"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 100
+ type: panel
+ cells: (1,2,3,1)
+ transparent: true
+
+ layout: {
+ x_mins: (80, 100, 20, 90, 100)
+ x_weights: ( 0, 1, 0, 0, 1)
+
+ y_mins: (25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ pid: 100
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (0,0,1,1)
+ text: "Name:",
+ },
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (0,1,1,1)
+ text: "Class:",
+ },
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (0,2,1,1)
+ text: "Design:"
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ cells: (0,3,1,1)
+ text: "Skin:"
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ cells: (0,4,1,1)
+ text: "Size:"
+ },
+
+ ctrl: {
+ id: 105,
+ type: label,
+ cells: (0,5,1,1)
+ text: "IFF:",
+ },
+
+ ctrl: {
+ id: 107,
+ type: label,
+ cells: (0,6,1,1)
+ text: "Role:",
+ },
+
+ ctrl: {
+ id: 108,
+ type: label,
+ cells: (0,7,1,1)
+ text: "Sector:",
+ },
+
+ ctrl: {
+ id: 109,
+ type: label,
+ cells: (0,8,1,1)
+ text: "Loc: (km)",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (0,9,1,1)
+ text: "Heading:",
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (0,10,1,1)
+ text: "Hold Time:",
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (0,11,1,1)
+ text: "Intel:",
+ },
+
+
+ // right column:
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,0,1,1)
+ text: "Player:",
+ },
+
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Alert:",
+ },
+
+ ctrl: {
+ id: 122,
+ type: label,
+ cells: (3,2,1,1)
+ text: "Playable:",
+ },
+
+ ctrl: {
+ id: 123,
+ type: label,
+ cells: (3,3,1,1)
+ text: "Command AI:",
+ },
+
+ ctrl: {
+ id: 124,
+ type: label,
+ cells: (3,4,1,1)
+ text: "Respawns:",
+ },
+
+ ctrl: {
+ id: 125,
+ type: label,
+ cells: (3,5,1,1)
+ text: "Cmdr:",
+ },
+
+ ctrl: {
+ id: 126,
+ type: label,
+ cells: (3,6,1,1)
+ text: "Carrier:",
+ },
+
+ ctrl: {
+ id: 127,
+ type: label,
+ cells: (3,7,1,1)
+ text: "Squadron:",
+ },
+
+ ctrl: {
+ id: 129,
+ type: label,
+ cells: (3,8,1,1)
+ text: "Loadout:",
+ },
+
+ ctrl: {
+ id: 130,
+ type: label,
+ cells: (3,9,1,1)
+ text: "Objective:",
+ },
+
+ ctrl: {
+ id: 131,
+ type: label,
+ cells: (3,10,1,1)
+ text: "Target:",
+ },
+
+ defctrl: {
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 0,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41),
+ border_color: (192, 192, 192),
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (1,0,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 213,
+ type: combo,
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: edit,
+ cells: (1,4,1,1)
+ text: "1",
+ },
+
+ ctrl: {
+ id: 205,
+ type: edit,
+ cells: (1,5,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 206,
+ type: combo,
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 207,
+ type: combo,
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 28
+ type: panel
+ transparent: true
+ cells: (1,8,1,1)
+ layout: {
+ x_mins: (20, 5, 20, 5, 20)
+ x_weights: ( 1, 0, 1, 0, 1)
+
+ y_mins: (25)
+ y_weights: ( 1)
+ }
+ }
+
+ ctrl: {
+ id: 208
+ pid: 28
+ type: edit,
+ cells: (0,0,1,1)
+ text: "0", // X
+ },
+
+ ctrl: {
+ id: 209
+ pid: 28
+ type: edit,
+ cells: (2,0,1,1)
+ text: "0", // Y
+ },
+
+ ctrl: {
+ id: 210
+ pid: 28
+ type: edit,
+ cells: (4,0,1,1)
+ text: "0", // Z
+ },
+
+ ctrl: {
+ id: 211,
+ type: combo,
+ cells: (1,9,1,1)
+
+ item: "North",
+ item: "East",
+ item: "South",
+ item: "West",
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (1,10,1,1)
+ text: "",
+ },
+
+ ctrl: {
+ id: 229,
+ type: combo,
+ cells: (1,11,1,1)
+ },
+
+ // right column:
+ defctrl: {
+ active_color: (250, 250, 100),
+ back_color: ( 92, 92, 92),
+ active: true,
+ border: false,
+
+ fixed_width: 16
+ fixed_height: 16
+
+ standard_image: Checkbox_0
+ activated_image: Checkbox_2
+ transition_image: Checkbox_1
+ sticky: true
+ }
+
+ ctrl: {
+ id: 221,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,0,1,1)
+ },
+
+ ctrl: {
+ id: 222,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 223,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,2,1,1)
+ },
+
+ ctrl: {
+ id: 224,
+ type: button,
+ bevel_style: checkbox,
+ cells: (4,3,1,1)
+ },
+
+ defctrl: {
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41),
+ border_color: (192, 192, 192),
+ border: true,
+ fixed_width: 0
+ fixed_height: 18
+
+ standard_image: ""
+ activated_image: ""
+ transition_image: ""
+ sticky: false
+ },
+
+ ctrl: {
+ id: 225,
+ type: edit,
+ cells: (4,4,1,1)
+ text: "0",
+ },
+
+ ctrl: {
+ id: 226,
+ type: combo,
+ cells: (4,5,1,1)
+ },
+
+ ctrl: {
+ id: 227,
+ type: combo,
+ cells: (4,6,1,1)
+ },
+
+ ctrl: {
+ id: 228,
+ type: combo,
+ cells: (4,7,1,1)
+ },
+
+ ctrl: {
+ id: 230,
+ type: combo,
+ cells: (4,8,1,1)
+ },
+
+ ctrl: {
+ id: 231,
+ type: combo,
+ cells: (4,9,1,1)
+ },
+
+ ctrl: {
+ id: 232,
+ type: combo,
+ cells: (4,10,1,1)
+ },
+
+
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/shatter/Screens/MsnEventDlg.frm b/data/shatter/Screens/MsnEventDlg.frm
new file mode 100644
index 0000000..b4e0d06
--- /dev/null
+++ b/data/shatter/Screens/MsnEventDlg.frm
@@ -0,0 +1,326 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnElemDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,600,450)
+ back_color: (0,0,0)
+ fore_color: (255,255,255)
+ font: Limerick12
+
+ texture: "Message.pcx"
+ margins: (50,40,48,40)
+
+ layout: {
+ x_mins: (20, 100, 100, 100, 20)
+ x_weights: ( 0, 1, 1, 1, 0)
+
+ y_mins: (44, 30, 100, 10, 35)
+ y_weights: ( 0, 0, 1, 0, 0)
+ }
+
+ defctrl: {
+ active_color: ( 62, 106, 151)
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 10
+ type: label
+ text: "Mission Event"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ ctrl: {
+ id: 100
+ type: panel
+ cells: (1,2,3,1)
+ transparent: true
+
+ layout: {
+ x_mins: (80, 100, 30, 90, 100)
+ x_weights: ( 0, 1, 0, 0, 1)
+
+ y_mins: (25, 25, 25, 25, 25, 25, 25, 25, 25, 25)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ pid: 100
+ }
+
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (0,0,1,1)
+ text: "ID:",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (0,1,1,1)
+ text: "Time:",
+ },
+
+ ctrl: {
+ id: 103,
+ type: label,
+ cells: (0,2,1,1)
+ text: "Delay:",
+ },
+
+ ctrl: {
+ id: 104,
+ type: label,
+ cells: (0,3,1,1)
+ text: "Action:",
+ },
+
+ ctrl: {
+ id: 105,
+ type: label,
+ cells: (0,4,1,1)
+ text: "Ship:",
+ },
+
+ ctrl: {
+ id: 106,
+ type: label,
+ cells: (0,5,1,1)
+ text: "Source:",
+ },
+
+ ctrl: {
+ id: 107,
+ type: label,
+ cells: (0,6,1,1)
+ text: "Target:",
+ },
+
+ ctrl: {
+ id: 108,
+ type: label,
+ cells: (0,7,1,1)
+ text: "Param",
+ },
+
+ ctrl: {
+ id: 109,
+ type: label,
+ cells: (0,8,1,1)
+ text: "Sound:",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (0,9,1,1)
+ text: "Message:",
+ },
+
+
+ // right column:
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,1,1,1)
+ text: "Chance:",
+ },
+
+ ctrl: {
+ id: 121,
+ type: label,
+ cells: (3,3,1,1)
+ text: "Trigger:",
+ },
+
+ ctrl: {
+ id: 122,
+ type: label,
+ cells: (3,4,1,1)
+ text: "Ship:",
+ },
+
+ ctrl: {
+ id: 123,
+ type: label,
+ cells: (3,5,1,1)
+ text: "Target:",
+ },
+
+ ctrl: {
+ id: 124,
+ type: label,
+ cells: (3,6,1,1)
+ text: "Param:",
+ },
+
+ ctrl: {
+ id: 201,
+ type: label,
+ cells: (1,0,1,1)
+ text: "",
+ },
+
+ defctrl: {
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 0,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 205,
+ type: combo,
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 206,
+ type: combo,
+ cells: (1,5,1,1)
+ },
+
+ ctrl: {
+ id: 207,
+ type: combo,
+ cells: (1,6,1,1)
+ },
+
+ ctrl: {
+ id: 208,
+ type: edit,
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 209,
+ type: edit,
+ cells: (1,8,1,1)
+ },
+
+ ctrl: {
+ id: 210,
+ type: edit,
+ cells: (1,9,4,1)
+ cell_insets: (0,0,0,15)
+ fixed_height: 0
+ },
+
+ defctrl: {
+ active: true,
+ active_color: ( 62, 106, 151)
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ border: true,
+ sticky: true,
+ },
+
+ // right column:
+ ctrl: {
+ id: 220,
+ type: edit,
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 221,
+ type: combo,
+ cells: (4,3,1,1)
+ },
+
+ ctrl: {
+ id: 222,
+ type: combo,
+ cells: (4,4,1,1)
+ },
+
+ ctrl: {
+ id: 223,
+ type: combo,
+ cells: (4,5,1,1)
+ },
+
+ ctrl: {
+ id: 224,
+ type: edit,
+ cells: (4,6,1,1)
+ },
+
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ pid: 0
+ fixed_height: 19
+ fixed_width: 0
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (2,4,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (3,4,1,1),
+ }
+}
diff --git a/data/shatter/Screens/MsnNavDlg.frm b/data/shatter/Screens/MsnNavDlg.frm
new file mode 100644
index 0000000..64e69d8
--- /dev/null
+++ b/data/shatter/Screens/MsnNavDlg.frm
@@ -0,0 +1,477 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnNavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Briefing",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: WEP
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "alpha"
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "Sector:"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "bravo"
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "Day 7 11:32:04"
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 10, 100, 100, 100, 10, 24, 24, 15, 95, 90, 10)
+ x_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0)
+
+ y_mins: ( 15, 25, 25, 20, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 1, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,2,6,4)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+ style: 2
+ font: Limerick12
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (1,1,1,1)
+ text: Galaxy
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (2,1,1,1)
+ text: System
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (3,1,1,1)
+ text: Sector
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ //font: Verdana,
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (5,1,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (6,1,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 0
+ cell_insets: (0,2,0,6)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: button
+ cells: (8,1,1,1)
+ text: System
+ }
+
+ ctrl: {
+ id: 403
+ pid: 800
+ type: button
+ cells: (8,2,1,1)
+ text: Sector
+ }
+
+ ctrl: {
+ id: 405
+ pid: 800
+ type: button
+ cells: (8,3,1,1)
+ text: Starship
+ }
+
+ defctrl: {
+ cell_insets: (2,0,0,6)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 800
+ type: button
+ cells: (9,1,1,1)
+ text: Planet
+ }
+
+ ctrl: {
+ id: 404
+ pid: 800
+ type: button
+ cells: (9,2,1,1)
+ text: Station
+ }
+
+ ctrl: {
+ id: 406
+ pid: 800
+ type: button
+ cells: (9,3,1,1)
+ text: Fighter
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+
+ scroll_bar: 2
+ style: 0x02
+ transparent: false
+
+ cell_insets: (0,0,5,0)
+ },
+
+ ctrl: {
+ id: 801
+ pid: 800
+ type: list
+ cells: (8,4,2,1)
+ show_headings: true
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 800
+ type: list
+ cells: (8,5,2,1)
+ show_headings: false
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/MsnObjDlg.frm b/data/shatter/Screens/MsnObjDlg.frm
new file mode 100644
index 0000000..d4df20e
--- /dev/null
+++ b/data/shatter/Screens/MsnObjDlg.frm
@@ -0,0 +1,352 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnObjDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Briefing",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: WEP
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "alpha"
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "Sector:"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "bravo"
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "Day 7 11:32:04"
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 3, 0, 2, 0)
+
+ y_mins: ( 10, 20, 100, 20, 60, 20)
+ y_weights: ( 0, 0, 2, 0, 1, 0)
+ }
+ }
+
+ ctrl: {
+ id: 300
+ pid: 800
+ type: label
+ cells: (3,2,1,2)
+ font: Limerick12
+ transparent: true
+ },
+
+ ctrl: {
+ id: 301
+ pid: 800
+ type: label
+ cells: (3,4,1,1)
+ text: "Player Desc"
+ align: center
+ single_line: true
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 302
+ pid: 800
+ type: combo
+ cells: (3,4,1,1)
+ cell_insets: (20,20,24,0)
+
+ style: 0x02
+ scroll_bar: 0
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ transparent: false
+ simple: true
+ border: true
+ single_line: true
+ fixed_height: 18
+ bevel_width: 3
+ }
+
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (1,3,1,1)
+ text: Objectives
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 400
+ pid: 800
+ type: label
+ cells: (1,4,1,1)
+ text: "objective goes here",
+ font: Verdana
+ },
+
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: label
+ cells: (1,1,1,1)
+ text: Situation
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 401
+ pid: 800
+ type: label
+ cells: (1,2,1,1)
+ text: "sitrep goes here"
+ font: Verdana
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/MsnPkgDlg.frm b/data/shatter/Screens/MsnPkgDlg.frm
new file mode 100644
index 0000000..4950e00
--- /dev/null
+++ b/data/shatter/Screens/MsnPkgDlg.frm
@@ -0,0 +1,467 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnObjDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Briefing",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: WEP
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "alpha"
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "Sector:"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "bravo"
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "Day 7 11:32:04"
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 10, 100, 20)
+ x_weights: ( 0, 2, 0, 1, 0)
+
+ y_mins: ( 10, 20, 60, 10, 20, 60, 20)
+ y_weights: ( 0, 0, 1, 0, 0, 1, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255, 255, 255),
+ font: Limerick12,
+ bevel_width: 0,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0),
+ transparent: true
+ },
+
+ ctrl: {
+ id: 120
+ pid: 800
+ type: label,
+ cells: (1,1,1,1)
+ text: "Package Elements"
+ },
+
+ ctrl: {
+ id: 320
+ pid: 800
+ type: list,
+ cells: (1,2,1,1)
+ font: Verdana
+
+ back_color: (41,41,41),
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: PKG,
+ width: 50,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: CALLSIGN,
+ width: 90,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: ROLE,
+ width: 82,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: TYPE,
+ width: 60,
+ align: left,
+ sort: 0 },
+ }
+
+ ctrl: {
+ id: 130
+ pid: 800
+ type: label
+ cells: (1,4,1,1)
+ text: "Nav Plan"
+ },
+
+ ctrl: {
+ id: 330
+ pid: 800
+ type: list,
+ cells: (1,5,1,1)
+ font: Verdana
+ back_color: (41,41,41),
+ transparent: false,
+
+ style: 0x02,
+ item_style: 0x00,
+ selected_style: 0x00,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+
+ column: {
+ title: "NO.",
+ width: 40,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: ACTION,
+ width: 70,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: SECTOR,
+ width: 62,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: DIST,
+ width: 60,
+ align: right,
+ sort: 0 },
+
+ column: {
+ title: SPEED,
+ width: 50,
+ align: right,
+ sort: 0 },
+ },
+
+
+ ctrl: {
+ id: 150
+ pid: 800
+ type: label
+ cells: (3,1,1,1)
+ text: "Threat Analysis"
+ },
+
+ defctrl: {
+ font: Verdana
+ }
+
+ ctrl: {
+ id: 9999
+ pid: 800
+ type: panel
+ transparent: true
+
+ cells: (3,2,1,3),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 0)
+ x_weights: ( 1)
+
+ y_mins: ( 20, 20, 20, 20, 20, 20, 20, 20)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0)
+ }
+ }
+
+
+ ctrl: {
+ id: 250
+ pid: 9999
+ type: label
+ cells: (0,0,1,1)
+ text: "Suspected threats in your operating area:"
+ },
+
+ ctrl: {
+ id: 251,
+ pid: 9999
+ type: label
+ cells: (0,2,1,1)
+ },
+
+ ctrl: {
+ id: 252,
+ pid: 9999
+ type: label
+ cells: (0,3,1,1)
+ },
+
+ ctrl: {
+ id: 253,
+ pid: 9999
+ type: label
+ cells: (0,4,1,1)
+ },
+
+ ctrl: {
+ id: 254,
+ pid: 9999
+ type: label
+ cells: (0,5,1,1)
+ },
+
+ ctrl: {
+ id: 255,
+ pid: 9999
+ type: label
+ cells: (0,6,1,1)
+ }
+
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/MsnSelectDlg.frm b/data/shatter/Screens/MsnSelectDlg.frm
new file mode 100644
index 0000000..48fbc6d
--- /dev/null
+++ b/data/shatter/Screens/MsnSelectDlg.frm
@@ -0,0 +1,241 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnSelectDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 1, 1, 0, 3, 3, 3, 0),
+
+ y_mins: (28, 25, 20, 52, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Single Missions",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: true
+
+ cells: (1,3,6,3)
+ cell_insets: (10,10,14,54)
+ hide_partial: false
+
+ layout: {
+ x_mins: (50, 50, 50, 20, 50, 50, 50)
+ x_weights: ( 1, 1, 1, 0, 1, 1, 1)
+
+ y_mins: (25, 100, 5, 25, 100, 10, 25)
+ y_weights: ( 0, 1, 0, 0, 2, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ fore_color: (255,255,255)
+ back_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ transparent: true
+ },
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ cells: (0,0,3,1)
+ text: "Campaign"
+ style: 0x0040,
+ },
+
+ ctrl: {
+ id: 102,
+ pid: 300
+ type: label
+ cells: (0,3,3,1)
+ text: "Mission",
+ style: 0x0040,
+ },
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ cells: (4,3,3,1)
+ text: "Description"
+ style: 0x0040
+ },
+
+ defctrl: {
+ active_color: (192, 192, 192)
+ fore_color: (255, 255, 255)
+ back_color: ( 61, 61, 61)
+ bevel_width: 0
+ texture: Panel
+ margins: (12,12,12,0)
+
+ align: left
+
+ font: Verdana
+ simple: true
+ text_align: left
+ transparent: false
+ style: 0x02
+ scroll_bar: 2
+ },
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: list,
+ cells: (0,1,3,1)
+
+ column: {
+ title: Campaigns,
+ width: 202,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: list
+ cells: (0,4,3,1)
+
+ column: {
+ title: Missions,
+ width: 202,
+ align: left,
+ sort: 0 }
+ },
+
+ ctrl: {
+ id: 200
+ pid: 300
+ type: text
+ cells: (4,4,3,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ fixed_height: 19
+ cell_insets: (5,5,0,0)
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 301
+ pid: 300
+ type: button
+ cells: (0,6,1,1)
+ text: "New"
+ },
+
+ ctrl: {
+ id: 302
+ pid: 300
+ type: button
+ cells: (1,6,1,1)
+ text: "Edit"
+ },
+
+ ctrl: {
+ id: 303
+ pid: 300
+ type: button
+ cells: (2,6,1,1)
+ text: "Delete"
+ },
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/shatter/Screens/MsnWepDlg.frm b/data/shatter/Screens/MsnWepDlg.frm
new file mode 100644
index 0000000..8565db4
--- /dev/null
+++ b/data/shatter/Screens/MsnWepDlg.frm
@@ -0,0 +1,509 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MsnObjDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 10, 90, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9990
+ type: background
+ texture: Frame4a
+ cells: (1,3,4,1),
+ cell_insets: (0,0,0,0),
+ margins: (2,2,16,16)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,4,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Mission Briefing",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+ // tabs:
+
+ ctrl: {
+ id: 999
+ type: panel
+ transparent: true
+ cells: (1,4,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (80, 80, 80, 80, 5)
+ x_weights: ( 1, 1, 1, 1, 15)
+
+ y_mins: (24),
+ y_weights: ( 0)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 900
+ pid: 999
+ type: button
+ text: SIT
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 901
+ pid: 999
+ type: button
+ text: PKG
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 999
+ type: button
+ text: MAP
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 999
+ type: button
+ text: WEP
+ cells: (3,0,1,1)
+ }
+
+ // info panel:
+
+ ctrl: {
+ id: 700
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,3,4,1),
+ cell_insets: (10,10,12,10)
+
+ layout: {
+ x_mins: ( 20, 60, 100, 60, 100, 20)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: ( 0, 20, 15, 15, 0)
+ y_weights: ( 1, 0, 0, 0, 1)
+ }
+ }
+
+ defctrl: {
+ align: left
+ bevel_width: 0
+ font: Verdana
+ fore_color: (255, 255, 255)
+ standard_image: ""
+ activated_image: ""
+ transparent: true
+ margins: (0,0,0,0)
+ cell_insets: (0,0,0,0)
+ text_insets: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 200
+ pid: 700
+ type: label
+ cells: (1,1,2,1)
+ text: "title goes here",
+ fore_color: (255, 255, 128)
+ font: Limerick12
+ },
+
+ ctrl: {
+ id: 201
+ pid: 700
+ type: label
+ cells: (1,2,1,1)
+ text: "System:"
+ },
+
+ ctrl: {
+ id: 202
+ pid: 700
+ type: label
+ cells: (2,2,1,1)
+ text: "alpha"
+ },
+
+ ctrl: {
+ id: 203
+ pid: 700
+ type: label
+ cells: (1,3,1,1)
+ text: "Sector:"
+ },
+
+ ctrl: {
+ id: 204
+ pid: 700
+ type: label
+ cells: (2,3,1,1)
+ text: "bravo"
+ },
+
+
+ ctrl: {
+ id: 206
+ pid: 700
+ type: label
+ cells: (4,1,1,1)
+ text: "Day 7 11:32:04"
+ align: right
+ },
+
+
+ // main panel:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,5,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 80, 120, 30, 30, 30, 30, 5, 30, 30, 30, 30, 10, 20)
+ x_weights: ( 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 2, 0)
+
+ y_mins: ( 15, 20, 20, 20, 30, 15, 20, 20,20,20,20, 20,20,20,20, 20)
+ y_weights: ( 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ }
+ }
+
+
+ defctrl: {
+ pid: 800
+ transparent: true
+ font: Limerick12
+ }
+
+ ctrl: {
+ id: 604
+ type: list
+ cells: (3,2,9,3)
+ font: Verdana
+
+ back_color: (41,41,41)
+ transparent: false
+
+ style: 0x02
+ item_style: 0x00
+ selected_style: 0x02
+ scroll_bar: 2
+ leading: 2
+ show_headings: true
+
+ column: {
+ title: NAME,
+ width: 160,
+ align: left,
+ sort: 1,
+ },
+
+ column: {
+ title: WEIGHT,
+ width: 72,
+ align: right,
+ sort: 1,
+ },
+ },
+
+ ctrl: { id: 90 type: label cells: (3,1,9,1) text: "Standard Loadouts" }
+ ctrl: { id: 91 type: label cells: (1,1,1,1) text: "Element:" }
+ ctrl: { id: 601 type: label cells: (2,1,1,1) }
+ ctrl: { id: 92 type: label cells: (1,2,1,1) text: "Type:" }
+ ctrl: { id: 602 type: label cells: (2,2,1,1) }
+ ctrl: { id: 93 type: label cells: (1,3,1,1) text: "Weight:" }
+ ctrl: { id: 603 type: label cells: (2,3,1,1) }
+ ctrl: { id: 94 type: label cells: (1,6,2,1) text: "Custom Loadouts" }
+
+ defctrl: { font: Verdana align: left },
+
+ ctrl: { id: 401 type: label cells: ( 3,6,1,1) }
+ ctrl: { id: 402 type: label cells: ( 4,6,1,1) }
+ ctrl: { id: 403 type: label cells: ( 5,6,1,1) }
+ ctrl: { id: 404 type: label cells: ( 6,6,1,1) }
+
+ ctrl: { id: 405 type: label cells: ( 8,6,1,1) }
+ ctrl: { id: 406 type: label cells: ( 9,6,1,1) }
+ ctrl: { id: 407 type: label cells: (10,6,1,1) }
+ ctrl: { id: 408 type: label cells: (11,6,1,1) }
+
+ defctrl: { transparent: true align: left },
+
+ ctrl: {
+ id: 500
+ type: label
+ cells: (1,7,2,1)
+ text: "Weapon 1"
+ }
+
+ ctrl: {
+ id: 510
+ type: label
+ cells: (1,8,2,1)
+ text: "Weapon 2"
+ }
+
+ ctrl: {
+ id: 520
+ type: label
+ cells: (1,9,2,1)
+ text: "Weapon 3"
+ }
+
+ ctrl: {
+ id: 530
+ type: label
+ cells: (1,10,2,1)
+ text: "Weapon 4"
+ }
+
+ ctrl: {
+ id: 540
+ type: label
+ cells: (1,11,2,1)
+ text: "Weapon 5"
+ }
+
+ ctrl: {
+ id: 550
+ type: label
+ cells: (1,12,2,1)
+ text: "Weapon 6"
+ }
+
+ ctrl: {
+ id: 560
+ type: label
+ cells: (1,13,2,1)
+ text: "Weapon 7"
+ }
+
+ ctrl: {
+ id: 570
+ type: label
+ cells: (1,14,2,1)
+ text: "Weapon 8"
+ }
+
+ defctrl: {
+ transparent: false
+ align: center
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ fixed_width: 19
+ fixed_height: 19
+ }
+
+ ctrl: { id: 501 type: button cells: ( 3,7,1,1) picture: "LED0.pcx" }
+ ctrl: { id: 502 type: button cells: ( 4,7,1,1) picture: "LED1.pcx" }
+ ctrl: { id: 503 type: button cells: ( 5,7,1,1) }
+ ctrl: { id: 504 type: button cells: ( 6,7,1,1) }
+
+ ctrl: { id: 505 type: button cells: ( 8,7,1,1) }
+ ctrl: { id: 506 type: button cells: ( 9,7,1,1) }
+ ctrl: { id: 507 type: button cells: (10,7,1,1) }
+ ctrl: { id: 508 type: button cells: (11,7,1,1) }
+
+ ctrl: { id: 511 type: button cells: ( 3,8,1,1) }
+ ctrl: { id: 512 type: button cells: ( 4,8,1,1) }
+ ctrl: { id: 513 type: button cells: ( 5,8,1,1) }
+ ctrl: { id: 514 type: button cells: ( 6,8,1,1) }
+
+ ctrl: { id: 515 type: button cells: ( 8,8,1,1) }
+ ctrl: { id: 516 type: button cells: ( 9,8,1,1) }
+ ctrl: { id: 517 type: button cells: (10,8,1,1) }
+ ctrl: { id: 518 type: button cells: (11,8,1,1) }
+
+ ctrl: { id: 521 type: button cells: ( 3,9,1,1) }
+ ctrl: { id: 522 type: button cells: ( 4,9,1,1) }
+ ctrl: { id: 523 type: button cells: ( 5,9,1,1) }
+ ctrl: { id: 524 type: button cells: ( 6,9,1,1) }
+
+ ctrl: { id: 525 type: button cells: ( 8,9,1,1) }
+ ctrl: { id: 526 type: button cells: ( 9,9,1,1) }
+ ctrl: { id: 527 type: button cells: (10,9,1,1) }
+ ctrl: { id: 528 type: button cells: (11,9,1,1) }
+
+ ctrl: { id: 531 type: button cells: ( 3,10,1,1) }
+ ctrl: { id: 532 type: button cells: ( 4,10,1,1) }
+ ctrl: { id: 533 type: button cells: ( 5,10,1,1) }
+ ctrl: { id: 534 type: button cells: ( 6,10,1,1) }
+
+ ctrl: { id: 535 type: button cells: ( 8,10,1,1) }
+ ctrl: { id: 536 type: button cells: ( 9,10,1,1) }
+ ctrl: { id: 537 type: button cells: (10,10,1,1) }
+ ctrl: { id: 538 type: button cells: (11,10,1,1) }
+
+ ctrl: { id: 541 type: button cells: ( 3,11,1,1) }
+ ctrl: { id: 542 type: button cells: ( 4,11,1,1) }
+ ctrl: { id: 543 type: button cells: ( 5,11,1,1) }
+ ctrl: { id: 544 type: button cells: ( 6,11,1,1) }
+
+ ctrl: { id: 545 type: button cells: ( 8,11,1,1) }
+ ctrl: { id: 546 type: button cells: ( 9,11,1,1) }
+ ctrl: { id: 547 type: button cells: (10,11,1,1) }
+ ctrl: { id: 548 type: button cells: (11,11,1,1) }
+
+ ctrl: { id: 551 type: button cells: ( 3,12,1,1) }
+ ctrl: { id: 552 type: button cells: ( 4,12,1,1) }
+ ctrl: { id: 553 type: button cells: ( 5,12,1,1) }
+ ctrl: { id: 554 type: button cells: ( 6,12,1,1) }
+
+ ctrl: { id: 555 type: button cells: ( 8,12,1,1) }
+ ctrl: { id: 556 type: button cells: ( 9,12,1,1) }
+ ctrl: { id: 557 type: button cells: (10,12,1,1) }
+ ctrl: { id: 558 type: button cells: (11,12,1,1) }
+
+ ctrl: { id: 561 type: button cells: ( 3,13,1,1) }
+ ctrl: { id: 562 type: button cells: ( 4,13,1,1) }
+ ctrl: { id: 563 type: button cells: ( 5,13,1,1) }
+ ctrl: { id: 564 type: button cells: ( 6,13,1,1) }
+
+ ctrl: { id: 565 type: button cells: ( 8,13,1,1) }
+ ctrl: { id: 566 type: button cells: ( 9,13,1,1) }
+ ctrl: { id: 567 type: button cells: (10,13,1,1) }
+ ctrl: { id: 568 type: button cells: (11,13,1,1) }
+
+ ctrl: { id: 571 type: button cells: ( 3,14,1,1) }
+ ctrl: { id: 572 type: button cells: ( 4,14,1,1) }
+ ctrl: { id: 573 type: button cells: ( 5,14,1,1) }
+ ctrl: { id: 574 type: button cells: ( 6,14,1,1) }
+
+ ctrl: { id: 575 type: button cells: ( 8,14,1,1) }
+ ctrl: { id: 576 type: button cells: ( 9,14,1,1) }
+ ctrl: { id: 577 type: button cells: (10,14,1,1) }
+ ctrl: { id: 578 type: button cells: (11,14,1,1) }
+
+
+
+/***
+ ctrl: {
+ id: 300
+ pid: 800
+ type: image
+ cells: (13,2,1,3)
+ font: GUI
+ transparent: true
+ },
+
+ ctrl: {
+ id: 301
+ pid: 800
+ type: label
+ cells: (13,5,1,3)
+ text: "Player Desc"
+ align: center
+ single_line: true
+ font: Limerick12
+ }
+***/
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ pid: 0
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_width: 0
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (3,6,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,6,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/NavDlg.frm b/data/shatter/Screens/NavDlg.frm
new file mode 100644
index 0000000..dd29568
--- /dev/null
+++ b/data/shatter/Screens/NavDlg.frm
@@ -0,0 +1,396 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NavDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 400, 20, 200, 10)
+ x_weights: ( 0, 1, 0, 0, 0)
+
+ y_mins: (28, 30, 10, 100, 25, 15)
+ y_weights: ( 0, 0, 0, 1, 0, 0)
+ },
+
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Navigation",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panels:
+
+ ctrl: {
+ id: 800
+ type: panel
+ transparent: true
+
+ cells: (1,3,1,2)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 10, 24, 24)
+ x_weights: ( 0, 0, 0, 1, 0, 0)
+
+ y_mins: (25, 325, 15, 75)
+ y_weights: ( 0, 1, 0, 0)
+ }
+ }
+
+ ctrl: {
+ id: 600
+ pid: 800
+ type: panel
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (0,3,6,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (10, 90, 90, 90, 90, 10)
+ x_weights: ( 0, 0, 1, 0, 1, 0)
+
+ y_mins: (70)
+ y_weights: ( 1)
+ }
+ }
+
+ ctrl: {
+ id: 850
+ type: panel
+ transparent: false
+
+ texture: Frame2
+ margins: (60,40,40,40),
+
+ cells: (3,3,1,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100)
+ x_weights: ( 0, 0)
+
+ y_mins: (30, 23, 23, 23, 15, 50, 50, 50, 15)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 1, 0, 0)
+ }
+ }
+
+ defctrl: {
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (0,0,0)
+ transparent: false
+ sticky: true
+ },
+
+ ctrl: {
+ id: 100
+ pid: 800
+ type: label
+ cells: (0,1,6,1)
+ fore_color: (255,255,255)
+ back_color: (41, 41, 41)
+
+ texture: Panel
+ margins: (12,12,12,0),
+ },
+
+ defctrl: {
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,5,0,6)
+ }
+
+ ctrl: {
+ id: 101
+ pid: 800
+ type: button
+ cells: (0,0,1,1)
+ text: Galaxy
+ },
+
+ ctrl: {
+ id: 102
+ pid: 800
+ type: button
+ cells: (1,0,1,1)
+ text: System
+ },
+
+ ctrl: {
+ id: 103
+ pid: 800
+ type: button
+ cells: (2,0,1,1)
+ text: Sector
+ },
+
+ defctrl: {
+ sticky: false,
+ standard_image: Button17x17_0
+ activated_image: Button17x17_1
+ transition_image: Button17x17_2
+ align: center
+ sticky: false
+ margins: (0,0,0,0)
+ cell_insets: (5,0,0,1)
+ fixed_width: 19
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 110
+ pid: 800
+ type: button
+ cells: (4,0,1,1)
+ text: "+"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 800
+ type: button
+ cells: (5,0,1,1)
+ text: "-"
+ },
+
+ defctrl: {
+ sticky: true
+ standard_image: Tab17_0
+ activated_image: Tab17_1
+ transition_image: Tab17_2
+ align: left
+ fixed_width: 0
+ fixed_height: 19
+ cell_insets: (5,2,0,0)
+ margins: (10,10,0,0)
+ },
+
+ ctrl: {
+ id: 401
+ pid: 850
+ type: button
+ cells: (0,1,1,1)
+ text: System
+ }
+
+ ctrl: {
+ id: 403
+ pid: 850
+ type: button
+ cells: (0,2,1,1)
+ text: Sector
+ }
+
+ ctrl: {
+ id: 405
+ pid: 850
+ type: button
+ cells: (0,3,1,1)
+ text: Starship
+ }
+
+ defctrl: {
+ cell_insets: (2,5,0,0)
+ }
+
+ ctrl: {
+ id: 402
+ pid: 850
+ type: button
+ cells: (1,1,1,1)
+ text: Planet
+ }
+
+ ctrl: {
+ id: 404
+ pid: 850
+ type: button
+ cells: (1,2,1,1)
+ text: Station
+ }
+
+ ctrl: {
+ id: 406
+ pid: 850
+ type: button
+ cells: (1,3,1,1)
+ text: Fighter
+ }
+
+ defctrl: {
+ sticky: false,
+ back_color: ( 41, 41, 41),
+ fore_color: (255, 255, 255),
+ font: Verdana
+ fixed_width: 0
+ fixed_height: 0
+
+ scroll_bar: 2
+ style: 0
+ transparent: false
+
+ cell_insets: (5,5,10,0)
+ },
+
+
+ defctrl: {
+ back_color: ( 41, 41, 41),
+ fore_color: ( 53, 159, 67),
+ font: "Verdana",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 601
+ pid: 600
+ type: label
+ cells: (1,0,1,1)
+ text: "Location"
+ },
+
+ ctrl: {
+ id: 602
+ pid: 600
+ type: label
+ cells: (3,0,1,1)
+ text: "Destination"
+ },
+
+ defctrl: {
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ fore_color: (255, 255, 255)
+ },
+
+ ctrl: {
+ id: 701
+ pid: 600
+ type: label
+ cells: (2,0,1,1)
+ },
+
+ ctrl: {
+ id: 702
+ pid: 600
+ type: label
+ cells: (4,0,1,1)
+ },
+
+ defctrl: {
+ transparent: false
+ },
+
+ ctrl: {
+ id: 801
+ pid: 850
+ type: list
+ cells: (0,5,2,1)
+ show_headings: true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ column: {
+ title: Name
+ width: 167
+ align: left
+ sort: 0
+ }
+ }
+
+ ctrl: {
+ id: 802
+ pid: 850
+ type: list
+ cells: (0,6,2,1)
+ show_headings: false
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ column: {
+ title: Name,
+ width: 70,
+ align: left,
+ sort: 0,
+ color: ( 53, 159, 67)
+ },
+
+ column: {
+ title: Value,
+ width: 92,
+ align: left,
+ sort: 0,
+ color: (255, 255, 255)
+ }
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,5,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 1
+ pid: 850
+ type: button
+ text: Commit
+ cells: (0,7,2,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Close
+ cells: (3,4,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/NetAddrDlg.frm b/data/shatter/Screens/NetAddrDlg.frm
new file mode 100644
index 0000000..0b5fdd2
--- /dev/null
+++ b/data/shatter/Screens/NetAddrDlg.frm
@@ -0,0 +1,145 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetAddrDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,280),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "Enter Server Address"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+
+
+ ctrl: {
+ id: 110
+ type: label
+ cells: (1,2,1,1)
+ text: "Name:"
+ },
+
+ ctrl: {
+ id: 111
+ type: label
+ cells: (1,3,1,1)
+ text: "Server: "
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Port:"
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ cells: (1,5,1,1)
+ text: "Password:"
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41)
+ style: 0x02
+ scroll_bar: 0
+ transparent: false
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 200
+ type: edit
+ cells: (2,2,2,1)
+ },
+
+ ctrl: {
+ id: 201,
+ type: edit,
+ cells: (2,3,2,1)
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (2,4,2,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (2,5,2,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Accept"
+ cells: (2,7,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel"
+ cells: (3,7,1,1),
+ }
+}
diff --git a/data/shatter/Screens/NetClientDlg.frm b/data/shatter/Screens/NetClientDlg.frm
new file mode 100644
index 0000000..db18eee
--- /dev/null
+++ b/data/shatter/Screens/NetClientDlg.frm
@@ -0,0 +1,205 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetClientDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 50, 100, 100, 100, 100, 100, 50, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 42, 5, 30, 60, 50, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,6),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,3,6),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Multiplayer Client",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 101
+ type: button
+ cells: (2,5,1,1)
+ text: "Add"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (3,5,1,1)
+ text: "Del",
+ },
+
+ ctrl: {
+ id: 210,
+ type: label,
+ cells: (4,5,3,1)
+ transparent: true,
+ font: Verdana
+ },
+
+ ctrl: {
+ id: 301,
+ type: button,
+ cells: (2,7,2,1)
+ text: "Local Server"
+ },
+
+ ctrl: {
+ id: 302,
+ type: button,
+ cells: (5,7,1,1)
+ cell_insets: (10,0,0,0)
+ text: "Host"
+ },
+
+ ctrl: {
+ id: 303,
+ type: button,
+ cells: (6,7,1,1)
+ cell_insets: (10,0,0,0)
+ text: "Join"
+ },
+
+ ctrl: {
+ id: 200,
+ type: list,
+ cells: (2,6,5,1)
+ cell_insets: (0,0,0,10)
+
+ fore_color: (255,255,255)
+ back_color: ( 61, 61, 61)
+ bevel_width: 0
+ fixed_height: 0
+ texture: Panel
+ margins: (12,12,12,0)
+
+ font: Verdana,
+ style: 0x02,
+ scroll_bar: 2,
+ show_headings: true,
+
+ column: {
+ title: "SERVER NAME",
+ width: 177,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: TYPE,
+ width: 85,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: PASSWORD,
+ width: 85,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: STATUS,
+ width: 65,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: PLAYERS,
+ width: 65,
+ align: center,
+ sort: 0 },
+
+ column: {
+ title: PING,
+ width: 65,
+ align: center,
+ sort: 0 },
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (50,5,0,0)
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 2
+ pid: 0
+ type: button
+ text: Close
+ cells: (6,8,2,1),
+ },
+
+}
diff --git a/data/shatter/Screens/NetLobbyDlg.frm b/data/shatter/Screens/NetLobbyDlg.frm
new file mode 100644
index 0000000..91ffa65
--- /dev/null
+++ b/data/shatter/Screens/NetLobbyDlg.frm
@@ -0,0 +1,218 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetLobbyDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 150, 100, 50, 100, 100, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 20, 20, 25, 50, 25, 50, 25, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,3,8),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (4,3,2,8),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Multiplayer Game Lobby",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: ( 41, 41, 41)
+ cell_insets: (10,10,0,0)
+ transparent: true
+ style: 0x40
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,4,2,1)
+ text: Missions
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (1,7,1,1)
+ text: Players
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (2,7,3,1)
+ text: Chat
+ }
+
+
+ defctrl: {
+ font: Verdana
+ transparent: false
+ style: 0x02
+ cell_insets: (10,10,0,5)
+ texture: Panel
+ margins: (12,12,12,0)
+
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+ show_headings: true
+ simple: true
+ text_align: left
+ fixed_height: 0
+ scroll_bar: 2
+ }
+
+ ctrl: {
+ id: 200,
+ type: combo,
+ cells: (1,5,2,1)
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 201,
+ type: list,
+ cells: (1,6,2,1)
+
+ column: {
+ title: Missions,
+ width: 100,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 202,
+ type: label,
+ cells: (3,5,3,2)
+ scroll_bar: 0,
+ text: "" // description
+ },
+
+ ctrl: {
+ id: 210,
+ type: list,
+ cells: (1,8,1,2)
+
+ column: {
+ title: "HOST",
+ width: 40,
+ align: center,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "PLAYER",
+ width: 100,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 211,
+ type: list,
+ cells: (2,8,4,1)
+
+ column: {
+ title: NAME,
+ width: 100,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: "CHAT MESSAGE",
+ width: 250,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (2,9,4,1)
+ scroll_bar: 0
+ fixed_height: 18
+ },
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (4,10,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (5,10,1,1)
+ },
+
+}
diff --git a/data/shatter/Screens/NetPassDlg.frm b/data/shatter/Screens/NetPassDlg.frm
new file mode 100644
index 0000000..9e32539
--- /dev/null
+++ b/data/shatter/Screens/NetPassDlg.frm
@@ -0,0 +1,118 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetPassDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,280),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 100, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "Enter Server Password"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+ ctrl: {
+ id: 101,
+ type: label,
+ cells: (1,3,1,1)
+ text: "Server:",
+ },
+
+ ctrl: {
+ id: 102,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Password:",
+ },
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (2,3,2,1)
+ text: ""
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41)
+ style: 0x02
+ scroll_bar: 0
+ transparent: false
+ },
+
+ ctrl: {
+ id: 200,
+ type: edit,
+ cells: (2,4,2,1)
+ fixed_height: 18
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Accept"
+ cells: (2,7,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel"
+ cells: (3,7,1,1),
+ }
+}
diff --git a/data/shatter/Screens/NetServerDlg.frm b/data/shatter/Screens/NetServerDlg.frm
new file mode 100644
index 0000000..da5ac57
--- /dev/null
+++ b/data/shatter/Screens/NetServerDlg.frm
@@ -0,0 +1,198 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetAddrDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (0,0,440,380),
+ back_color: (0,0,0),
+ fore_color: (255,255,255),
+ font: Limerick12,
+
+ texture: "Message.pcx",
+ margins: (50,40,48,40),
+
+ layout: {
+ x_mins: (30, 150, 100, 100, 30),
+ x_weights: ( 0, 0, 1, 1, 0),
+
+ y_mins: (44, 30, 25, 25, 25, 25, 25, 25, 25, 25, 10, 35),
+ y_weights: ( 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0)
+ },
+
+ defctrl: {
+ base_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ fore_color: (255, 255, 255)
+ bevel_width: 0
+ bevel_depth: 128
+ border: true
+ border_color: (192, 192, 192)
+ align: left
+ font: Verdana
+ transparent: true
+ style: 0x02
+ }
+
+ ctrl: {
+ id: 100
+ type: label
+ text: "Server Configuration"
+ cells: (1,1,3,1)
+ font: Limerick12
+ align: center
+ }
+
+ defctrl: {
+ font: Verdana
+ transparent: true
+ style: 0
+ },
+
+
+ ctrl: {
+ id: 110,
+ type: label,
+ cells: (1,2,1,1)
+ text: "Name: ",
+ },
+
+ ctrl: {
+ id: 111,
+ type: label,
+ cells: (1,3,1,1)
+ text: "Type: ",
+ },
+
+ ctrl: {
+ id: 112,
+ type: label,
+ cells: (1,4,1,1)
+ text: "Game Port: ",
+ },
+
+ ctrl: {
+ id: 113,
+ type: label,
+ cells: (1,5,1,1)
+ text: "Admin Port: ",
+ },
+
+ ctrl: {
+ id: 114,
+ type: label,
+ cells: (1,7,1,1)
+ text: "Game Password: ",
+ },
+
+ ctrl: {
+ id: 115,
+ type: label,
+ cells: (1,8,1,1)
+ text: "Admin Name: ",
+ },
+
+ ctrl: {
+ id: 116,
+ type: label,
+ cells: (1,9,1,1)
+ text: "Admin Password: ",
+ },
+
+ defctrl: {
+ back_color: (41, 41, 41),
+ style: 0x02,
+ scroll_bar: 0,
+
+ active_color: ( 92, 92, 92),
+ back_color: ( 41, 41, 41),
+ base_color: ( 92, 92, 92),
+ border_color: (192, 192, 192),
+
+ border: true
+ simple: true
+ transparent: false
+ bevel_width: 3
+ text_align: left
+ fixed_height: 18
+ },
+
+ ctrl: {
+ id: 200,
+ type: edit,
+ cells: (2,2,2,1)
+ },
+
+ ctrl: {
+ id: 201,
+ type: combo,
+ cells: (2,3,2,1)
+
+ item: "LAN",
+ item: "Private",
+ item: "Public",
+ },
+
+ ctrl: {
+ id: 202,
+ type: edit,
+ cells: (2,4,2,1)
+ },
+
+ ctrl: {
+ id: 203,
+ type: edit,
+ cells: (2,5,2,1)
+ },
+
+ ctrl: {
+ id: 204,
+ type: edit,
+ cells: (2,7,2,1)
+ },
+
+ ctrl: {
+ id: 205,
+ type: edit,
+ cells: (2,8,2,1)
+ },
+
+ ctrl: {
+ id: 206,
+ type: edit,
+ cells: (2,9,2,1)
+ },
+
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (10,0,0,0)
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Accept"
+ cells: (2,11,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel"
+ cells: (3,11,1,1),
+ }
+}
diff --git a/data/shatter/Screens/NetUnitDlg.frm b/data/shatter/Screens/NetUnitDlg.frm
new file mode 100644
index 0000000..ea370ba
--- /dev/null
+++ b/data/shatter/Screens/NetUnitDlg.frm
@@ -0,0 +1,286 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: NetUnitDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 150, 60, 90, 100, 100, 10)
+ x_weights: ( 0, 1, 1, 1, 1, 1, 0)
+
+ y_mins: (28, 25, 20, 20, 20, 15, 25, 25, 20, 25, 50, 25, 45)
+ y_weights: ( 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 2, 0, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,3,10),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (4,3,2,10),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Multiplayer Unit Selection",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ font: Limerick12
+ fore_color: (255,255,255)
+ back_color: ( 41, 41, 41)
+ cell_insets: (10,10,0,0)
+ transparent: true
+ style: 0x40
+ }
+
+ ctrl: {
+ id: 101
+ type: label
+ cells: (1,4,1,1)
+ text: "Players"
+ }
+
+ ctrl: {
+ id: 102
+ type: label
+ cells: (3,4,3,1)
+ text: "Unit Mapping"
+ }
+
+ ctrl: {
+ id: 103
+ type: label
+ cells: (1,9,3,1)
+ text: "Chat"
+ }
+
+
+ defctrl: {
+ font: Verdana
+ transparent: false
+ style: 0x02
+ cell_insets: (10,10,0,5)
+ texture: Panel
+ margins: (12,12,12,0)
+
+ fore_color: (255,255,255),
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+ show_headings: true
+ simple: true
+ text_align: left
+ fixed_height: 0
+ scroll_bar: 2
+ }
+
+ ctrl: {
+ id: 201,
+ type: list,
+ cells: (1,5,1,4)
+ show_headings: true
+
+ column: {
+ title: PLAYER,
+ width: 132,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 202,
+ type: list,
+ cells: (3,5,3,4)
+ show_headings: true,
+
+ column: {
+ title: "PLAYER",
+ width: 120,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "UNIT",
+ width: 115,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "SHIP TYPE",
+ width: 115,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "ROLE",
+ width: 120,
+ align: left,
+ sort: 3 }, // sort never
+
+ column: {
+ title: "TEAM",
+ width: 51,
+ align: left,
+ sort: 3 }, // sort never
+ },
+
+ ctrl: {
+ id: 211,
+ type: list,
+ cells: (1,10,5,1)
+ show_headings: true,
+
+ column: {
+ title: NAME,
+ width: 130,
+ align: left,
+ sort: 0 },
+
+ column: {
+ title: "CHAT MESSAGE",
+ width: 629,
+ align: left,
+ sort: 0 },
+ },
+
+ ctrl: {
+ id: 212,
+ type: edit,
+ cells: (1,11,5,1)
+ scroll_bar: 0,
+ transparent: false,
+ },
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ cell_insets: (5,5,0,0)
+ },
+
+ ctrl: {
+ id: 206,
+ type: button,
+ cells: (2,5,1,1)
+ text: "SELECT UNIT"
+ cell_insets: (5,5,20,0)
+ },
+
+ ctrl: {
+ id: 203,
+ type: button,
+ cells: (2,6,1,1)
+ text: "MAP >>",
+ },
+
+ ctrl: {
+ id: 204,
+ type: button,
+ cells: (2,7,1,1)
+ text: "MAP <<",
+ },
+
+ ctrl: {
+ id: 205,
+ type: button,
+ cells: (2,8,1,1)
+ cell_insets: (5,5,20,0)
+ text: "* BAN *",
+ },
+
+ defctrl: {
+ font: Verdana,
+ fore_color: (255, 255, 255),
+ back_color: ( 61, 61, 59),
+ transparent: true,
+ style: 0x02,
+ scroll_bar: 2,
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ },
+
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (5,5,0,0)
+ fixed_height: 19
+ fixed_width: 0
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Accept
+ cells: (4,12,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (5,12,1,1)
+ },
+
+}
+
+
diff --git a/data/shatter/Screens/OptDlg.frm b/data/shatter/Screens/OptDlg.frm
new file mode 100644
index 0000000..b577c41
--- /dev/null
+++ b/data/shatter/Screens/OptDlg.frm
@@ -0,0 +1,426 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: MenuDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ },
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ },
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Options",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: Video
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: Audio
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: Controls
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: Gameplay
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "Mod Config"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: (0.2, 0.3, 0.3, 0.2, 0.3, 0.3, 0.2)
+
+ y_mins: ( 20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 20)
+ y_weights: (0.3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7)
+ }
+ }
+
+ defctrl: {
+ font: Verdana
+ fore_color: (255, 255, 255)
+
+ standard_image: ""
+ activated_image: ""
+ sticky: false
+
+ active_color: ( 92, 92, 92)
+ back_color: ( 41, 41, 41)
+ base_color: ( 92, 92, 92)
+ border_color: (192, 192, 192)
+
+ border: true
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: true
+ }
+
+ ctrl: {
+ id: 101
+ pid: 300
+ type: label
+ text: "Flight Model:"
+ cells: (1,1,1,1)
+ }
+
+ ctrl: {
+ id: 111
+ pid: 300
+ type: label
+ text: "Flying Start:"
+ cells: (1,2,1,1)
+ }
+
+ ctrl: {
+ id: 102
+ pid: 300
+ type: label
+ text: "Landings:"
+ cells: (1,3,1,1)
+ }
+
+ ctrl: {
+ id: 103
+ pid: 300
+ type: label
+ text: "AI Difficulty:"
+ cells: (1,4,1,1)
+ }
+
+ ctrl: {
+ id: 104
+ pid: 300
+ type: label
+ text: "HUD Mode:"
+ cells: (1,5,1,1)
+ }
+
+ ctrl: {
+ id: 105
+ pid: 300
+ type: label
+ text: "HUD Color:"
+ cells: (1,6,1,1)
+ }
+
+ ctrl: {
+ id: 106
+ pid: 300
+ type: label
+ text: "Friendly Fire:"
+ cells: (1,7,1,1)
+ }
+
+ ctrl: {
+ id: 107
+ pid: 300
+ type: label
+ text: "Reference Grid:"
+ cells: (1,8,1,1)
+ }
+
+ ctrl: {
+ id: 108
+ pid: 300
+ type: label
+ text: "Gunsight:"
+ cells: (1,9,1,1)
+ }
+
+ ctrl: {
+ id: 500
+ pid: 300
+ type: label
+ cells: (4,1,2,8)
+ }
+
+ defctrl: {
+ cell_insets: (0,0,0,10)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 201
+ pid: 300
+ type: combo
+ cells: (2,1,1,1)
+
+ item: Standard
+ item: Relaxed
+ item: Arcade
+
+ alt: "Select the flight model to be used by all ships and fighters in the game.\n\n"
+ "* The Standard model uses zero-drag Newtonian physics and is similar to Terminus or IWar. "
+ "This model also uses realistic aerodynamics when flying in a planetary atmosphere.\n\n"
+ "* The Relaxed model uses Newtonian physics, with added drag to make control easier. "
+ "This model is similar to that of EVE or Jumpgate.\n\n"
+ "* The Arcade model keeps your ship flying in the direction it is pointing. "
+ "This model is similar to that of the Wing Commander games."
+ }
+
+ ctrl: {
+ id: 211
+ pid: 300
+ type: combo
+ cells: (2,2,1,1)
+
+ item: Disabled
+ item: Enabled
+
+ alt: "Choose whether to begin campaign missions on the flight deck or in space.\n\n"
+ "* If Flying Start is disabled, you will begin all fighter-based missions in the dynamic campaign on the flight deck or runway, ready to launch.\n\n"
+ "* If Flying Start is enabled, you will begin fighter-based missions in the dynamic campaign already in flight. This setting will get you into the action faster by skipping the launch procedures.\n\n"
+ }
+
+ ctrl: {
+ id: 202
+ pid: 300
+ type: combo
+ cells: (2,3,1,1)
+
+ item: Standard
+ item: Easier
+
+ alt: "Select the landing model that your fighter will use in the game.\n\n"
+ "* The Standard model takes landing velocity into account and requires a softer touch to keep from damaging your ship.\n\n"
+ "* The Easier model makes it easier to land your bird under adverse conditions."
+ }
+
+ ctrl: {
+ id: 203
+ pid: 300
+ type: combo
+ cells: (2,4,1,1)
+
+ item: Ace
+ item: Veteran
+ item: Rookie
+
+ alt: "Select the AI Difficulty level that you wish to face in the game.\n\n"
+ "* The Ace level is the hardest, with AI pilots that are good shots and very aggressive.\n\n"
+ "* The Veteran level is easier. Enemy pilots are still somewhat aggressive, but are less skilled at defense.\n\n"
+ "* The Rookie level is very easy. Enemy pilots have poor threat reaction, rarely use missiles, and fly more slowly."
+ }
+
+ ctrl: {
+ id: 204
+ pid: 300
+ type: combo
+ cells: (2,5,1,1)
+
+ item: Standard
+ item: Simplified
+
+ alt: "Select the HUD that your ship will use in the game.\n\n"
+ "* The Standard HUD provides more information but is more complex to read.\n\n"
+ "* The Simplified HUD displays only the most important information and is easier to read.\n\n"
+ "For best results, use the Standard HUD with the Standard flight model, and the Simplified HUD with the Arcade flight model."
+ }
+
+ ctrl: {
+ id: 205
+ pid: 300
+ type: combo
+ cells: (2,6,1,1)
+
+ item: Green
+ item: Blue
+ item: Orange
+ item: Black
+
+ alt: "Select the default HUD color that your ship will use in the game. "
+ "You can always switch between HUD colors during play by pressing Shift+H.\n\n"
+ "Tip: Switch to the black HUD color during the game when flying atmospheric missions under daylight conditions."
+ }
+
+ ctrl: {
+ id: 206
+ pid: 300
+ type: combo
+ cells: (2,7,1,1)
+
+ item: "None"
+ item: "25% Damage"
+ item: "50% Damage"
+ item: "75% Damage"
+ item: "Full Damage"
+
+ alt: "Select the amount of damage caused by friendly fire incidents. "
+ "Full damage means that friendly fire is just as deadly as fire targeted at enemies. "
+ "None means that weapons fire will pass right through friendly ships.\n\n"
+ "Tip: You can use this setting to make cooperative network play safer and easier."
+ }
+
+ ctrl: {
+ id: 207
+ pid: 300
+ type: combo
+ cells: (2,8,1,1)
+
+ item: Disabled
+ item: Enabled
+
+ alt: "Choose whether to enable or disable the reference grid displayed "
+ "in the 3D tactical viewer."
+ }
+
+ ctrl: {
+ id: 208
+ pid: 300
+ type: combo
+ cells: (2,9,1,1)
+
+ item: "Standard LCOS",
+ item: "Lead Indicator",
+
+ alt: "Select the type of gunsight to use in the game.\n\n"
+ "* The Standard LCOS pipper is similar to a modern jet fighter. Place the pipper over the target and pull the trigger.\n\n"
+ "* The Lead Indicator gunsight places a lead diamond in front of the target. Line up the gun crosshairs and the lead diamond to ensure a gun hit.\n\n"
+ "If you prefer to use 'Virtual Joystick' mouse control, you will probably have more success with the Lead Indicator gunsight."
+ }
+
+ // buttons:
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (0,0,0),
+ standard_image: Button17_0,
+ activated_image: Button17_1,
+ transition_image: Button17_2,
+ bevel_width: 6,
+ margins: (3,18,0,0),
+ cell_insets: (0,10,0,26)
+ transparent: false
+ }
+
+ ctrl: {
+ id: 1,
+ type: button,
+ text: "Apply",
+ cells: (3,5,1,1)
+ }
+
+ ctrl: {
+ id: 2,
+ type: button,
+ text: "Cancel",
+ cells: (4,5,1,1),
+ }
+}
diff --git a/data/shatter/Screens/PlanDlg.frm b/data/shatter/Screens/PlanDlg.frm
new file mode 100644
index 0000000..7ce8c0b
--- /dev/null
+++ b/data/shatter/Screens/PlanDlg.frm
@@ -0,0 +1,424 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: PlanDlg.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 1999. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (438, 212, 202, 268),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "NavDetail_640.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUIsmall,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 1,
+ type: label,
+ rect: (446, 220, 180, 18),
+ text: "Flight Plan",
+ font: GUI,
+ transparent: true
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (446, 239, 80, 18),
+ text: "Element:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 201,
+ type: combo,
+ rect: (530, 240, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+
+ ctrl: {
+ id: 102,
+ type: label,
+ rect: (446, 257, 80, 18),
+ text: "Nav Pt:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ rect: (530, 258, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+ ctrl: {
+ id: 103,
+ type: label,
+ rect: (446, 275, 80, 18),
+ text: "Action:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ rect: (530, 276, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+ ctrl: {
+ id: 104,
+ type: label,
+ rect: (446, 293, 80, 18),
+ text: "Formation:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ rect: (530, 294, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+
+ item: Diamond,
+ item: Spread,
+ item: Box,
+ item: Trail
+ },
+
+
+
+ ctrl: {
+ id: 105,
+ type: label,
+ rect: (446, 311, 80, 18),
+ text: "Speed:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 205,
+ type: slider,
+ rect: (530, 312, 60, 16),
+
+ active_color: ( 53, 159, 67),
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active: true,
+
+ },
+
+ ctrl: {
+ id: 305,
+ type: label,
+ rect: (590, 311, 40, 18),
+
+ text: "350",
+ align: right,
+ transparent: true,
+ },
+
+
+ defctrl: {
+ back_color: (130,105,80),
+ font: GUI,
+ },
+
+ ctrl: {
+ id: 501,
+ type: button,
+ rect: (443, 400, 93, 25),
+ text: "Add Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 502,
+ type: button,
+ rect: (540, 400, 93, 25),
+ text: "Del Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 503,
+ type: button,
+ rect: (443, 427, 93, 25),
+ text: "Edit Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 504,
+ type: button,
+ rect: (540, 427, 93, 25),
+ text: "clear",
+ sticky: false
+ },
+}
+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: (598, 264, 202, 336),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "NavDetail_800.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUIsmall,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 1,
+ type: label,
+ rect: (606, 272, 180, 18),
+ text: "Flight Plan",
+ font: GUI,
+ transparent: true
+ },
+
+
+ ctrl: {
+ id: 101,
+ type: label,
+ rect: (606, 291, 80, 18),
+ text: "Element:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 201,
+ type: combo,
+ rect: (690, 292, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+
+ ctrl: {
+ id: 102,
+ type: label,
+ rect: (606, 309, 80, 18),
+ text: "Nav Pt:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 202,
+ type: combo,
+ rect: (690, 310, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+ ctrl: {
+ id: 103,
+ type: label,
+ rect: (606, 327, 80, 18),
+ text: "Action:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 203,
+ type: combo,
+ rect: (690, 328, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+ },
+
+
+ ctrl: {
+ id: 104,
+ type: label,
+ rect: (606, 345, 80, 18),
+ text: "Formation:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 204,
+ type: combo,
+ rect: (690, 346, 100, 16),
+
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active_color: ( 64, 64, 64),
+
+ font: GUIsmall,
+ simple: true,
+ bevel_width: 3,
+ text_align: left,
+
+ item: Diamond,
+ item: Spread,
+ item: Box,
+ item: Trail
+ },
+
+
+
+ ctrl: {
+ id: 105,
+ type: label,
+ rect: (606, 363, 80, 18),
+ text: "Speed:",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 205,
+ type: slider,
+ rect: (690, 364, 60, 16),
+
+ active_color: ( 53, 159, 67),
+ back_color: ( 0, 0, 0),
+ border_color: ( 92, 92, 92),
+ active: true,
+
+ },
+
+ ctrl: {
+ id: 305,
+ type: label,
+ rect: (750, 363, 40, 18),
+
+ text: "350",
+ align: right,
+ transparent: true,
+ },
+
+
+ defctrl: {
+ back_color: (130,105,80),
+ font: GUI,
+ },
+
+ ctrl: {
+ id: 501,
+ type: button,
+ rect: (603, 452, 93, 25),
+ text: "Add Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 502,
+ type: button,
+ rect: (700, 452, 93, 25),
+ text: "Del Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 503,
+ type: button,
+ rect: (603, 479, 93, 25),
+ text: "Edit Nav",
+ sticky: true
+ },
+
+ ctrl: {
+ id: 504,
+ type: button,
+ rect: (700, 479, 93, 25),
+ text: "clear",
+ sticky: false
+ },
+}
+
+
+
diff --git a/data/shatter/Screens/PlayerDlg.frm b/data/shatter/Screens/PlayerDlg.frm
new file mode 100644
index 0000000..1f6d628
--- /dev/null
+++ b/data/shatter/Screens/PlayerDlg.frm
@@ -0,0 +1,690 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: PlayerDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 100, 100, 10),
+ x_weights: ( 0, 0.1, 0.1, 0, 0.3, 0.3, 0.3, 0),
+
+ y_mins: (28, 25, 20, 42, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,3),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Player Logbook",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,4,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ defctrl: {
+ base_color: (191, 191, 184)
+ back_color: ( 88, 88, 88)
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ cells: (1,3,1,1)
+ cell_insets: (10,3,17,6)
+ text: "Create"
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (2,3,1,1)
+ cell_insets: (3,10,17,6)
+ text: "Delete",
+ }
+
+ ctrl: {
+ id: 601,
+ type: label,
+ cells: (4,3,1,1)
+ cell_insets: (2,10,17,0)
+ text: "Player Stats"
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ }
+
+ defctrl: {
+ font: Verdana,
+ fore_color: (255,255,255),
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+ transparent: true,
+ },
+
+ ctrl: {
+ id: 200
+ type: list
+ cells: (1,4,2,2)
+ cell_insets: (10,10,0,54)
+ font: Verdana
+ style: 0
+ scroll_bar: 2
+ show_headings: false
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,16,4)
+
+ column: {
+ title: "Name",
+ width: 182,
+ align: left,
+ sort: 0 },
+ }
+
+ ctrl: {
+ id: 600
+ type: background
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,54)
+ transparent: false
+ texture: Panel
+ margins: (12,12,16,4)
+
+ layout: {
+ x_mins: ( 8, 80, 100, 20, 30, 100, 15)
+ x_weights: ( 0, 0, 3, 1, 0, 3, 0)
+
+ y_mins: (20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 65, 75)
+ y_weights: ( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
+ }
+ }
+
+ ctrl: {
+ id: 103
+ pid: 600
+ type: label
+ cells: (1,1,1,1)
+ text: "Name:"
+ },
+
+ ctrl: {
+ id: 104,
+ pid: 600
+ type: label,
+ cells: (1,2,1,1)
+ text: "Password:"
+ },
+
+ ctrl: {
+ id: 105
+ pid: 600
+ type: label
+ cells: (1,3,1,1)
+ text: "Squadron:"
+ },
+
+ ctrl: {
+ id: 106
+ pid: 600
+ type: label
+ cells: (1,4,1,1)
+ text: "Signature:"
+ },
+
+ ctrl: {
+ id: 107
+ pid: 600
+ type: label
+ cells: (1,5,1,1)
+ text: "Created:"
+ }
+
+ ctrl: {
+ id: 109
+ pid: 600
+ type: label
+ cells: (1,6,1,1)
+ text: "Flight Time:"
+ },
+
+ ctrl: {
+ id: 110
+ pid: 600
+ type: label
+ cells: (1,7,1,1)
+ text: "Missions:"
+ },
+
+ ctrl: {
+ id: 111
+ pid: 600
+ type: label
+ cells: (1,8,1,1)
+ text: "Kills:"
+ }
+
+ ctrl: {
+ id: 112
+ pid: 600
+ type: label
+ cells: (1,9,1,1)
+ text: "Losses:"
+ }
+
+ ctrl: {
+ id: 113
+ pid: 600
+ type: label
+ cells: (1,10,1,1)
+ text: "Points:"
+ }
+
+ ctrl: {
+ id: 108
+ pid: 600
+ type: label
+ cells: (1,11,1,1)
+ text: "Rank:"
+ }
+
+ ctrl: {
+ id: 125
+ pid: 600
+ type: label
+ cells: (1,13,1,1)
+ cell_insets: (0,0,0,5)
+ text: "Medals:"
+ }
+
+ defctrl: {
+ style: 0x02,
+ scroll_bar: 0,
+ single_line: true,
+ back_color: ( 41, 41, 41),
+ border_color: ( 92, 92, 92),
+ single_line: true,
+ transparent: false
+ cell_insets: (0,0,0,5)
+ },
+
+ ctrl: {
+ id: 201,
+ pid: 600
+ type: edit,
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 202,
+ pid: 600
+ type: edit,
+ cells: (2,2,1,1)
+ password: "*",
+ },
+
+ ctrl: {
+ id: 203, // squad
+ pid: 600
+ type: edit,
+ cells: (2,3,1,1)
+ },
+
+ ctrl: {
+ id: 204, // sig
+ pid: 600
+ type: edit,
+ cells: (2,4,1,1)
+ },
+
+ ctrl: {
+ id: 205, // create date
+ pid: 600
+ type: label,
+ cells: (2,5,1,1)
+ },
+
+ ctrl: {
+ id: 207, // flight time
+ pid: 600
+ type: label,
+ cells: (2,6,1,1)
+ },
+
+ ctrl: {
+ id: 208, // missions
+ pid: 600
+ type: label,
+ cells: (2,7,1,1)
+ },
+
+ ctrl: {
+ id: 209, // kills
+ pid: 600
+ type: label,
+ cells: (2,8,1,1)
+ },
+
+ ctrl: {
+ id: 210, // losses
+ pid: 600
+ type: label,
+ cells: (2,9,1,1)
+ },
+
+ ctrl: {
+ id: 211, // points
+ pid: 600
+ type: label,
+ cells: (2,10,1,1)
+ },
+
+ // rank name and insignia:
+
+ ctrl: {
+ id: 206,
+ pid: 600
+ type: label,
+ cells: (2,11,1,1)
+ align: center,
+ transparent: true,
+ border: false,
+ },
+
+ ctrl: {
+ id: 220,
+ pid: 600
+ type: image,
+ cells: (2,12,1,1)
+ align: center
+ transparent: true
+ border: false
+ style: 0
+ },
+
+ // medal ribbon insignia:
+
+ ctrl: {
+ id: 330
+ pid: 600
+ type: label
+ transparent: true
+ cells: (2,13,4,1)
+
+ layout: {
+ x_mins: (85, 85, 85, 85, 85, 0),
+ x_weights: ( 1, 1, 1, 1, 1, 5),
+
+ y_mins: (24, 24, 24, 0),
+ y_weights: ( 1, 1, 1, 5)
+ }
+ }
+
+ defctrl: {
+ align: center
+ transparent: true
+ border: false
+ style: 0
+ fixed_width: 82
+ fixed_height: 21
+ }
+
+ ctrl: {
+ id: 230,
+ pid: 330
+ type: image,
+ cells: (0,0,1,1)
+ },
+
+ ctrl: {
+ id: 231
+ pid: 330
+ type: image
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 232,
+ pid: 330
+ type: image
+ cells: (2,0,1,1)
+ },
+
+ ctrl: {
+ id: 233,
+ pid: 330
+ type: image
+ cells: (3,0,1,1)
+ },
+
+ ctrl: {
+ id: 234,
+ pid: 330
+ type: image
+ cells: (4,0,1,1)
+ },
+
+ ctrl: {
+ id: 235,
+ pid: 330
+ type: image
+ cells: (0,1,1,1)
+ },
+
+ ctrl: {
+ id: 236,
+ pid: 330
+ type: image
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 237,
+ pid: 330
+ type: image
+ cells: (2,1,1,1)
+ },
+
+ ctrl: {
+ id: 238,
+ pid: 330
+ type: image
+ cells: (3,1,1,1)
+ },
+
+ ctrl: {
+ id: 239,
+ pid: 330
+ type: image
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 240,
+ pid: 330
+ type: image
+ cells: (0,2,1,1)
+ },
+
+ ctrl: {
+ id: 241,
+ pid: 330
+ type: image
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 242,
+ pid: 330
+ type: image
+ cells: (2,2,1,1)
+ },
+
+ ctrl: {
+ id: 243,
+ pid: 330
+ type: image
+ cells: (3,2,1,1)
+ },
+
+ ctrl: {
+ id: 244,
+ pid: 330
+ type: image
+ cells: (4,2,1,1)
+ },
+
+ // chat macro entries:
+
+ defctrl: {
+ align: left
+ transparent: false
+ border: true
+ style: 2 // white frame
+ fixed_width: 0
+ fixed_height: 0
+ }
+
+ ctrl: {
+ id: 301,
+ pid: 600
+ type: edit,
+ cells: (5,2,1,1)
+ },
+
+ ctrl: {
+ id: 302,
+ pid: 600
+ type: edit,
+ cells: (5,3,1,1)
+ },
+
+ ctrl: {
+ id: 303,
+ pid: 600
+ type: edit,
+ cells: (5,4,1,1)
+ },
+
+ ctrl: {
+ id: 304,
+ pid: 600
+ type: edit,
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 305,
+ pid: 600
+ type: edit,
+ cells: (5,6,1,1)
+ },
+
+ ctrl: {
+ id: 306,
+ pid: 600
+ type: edit,
+ cells: (5,7,1,1)
+ },
+
+ ctrl: {
+ id: 307,
+ pid: 600
+ type: edit,
+ cells: (5,8,1,1)
+ },
+
+ ctrl: {
+ id: 308,
+ pid: 600
+ type: edit,
+ cells: (5,9,1,1)
+ },
+
+ ctrl: {
+ id: 309,
+ pid: 600
+ type: edit,
+ cells: (5,10,1,1)
+ },
+
+ ctrl: {
+ id: 300,
+ pid: 600
+ type: edit,
+ cells: (5,11,1,1)
+ },
+
+ defctrl: { transparent: true },
+
+ ctrl: {
+ id: 444
+ pid: 600
+ type: label
+ cells: (4,1,2,1)
+ text: "Chat Macros:",
+ },
+
+ ctrl: {
+ id: 401,
+ pid: 600
+ type: label,
+ cells: (4,2,1,1)
+ text: "1",
+ },
+
+ ctrl: {
+ id: 402,
+ pid: 600
+ type: label,
+ cells: (4,3,1,1)
+ text: "2",
+ },
+
+ ctrl: {
+ id: 403,
+ pid: 600
+ type: label,
+ cells: (4,4,1,1)
+ text: "3",
+ },
+
+ ctrl: {
+ id: 404,
+ pid: 600
+ type: label,
+ cells: (4,5,1,1)
+ text: "4",
+ },
+
+ ctrl: {
+ id: 405,
+ pid: 600
+ type: label,
+ cells: (4,6,1,1)
+ text: "5",
+ },
+
+ ctrl: {
+ id: 406,
+ pid: 600
+ type: label,
+ cells: (4,7,1,1)
+ text: "6",
+ },
+
+ ctrl: {
+ id: 407,
+ pid: 600
+ type: label,
+ cells: (4,8,1,1)
+ text: "7",
+ },
+
+ ctrl: {
+ id: 408,
+ pid: 600
+ type: label,
+ cells: (4,9,1,1)
+ text: "8",
+ },
+
+ ctrl: {
+ id: 409,
+ pid: 600
+ type: label,
+ cells: (4,10,1,1)
+ text: "9",
+ },
+
+ ctrl: {
+ id: 400,
+ pid: 600
+ type: label,
+ cells: (4,11,1,1)
+ text: "0",
+ },
+
+ // apply and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Apply
+ cells: (5,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (6,5,1,1),
+ },
+}
+
diff --git a/data/shatter/Screens/TacRefDlg.frm b/data/shatter/Screens/TacRefDlg.frm
new file mode 100644
index 0000000..2e2d3e5
--- /dev/null
+++ b/data/shatter/Screens/TacRefDlg.frm
@@ -0,0 +1,212 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: TacRefDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 80, 80, 10, 100, 30, 100, 10)
+ x_weights: ( 0, 1, 1, 0, 3, 0, 3, 0)
+
+ y_mins: (28, 25, 20, 42, 90, 10, 90, 45)
+ y_weights: ( 0, 0, 0, 0, 3, 1, 2, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame3a
+ cells: (1,3,4,5),
+ cell_insets: (0,0,0,10),
+ margins: (48,80,48,48)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame3b
+ cells: (5,3,2,5),
+ cell_insets: (0,0,0,10),
+ margins: (80,48,48,48)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Tactical Reference",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ },
+
+
+ // main panel:
+
+ defctrl: {
+ base_color: (191, 191, 184)
+ back_color: ( 88, 88, 88)
+ fore_color: (0,0,0)
+ font: Limerick12
+ bevel_width: 0
+
+ align: left
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ },
+
+ ctrl: {
+ id: 101,
+ type: button,
+ cells: (1,3,1,1)
+ cell_insets: (10,3,17,6)
+ text: "Ships"
+ sticky: true
+ fixed_height: 19
+ },
+
+ ctrl: {
+ id: 102,
+ type: button,
+ cells: (2,3,1,1)
+ cell_insets: (3,10,17,6)
+ text: "Weapons",
+ sticky: true
+ fixed_height: 19
+ }
+
+ ctrl: {
+ id: 301,
+ type: label,
+ cells: (4,3,1,1)
+ cell_insets: (2,10,17,0)
+ text: "Item Name"
+ fore_color: (255,255,255)
+ back_color: (32,32,32)
+ style: 0x40
+ transparent: true
+ }
+
+
+ defctrl: {
+ fore_color: (255,255,255),
+ standard_image: "",
+ activated_image: "",
+ transition_image: "",
+
+ font: Verdana
+ style: 0
+ scroll_bar: 0
+ show_headings: false
+ transparent: false
+
+ texture: Panel
+ margins: (12,12,16,4)
+ },
+
+ ctrl: {
+ id: 200
+ type: list
+ cells: (1,4,2,3)
+ cell_insets: (10,10,0,10)
+ scroll_bar: 2
+ selected_style: 2
+
+ column: {
+ title: "Name",
+ width: 182,
+ align: left,
+ sort: 0 },
+ }
+
+
+ ctrl: {
+ id: 400
+ type: label
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,10)
+ }
+
+ ctrl: {
+ id: 401
+ type: label
+ cells: (4,4,3,2)
+ cell_insets: (0,10,0,10)
+ transparent: true
+ }
+
+ ctrl: {
+ id: 410
+ type: label
+ cells: (4,6,3,1)
+ cell_insets: (0,10,0,10)
+ }
+
+ ctrl: {
+ id: 402
+ type: text
+ cells: (4,6,1,1)
+ cell_insets: (0,10,0,10)
+ transparent: true
+
+ text: "Item stats go here..."
+ }
+
+ ctrl: {
+ id: 403
+ type: text
+ cells: (5,6,2,1)
+ cell_insets: (0,10,0,10)
+ transparent: true
+
+ text: "Item description goes here..."
+ }
+
+
+ // ok and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Close
+ cells: (6,7,1,1)
+ },
+
+}
diff --git a/data/shatter/Screens/VidDlg.frm b/data/shatter/Screens/VidDlg.frm
new file mode 100644
index 0000000..adf0ff5
--- /dev/null
+++ b/data/shatter/Screens/VidDlg.frm
@@ -0,0 +1,425 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: Starshatter 4.5
+// File: VidDlg.frm
+//
+// Destroyer Studios LLC
+// Copyright © 1997-2004. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ back_color: ( 0, 0, 0),
+ fore_color: (255, 255, 255),
+
+ texture: "Frame1.pcx",
+ margins: (1,1,64,8),
+
+ layout: {
+ x_mins: (10, 100, 20, 100, 100, 10),
+ x_weights: ( 0, 0.2, 0.4, 0.2, 0.2, 0),
+
+ y_mins: (28, 30, 20, 24, 60, 45),
+ y_weights: ( 0, 0, 0, 0, 1, 0)
+ },
+
+ // background images:
+
+ ctrl: {
+ id: 9991,
+ type: background,
+ texture: Frame2a,
+ cells: (1,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (2,32,40,32)
+ hide_partial: false
+ }
+
+ ctrl: {
+ id: 9992,
+ type: background,
+ texture: Frame2b,
+ cells: (3,3,2,3),
+ cell_insets: (0,0,0,10),
+ margins: (0,40,40,32)
+ hide_partial: false
+ }
+
+ // title:
+
+ ctrl: {
+ id: 10,
+ type: label,
+ text: "Options",
+ align: left,
+ font: Limerick18,
+ fore_color: (255,255,255),
+ transparent: true,
+ cells: (1,1,3,1)
+ cell_insets: (0,0,0,0)
+ hide_partial: false
+ }
+
+ // tabs:
+
+ ctrl: {
+ id: 900
+ type: panel
+ transparent: true
+ cells: (1,3,4,1)
+ hide_partial: false
+
+ layout: {
+ x_mins: (100, 100, 100, 100, 100, 0),
+ x_weights: (0.2, 0.2, 0.2, 0.2, 0.2, 1),
+
+ y_mins: (24),
+ y_weights: ( 1)
+ }
+ }
+
+ defctrl: {
+ align: left,
+ font: Limerick12,
+ fore_color: (255, 255, 255),
+ standard_image: BlueTab_0,
+ activated_image: BlueTab_1,
+ sticky: true,
+ bevel_width: 6,
+ margins: (8,8,0,0),
+ cell_insets: (0,4,0,0)
+ },
+
+ ctrl: {
+ id: 901
+ pid: 900
+ type: button
+ text: Video
+ cells: (0,0,1,1)
+ }
+
+ ctrl: {
+ id: 902
+ pid: 900
+ type: button
+ text: Audio
+ cells: (1,0,1,1)
+ }
+
+ ctrl: {
+ id: 903
+ pid: 900
+ type: button
+ text: Controls
+ cells: (2,0,1,1)
+ }
+
+ ctrl: {
+ id: 904
+ pid: 900
+ type: button
+ text: Gameplay
+ cells: (3,0,1,1)
+ }
+
+ ctrl: {
+ id: 905
+ pid: 900
+ type: button
+ text: "Mod Config"
+ cells: (4,0,1,1)
+ }
+
+ // main panel:
+
+ ctrl: {
+ id: 300
+ type: panel
+ transparent: false //true
+
+ texture: Panel
+ margins: (12,12,12,0),
+
+ cells: (1,4,4,2)
+ cell_insets: (10,10,12,54)
+
+ layout: {
+ x_mins: ( 20, 100, 100, 20, 100, 100, 20)
+ x_weights: ( 2, 3, 3, 2, 3, 3, 2)
+
+ y_mins: ( 20, 25, 25, 25, 25, 25, 25, 25, 25, 20)
+ y_weights: ( 3, 0, 0, 0, 0, 0, 0, 0, 0, 7)
+ }
+ }
+
+ defctrl: {
+ fore_color: (255,255,255)
+ font: Verdana,
+ standard_image: ""
+ activated_image: ""
+ align: left
+ sticky: false
+ transparent: true
+ pid: 300
+ },
+
+ ctrl: {
+ id: 101
+ type: label
+ text: "Video Mode:"
+ cells: (1,1,1,1)
+ },
+
+ ctrl: {
+ id: 104
+ type: label
+ text: "Max Texture Size:"
+ cells: (1,2,1,1)
+ },
+
+ ctrl: {
+ id: 122
+ type: label
+ text: "Shadows:"
+ cells: (1,3,1,1)
+ },
+
+ ctrl: {
+ id: 123
+ type: label
+ text: "Spec Maps:"
+ cells: (1,4,1,1)
+ },
+
+ ctrl: {
+ id: 124
+ type: label
+ text: "Bump Maps:"
+ cells: (1,5,1,1)
+ },
+
+ ctrl: {
+ id: 105
+ type: label
+ text: "Terrain Detail:"
+ cells: (1,7,1,1)
+ },
+
+ ctrl: {
+ id: 106
+ type: label
+ text: "Terrain Texture:"
+ cells: (1,8,1,1)
+ },
+
+
+ ctrl: {
+ id: 111
+ type: label
+ text: "Lens Flare:"
+ cells: (4,1,1,1)
+ },
+
+ ctrl: {
+ id: 112
+ type: label
+ text: "Corona:"
+ cells: (4,2,1,1)
+ },
+
+ ctrl: {
+ id: 113
+ type: label
+ text: "Nebula:"
+ cells: (4,3,1,1)
+ },
+
+ ctrl: {
+ id: 114
+ type: label
+ text: "Space Dust:"
+ cells: (4,4,1,1)
+ },
+
+ ctrl: {
+ id: 115
+ type: label
+ text: "Gamma Level:"
+ cells: (4,7,1,1)
+ },
+
+
+ defctrl: {
+ back_color: ( 41, 41, 41)
+ border_color: (192, 192, 192)
+ active_color: ( 92, 92, 92)
+
+ cell_insets: (0,0,0,5)
+ font: Verdana
+ simple: true
+ bevel_width: 3
+ text_align: left
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 203
+ type: combo
+ cells: (2,1,1,1)
+
+ item: "800 x 600 x 8"
+ item: "800 x 600 x 16"
+ item: "800 x 600 x 32"
+ }
+
+ ctrl: {
+ id: 204
+ type: combo
+ cells: (2,2,1,1)
+
+ item: "64 x 64"
+ item: "128 x 128"
+ item: "256 x 256"
+ item: "512 x 512"
+ item: "1024 x 1024"
+ item: "2048 x 2048"
+ item: "4096 x 4096"
+ }
+
+ ctrl: {
+ id: 222
+ type: combo
+ cells: (2,3,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 223
+ type: combo
+ cells: (2,4,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 224
+ type: combo
+ cells: (2,5,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 205
+ type: combo
+ cells: (2,7,1,1)
+
+ item: Low
+ item: Medium
+ item: High
+ }
+
+ ctrl: {
+ id: 206
+ type: combo
+ cells: (2,8,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 211
+ type: combo
+ cells: (5,1,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 212
+ type: combo
+ cells: (5,2,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 213
+ type: combo
+ cells: (5,3,1,1)
+
+ item: Disable
+ item: Enable
+ }
+
+ ctrl: {
+ id: 214
+ type: combo
+ cells: (5,4,1,1)
+
+ item: None
+ item: Some
+ item: Lots
+ }
+
+ ctrl: {
+ id: 215
+ type: slider
+ cells: (5,7,1,1)
+ cell_insets: (0,0,0,16)
+
+ active_color: (250, 250, 100)
+ back_color: ( 41, 41, 41)
+ border: false
+ active: true
+ }
+
+ ctrl: {
+ id: 315
+ type: label
+ cells: (5,8,1,1)
+ cell_insets: (0,0,0,0)
+
+ texture: gamma_test
+ margins: (0,0,0,0)
+ }
+
+ // apply and cancel buttons:
+
+ defctrl: {
+ align: left
+ font: Limerick12
+ fore_color: (0,0,0)
+ standard_image: Button17_0
+ activated_image: Button17_1
+ transition_image: Button17_2
+ transparent: false
+ bevel_width: 6
+ margins: (3,18,0,0)
+ cell_insets: (0,10,0,26)
+ pid: 0
+ },
+
+ ctrl: {
+ id: 1
+ type: button
+ text: Apply
+ cells: (3,5,1,1)
+ },
+
+ ctrl: {
+ id: 2
+ type: button
+ text: Cancel
+ cells: (4,5,1,1),
+ },
+
+}
diff --git a/data/shatter/Screens/WepDlg.frm b/data/shatter/Screens/WepDlg.frm
new file mode 100644
index 0000000..818c14a
--- /dev/null
+++ b/data/shatter/Screens/WepDlg.frm
@@ -0,0 +1,701 @@
+FORM
+
+// +--------------------------------------------------------------------+
+// Project: STARS
+// File: WepWin.frm
+//
+// John DiCamillo Software Consulting
+// Copyright © 1998. All Rights Reserved.
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: ( 0, 0, 640, 480),
+ screen_width: 640,
+ screen_height: 480,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "WepWin_640.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: camera,
+ rect: (12, 42, 618, 286),
+ back_color: ( 0, 0, 0),
+ font: HUDbold,
+ text: "System"
+ },
+
+ // weapon list:
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: false,
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 501,
+ type: button,
+ rect: (10, 345, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 511,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 345, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 521,
+ type: button,
+ rect: (121, 345, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 531,
+ type: button,
+ rect: (150, 345, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 541,
+ type: button,
+ rect: (179, 345, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 551,
+ type: label,
+ rect: (208, 348, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 502,
+ type: button,
+ rect: (10, 377, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 512,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 377, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 522,
+ type: button,
+ rect: (121, 377, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 532,
+ type: button,
+ rect: (150, 377, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 542,
+ type: button,
+ rect: (179, 377, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 552,
+ type: label,
+ rect: (208, 380, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 503,
+ type: button,
+ rect: (10, 409, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 513,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 409, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 523,
+ type: button,
+ rect: (121, 409, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 533,
+ type: button,
+ rect: (150, 409, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 543,
+ type: button,
+ rect: (179, 409, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 553,
+ type: label,
+ rect: (208, 412, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 504,
+ type: button,
+ rect: (10, 441, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 514,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 441, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 524,
+ type: button,
+ rect: (121, 441, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 534,
+ type: button,
+ rect: (150, 441, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 544,
+ type: button,
+ rect: (179, 441, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 554,
+ type: label,
+ rect: (208, 444, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ // WEP DETAIL:
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: false,
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 1300,
+ type: label,
+ rect: (260, 345, 180, 20),
+ text: "Contact List",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 1301,
+ type: list,
+ rect: (260, 365, 180, 100),
+ text: "contact list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+
+ style: 0x02,
+ item_style: 0x02,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+ },
+
+ ctrl: {
+ id: 1302,
+ type: list,
+ rect: (445, 365, 185, 100),
+ text: "system list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+
+ style: 0x02,
+ item_style: 0x02,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+ }
+}
+
+// +--------------------------------------------------------------------+
+
+form: {
+ rect: ( 0, 0, 800, 600),
+ screen_width: 800,
+ screen_height: 600,
+
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+
+ texture: "WepWin_800.pcx",
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: "GUI",
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ ctrl: {
+ id: 100,
+ type: camera,
+ rect: (10, 42, 778, 404),
+ back_color: ( 0, 0, 0),
+ font: HUDbold,
+ text: "CAMERA GOES HERE"
+ },
+
+ // weapon list:
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: false,
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 501,
+ type: button,
+ rect: (10, 466, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 511,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 466, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 521,
+ type: button,
+ rect: (121, 466, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 531,
+ type: button,
+ rect: (150, 466, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 541,
+ type: button,
+ rect: (179, 466, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 551,
+ type: label,
+ rect: (208, 469, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 502,
+ type: button,
+ rect: (10, 498, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 512,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 498, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 522,
+ type: button,
+ rect: (121, 498, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 532,
+ type: button,
+ rect: (150, 498, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 542,
+ type: button,
+ rect: (179, 498, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 552,
+ type: label,
+ rect: (208, 501, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 503,
+ type: button,
+ rect: (10, 530, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 513,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 530, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 523,
+ type: button,
+ rect: (121, 530, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 533,
+ type: button,
+ rect: (150, 530, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 543,
+ type: button,
+ rect: (179, 530, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 553,
+ type: label,
+ rect: (208, 533, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ ctrl: {
+ id: 504,
+ type: button,
+ rect: (10, 562, 93, 25),
+ text: "Wep 1"
+ },
+
+ ctrl: {
+ id: 514,
+ type: slider,
+ active_color: (53,159,67),
+ rect: (103, 562, 16, 25),
+ text: "",
+ style: 0x21,
+ orientation: 1,
+ back_color: (92, 92, 92),
+ fore_color: (53,159,67)
+ },
+
+ ctrl: {
+ id: 524,
+ type: button,
+ rect: (121, 562, 25, 25),
+ sticky: true,
+ picture: "Man.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 534,
+ type: button,
+ rect: (150, 562, 25, 25),
+ sticky: true,
+ picture: "Auto.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 544,
+ type: button,
+ rect: (179, 562, 25, 25),
+ sticky: true,
+ picture: "Def.pcx",
+ picture_type: 1,
+ picture_loc: 4
+ },
+
+ ctrl: {
+ id: 554,
+ type: label,
+ rect: (208, 565, 40, 25),
+ text: "",
+ transparent: true
+ },
+
+
+
+ // WEP DETAIL:
+
+ defctrl: {
+ base_color: ( 92, 92, 92),
+ back_color: ( 92, 92, 92),
+ fore_color: (255, 255, 255),
+ font: GUI,
+ bevel_width: 4,
+ bevel_depth: 128,
+ border: true,
+ border_color: (0,0,0)
+ },
+
+ defctrl: {
+ back_color: (62,106,151),
+ font: GUI,
+ sticky: false,
+ transparent: false
+ },
+
+
+ ctrl: {
+ id: 1300,
+ type: label,
+ rect: (260, 465, 180, 20),
+ text: "Contact List",
+ transparent: true
+ },
+
+ ctrl: {
+ id: 1301,
+ type: list,
+ rect: (260, 485, 180, 100),
+ text: "contact list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+
+ style: 0x02,
+ item_style: 0x02,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+ },
+
+ ctrl: {
+ id: 1302,
+ type: list,
+ rect: (445, 485, 185, 100),
+ text: "system list",
+ back_color: (21,21,21),
+ font: GUIsmall,
+
+ style: 0x02,
+ item_style: 0x02,
+ selected_style: 0x02,
+ scroll_bar: 2,
+ leading: 2,
+ show_headings: true,
+ },
+
+ ctrl: {
+ id: 2000,
+ type: label,
+ rect: (664, 462, 128, 128),
+ transparent: true
+ }
+}
+
+
+
diff --git a/data/shatter/Ships/Airbases/Airbase1.def b/data/shatter/Ships/Airbases/Airbase1.def
new file mode 100644
index 0000000..986f4a5
--- /dev/null
+++ b/data/shatter/Ships/Airbases/Airbase1.def
@@ -0,0 +1,119 @@
+SHIP
+
+name: Airbase1
+display_name: Starbase
+class: STARBASE
+hud_icon: "hud_icon.pcx"
+
+detail_0: "Base1-0.mag"
+feature_0: 1000
+detail_1: "Base1-6.mag"
+feature_1: 6
+
+mass: 5e6
+integrity: 250e3
+scale: 4
+acs: 100e3
+
+splash_radius: 3000
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 10e3,
+
+ loc: (220, 20, 0),
+ size: 32,
+ hull_factor: 0.6
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 100e3,
+
+ loc: (220, 120, 0),
+ size: 16,
+ hull_factor: 0.1
+}
+
+flightdeck: {
+ name: "Runway 27",
+
+ loc: ( 0, 4, 0),
+ cam: ( -30, 30, -540),
+ start: ( 0, 4, -580),
+ end: ( 0, 500, 3e3),
+
+ runway: ( 0, 4, -640),
+ runway: ( 0, 4, 640),
+
+ spot: ( 30, 4, -600),
+ spot: ( 30, 4, -640),
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Runway 31",
+ loc: ( -320, 4, -128),
+ cam: ( 200, 100, 0),
+ start: (-2700, 500, -2500),
+ end: ( -380, 4, -190),
+
+ approach: ( -4e3, 750, -4e3),
+ approach: ( -5e3, 1e3, -2e3),
+ approach: ( -5e3, 1e3, 2e3),
+ approach: ( -2e3, 1e3, 4e3),
+
+ runway: ( -660, 4, -460),
+ runway: ( 256, 4, 448),
+
+ spot: ( -192, 4, 0),
+ azimuth: 45,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+navlight: {
+ scale: 1.5,
+ period: 1,
+
+ light: { loc: (-640, 6, -448), pattern: 0x00030000, type: 1 },
+ light: { loc: (-512, 6, -320), pattern: 0x000c0000, type: 1 },
+ light: { loc: (-384, 6, -192), pattern: 0x00300000, type: 1 },
+ light: { loc: (-256, 6, -64), pattern: 0x00c00000, type: 1 },
+ light: { loc: (-128, 6, 64), pattern: 0x03000000, type: 1 },
+ light: { loc: ( 0, 6, 192), pattern: 0x0c000000, type: 1 },
+ light: { loc: ( 128, 6, 320), pattern: 0x30000000, type: 1 },
+ light: { loc: ( 256, 6, 448), pattern: 0xc0000000, type: 1 }
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+ }
+
+map: { sprite: "map0.pcx" }
+
diff --git a/data/shatter/Ships/Airbases/Airbase2.def b/data/shatter/Ships/Airbases/Airbase2.def
new file mode 100644
index 0000000..ab17024
--- /dev/null
+++ b/data/shatter/Ships/Airbases/Airbase2.def
@@ -0,0 +1,120 @@
+SHIP
+
+name: Airbase2
+display_name: Starbase
+class: STARBASE
+hud_icon: "base2_hud.pcx"
+
+detail_0: "Base2-0.mag"
+feature_0: 1000
+detail_1: "Base2-6.mag"
+feature_1: 6
+
+mass: 5e6
+integrity: 240e3
+scale: 4
+acs: 100e3
+
+splash_radius: 3000
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 10e3,
+
+ loc: (-240, 20, 450),
+ size: 32,
+ hull_factor: 0.6
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 100e3,
+
+
+ loc: (-240, 80, 450),
+ size: 16,
+ hull_factor: 0.1
+}
+
+flightdeck: {
+ name: "Runway 1R",
+
+ loc: ( 98, 10, 0),
+ cam: ( 0, 20, -540),
+ start: ( 98, 10, -580),
+ end: ( 98, 500, 3e3),
+
+ runway: ( 98, 0, -640),
+ runway: ( 98, 0, 640),
+
+ spot: ( 138, 10, -768),
+ spot: ( 58, 10, -768),
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Runway 2L",
+ loc: ( -98, 0, -128),
+ cam: ( 0, 100, 0),
+ start: ( -98, 800, -3200),
+ end: ( -98, 10, -255),
+
+ approach: ( -5e3, 1e3, -4e3),
+ approach: ( -5e3, 1e3, -2e3),
+ approach: ( -5e3, 1e3, 2e3),
+ approach: ( -250, 1e3, 4e3),
+
+ runway: ( -98, 10, -640),
+ runway: ( -98, 10, 640),
+
+ spot: ( -98, 10, 0),
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+navlight: {
+ scale: 1.5,
+ period: 1,
+
+ light: { loc: (-98, 6, -448), pattern: 0x00030000, type: 1 },
+ light: { loc: (-98, 6, -320), pattern: 0x000c0000, type: 1 },
+ light: { loc: (-98, 6, -192), pattern: 0x00300000, type: 1 },
+ light: { loc: (-98, 6, -64), pattern: 0x00c00000, type: 1 },
+ light: { loc: (-98, 6, 64), pattern: 0x03000000, type: 1 },
+ light: { loc: (-98, 6, 192), pattern: 0x0c000000, type: 1 },
+ light: { loc: (-98, 6, 320), pattern: 0x30000000, type: 1 },
+ light: { loc: (-98, 6, 448), pattern: 0xc0000000, type: 1 }
+}
+
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+}
+
+map: { sprite: "base2_map.pcx" }
+
diff --git a/data/shatter/Ships/Airbases/Airbase3.def b/data/shatter/Ships/Airbases/Airbase3.def
new file mode 100644
index 0000000..ea8dbb5
--- /dev/null
+++ b/data/shatter/Ships/Airbases/Airbase3.def
@@ -0,0 +1,121 @@
+SHIP
+
+name: Airbase3
+display_name: Starbase
+class: STARBASE
+hud_icon: "base2_hud.pcx"
+
+detail_0: "Base3-0.mag"
+feature_0: 1000
+detail_1: "Base3-6.mag"
+feature_1: 6
+
+mass: 5e6
+integrity: 240e3
+scale: 4
+acs: 100e3
+
+splash_radius: 3000
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 10e3,
+
+ loc: (-240, 20, 450),
+ size: 32,
+ hull_factor: 0.6
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 100e3,
+
+
+ loc: (-240, 80, 450),
+ size: 16,
+ hull_factor: 0.1
+}
+
+flightdeck: {
+ name: "Runway 1R",
+
+ loc: ( 98, 10, 0),
+ cam: ( 0, 20, -540),
+ start: ( 98, 10, -580),
+ end: ( 98, 500, 3e3),
+
+ runway: ( 98, 0, -640),
+ runway: ( 98, 0, 640),
+
+ spot: ( 138, 10, -768),
+ spot: ( 58, 10, -768),
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Runway 2L",
+ loc: ( -98, 0, -128),
+ cam: ( 0, 100, 0),
+ start: ( -98, 800, -3200),
+ end: ( -98, 10, -255),
+
+ approach: ( -5e3, 1e3, -4e3),
+ approach: ( -5e3, 1e3, -2e3),
+ approach: ( -5e3, 1e3, 2e3),
+ approach: ( -250, 1e3, 4e3),
+
+ runway: ( -98, 10, -640),
+ runway: ( -98, 10, 640),
+
+ spot: ( -98, 10, 0),
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+
+navlight: {
+ scale: 1.5,
+ period: 1,
+
+ light: { loc: (-98, 6, -448), pattern: 0x00030000, type: 1 },
+ light: { loc: (-98, 6, -320), pattern: 0x000c0000, type: 1 },
+ light: { loc: (-98, 6, -192), pattern: 0x00300000, type: 1 },
+ light: { loc: (-98, 6, -64), pattern: 0x00c00000, type: 1 },
+ light: { loc: (-98, 6, 64), pattern: 0x03000000, type: 1 },
+ light: { loc: (-98, 6, 192), pattern: 0x0c000000, type: 1 },
+ light: { loc: (-98, 6, 320), pattern: 0x30000000, type: 1 },
+ light: { loc: (-98, 6, 448), pattern: 0xc0000000, type: 1 }
+}
+
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+}
+
+map: { sprite: "base2_map.pcx" }
+
diff --git a/data/shatter/Ships/Alliance_Fighters/Eagle.def b/data/shatter/Ships/Alliance_Fighters/Eagle.def
new file mode 100644
index 0000000..929b288
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Fighters/Eagle.def
@@ -0,0 +1,366 @@
+SHIP
+
+name: Eagle
+display_name: Eagle
+class: Fighter
+abrv: "F-34D"
+
+hud_icon: "EagleHud.pcx"
+description: "The F-34D EAGLE is a compact, multi-role fighter spacecraft. It is highly maneuverable and has proven itself in spaceborne and airborne combat as well as in surface attack missions. It provides a relatively low-cost, high-performance weapon system for Alliance forces. Like the F-32 Falcon, the Eagle is armed with twin Delta particle cannon, along with four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Eagle's heavier structure also provides support for air-to-ground and antiship weapons and increased survivability at some cost in overall maneuverability."
+
+detail_0: "Eagle_0.mag"
+feature_0: 25
+detail_1: "Eagle_1b.mag"
+feature_1: 1
+
+cockpit_model: "EaglePit2t.mag"
+cockpit_scale: 0.02
+
+mass: 17.3
+integrity: 6e3
+scuttle: 2e3
+vlimit: 300
+agility: 130
+air_factor: 0.25
+roll_rate: 1700
+scale: 0.25
+acs: 1.1
+detet: 50e3
+
+trans_x: 3e3
+trans_y: 3e3
+trans_z: 3e3
+
+arcade_drag: 0.13
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.8e-2 //1.1e-2
+CD: 5.1e-2 //1.1e-1
+stall: 0.45
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -770, 80)
+bridge: (0, 102, 23)
+
+power: {
+ type: Fusion,
+ max_output: 75,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 60,
+ scale: 0.35,
+ port: (-8, 1, -188),
+ port: ( 8, 1, -188),
+
+ loc: (0, 0, -150),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon",
+ abrv: Cannon,
+ muzzle: (-19, -3, 177),
+ muzzle: ( 19, -3, 177),
+
+ loc: ( 0, 0, 32),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-1",
+ muzzle: (-69, -22, -75)
+
+ loc: (-69, -22, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-2",
+ muzzle: (-48, -17, -75)
+
+ loc: (-48, -17, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: (-20, -13, -25)
+
+ loc: (-20, -13, -15)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (-14, -14, 52)
+
+ loc: (-14, -14, 60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-5",
+ muzzle: ( 15, -14, 52)
+
+ loc: ( 15, -14, 60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-6",
+ muzzle: ( 20, -13, -25)
+
+ loc: ( 20, -13, -15)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-7",
+ muzzle: ( 48, -17, -75)
+
+ loc: ( 48, -17, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-8",
+ muzzle: ( 70, -22, -75)
+
+ loc: ( 70, -22, -60)
+ size: 16,
+ hull_factor: 0.2
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -18, 100),
+ end: (0, -38, 130)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -20, -74),
+ end: (-40, -50, -70)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -20, -74),
+ end: ( 40, -50, -70)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ scale: 0.12,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+
+ port_fore: {loc:( -40, 5, 28), fire: 0x0044},
+ port_fore: {loc:( -40, -9, 28), fire: 0x0044},
+ port_fore: {loc:( 40, -9, 28), fire: 0x0084},
+ port_fore: {loc:( 40, 5, 28), fire: 0x0084},
+
+ port_aft: {loc:( -3, -8,-188), fire: 0x0008},
+ port_aft: {loc:( 3, -8,-188), fire: 0x0008},
+
+ port_top: {loc:( -3, 17,-145), fire: 0x0210},
+ port_top: {loc:( 3, 17,-145), fire: 0x0210},
+
+ port_bottom: {loc:( -3, -17,-145), fire: 0x0120},
+ port_bottom: {loc:( 3, -17,-145), fire: 0x0120},
+
+ port_top: {loc:( -19, 6, 98), fire: 0x0510},
+ port_top: {loc:( 19, 6, 98), fire: 0x0910},
+
+ port_bottom: {loc:( -19, -9, 98), fire: 0x0A20},
+ port_bottom: {loc:( 19, -9, 98), fire: 0x0620},
+}
+
+/*
+0x0001 = Translate Right
+0x0002 = "" Left
+0x0004 = "" Backwards
+0x0008 = "" Forewards
+0x0010 = "" Down
+0x0020 = "" Up
+0x0040 = Yaw Left
+0x0080 = Yaw Right
+0x0100 = Pitch Up
+0x0200 = Pitch Down
+0x0400 = Roll Left
+0x0800 = Roll Right
+*/
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, -1, 0, 0, 0, 0, -1, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 1, 1, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 3, 3, 0, 1, 1, 0, 3, 3) }
+loadout: { name: "Ship Strike", stations: ( 2, 2, 0, 1, 1, 0, 2, 2) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 0, 1, 1, 0, 2, 2) }
+loadout: { name: "Rockets", stations: ( 0, 4, 1, 1, 1, 1, 4, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, -1, 0, 0, 0, 0, -1, -1) }
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.9,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.2
+ debris_speed: 160
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.25
+ debris_speed: 180
+}
+
+map: {
+ sprite: "e_map0.pcx",
+ sprite: "e_map1.pcx",
+ sprite: "e_map2.pcx",
+ sprite: "e_map3.pcx",
+ sprite: "e_map4.pcx",
+ sprite: "e_map5.pcx",
+ sprite: "e_map6.pcx",
+ sprite: "e_map7.pcx"
+}
+
diff --git a/data/shatter/Ships/Alliance_Fighters/Falcon.def b/data/shatter/Ships/Alliance_Fighters/Falcon.def
new file mode 100644
index 0000000..bd99e31
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Fighters/Falcon.def
@@ -0,0 +1,309 @@
+SHIP
+
+name: Falcon
+display_name: Falcon
+class: Fighter
+abrv: "F-32"
+
+hud_icon: "FalconHud.pcx"
+description: "The F-32 FALCON is the premier single-seat intercept fighter craft for the Alliance FORCE:Space. Designed to be lightweight, low cost and easy to maintain, the Falcon is a respected highly maneuverable and versatile tactical fighter. It is armed with twin Delta particle cannon, and four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Falcon is routinely tasked with patrol, escort, and intercept mission profiles."
+
+detail_0: "falcon6_0.mag"
+feature_0: 25
+detail_1: "Falcon6_1.mag"
+feature_1: 1
+
+cockpit_model: "FalconPit.mag"
+cockpit_scale: 0.02
+
+mass: 14.5
+integrity: 4e3
+scuttle: 1e3
+vlimit: 290
+agility: 170
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.27
+acs: 1.1
+detet: 50e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.1
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.3e-2
+CD: 0.7e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 80)
+bridge: (0, 131, 23)
+
+power: {
+ type: Fusion,
+ max_output: 65,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 50,
+ scale: 0.32,
+ port: ( 33, 12, -175),
+ port: (-33, 12, -175),
+
+ loc: (0, 0, -130),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon",
+ abrv: Cannon,
+ muzzle: (-21, 0, 130),
+ muzzle: ( 21, 0, 130),
+
+ loc: (0, 0, -32),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-110, -7, -145),
+
+ loc: (-110, -7, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-2",
+ muzzle: (-93, -5, -145),
+
+ loc: (-93, -5, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: ( 93, -5, -145),
+
+ loc: ( 93, -5, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (110, -7, -145),
+
+ loc: (110, -7, -145),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 1, 3, 3, 1) }
+loadout: { name: "Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Hvy Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Rockets", stations: ( 0, 3, 3, 0) }
+loadout: { name: "Scout/Recon", stations: ( 0, -1, -1, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -8, 90),
+ end: (0, -28, 120)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -17, -79),
+ end: (-40, -37, -75)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -17, -79),
+ end: ( 40, -37, -75)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:( -31, 8, 5), fire: 0x0044},
+ port_fore: {loc:( -27, 14, 5), fire: 0x0044},
+ port_fore: {loc:( 27, 14, 5), fire: 0x0084},
+ port_fore: {loc:( 31, 8, 5), fire: 0x0084},
+
+ port_aft: {loc:( -8, 2,-172), fire: 0x0088},
+ port_aft: {loc:( 8, 2,-172), fire: 0x0048},
+
+ port_top: {loc:( -2, 12,-162), fire: 0x0110},
+ port_top: {loc:( 2, 12,-162), fire: 0x0110},
+
+ port_bottom: {loc:( -2, -12,-162), fire: 0x0220},
+ port_bottom: {loc:( 2, -12,-162), fire: 0x0220},
+
+ port_top: {loc:(-124, -4, -96), fire: 0x0410},
+ port_top: {loc:(-124, -4,-115), fire: 0x0410},
+
+ port_top: {loc:( 124, -4, -96), fire: 0x0810},
+ port_top: {loc:( 124, -4,-115), fire: 0x0810},
+
+ port_bottom: {loc:(-123, -5, -96), fire: 0x0820},
+ port_bottom: {loc:(-123, -5,-115), fire: 0x0820},
+
+ port_bottom: {loc:( 123, -5, -96), fire: 0x0420},
+ port_bottom: {loc:( 123, -5,-115), fire: 0x0420},
+
+ port_bottom: {loc:( -2, -6, 141), fire: 0x0120},
+ port_bottom: {loc:( 2, -6, 141), fire: 0x0120},
+
+}
+
+
+death_spiral: {
+ time: 3,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.8,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (1,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+map: {
+ sprite: "f_map0.pcx",
+ sprite: "f_map1.pcx",
+ sprite: "f_map2.pcx",
+ sprite: "f_map3.pcx",
+ sprite: "f_map4.pcx",
+ sprite: "f_map5.pcx",
+ sprite: "f_map6.pcx",
+ sprite: "f_map7.pcx"
+}
+
diff --git a/data/shatter/Ships/Alliance_Fighters/Stormhawk.def b/data/shatter/Ships/Alliance_Fighters/Stormhawk.def
new file mode 100644
index 0000000..3598c97
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Fighters/Stormhawk.def
@@ -0,0 +1,335 @@
+SHIP
+
+name: Stormhawk
+display_name: Stormhawk
+class: Fighter
+abrv: "F-36C"
+
+hud_icon: "StormhawkHud.pcx"
+description: "The F-36C STORMHAWK is a compact, multi-role fighter spacecraft. It is highly maneuverable and has proven itself in spaceborne and airborne combat as well as in surface attack missions. It provides a relatively low-cost, high-performance weapon system for Alliance forces. Like the F-32 Falcon, the Stormhawk is armed with twin Delta particle cannon, along with four underwing hard points capable of mounting a variety of anti-fighter ordnance. The Stormhawk's heavier structure also provides support for air-to-ground and antiship weapons and increased survivability at some cost in overall maneuverability."
+
+detail_0: "Storm6_0.mag"
+feature_0: 25
+detail_1: "Storm6_1.mag"
+feature_1: 1
+
+cockpit_model: "StormPit2b.mag"
+cockpit_scale: 0.02
+
+mass: 15.1
+integrity: 5e3
+scuttle: 1e3
+vlimit: 290
+agility: 140
+air_factor: 0.3
+roll_rate: 1700
+scale: 0.25
+acs: 1.1
+detet: 50e3
+
+trans_x: 3e3
+trans_y: 2e3
+trans_z: 3e3
+
+arcade_drag: 0.13
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.8e-2 //1.1e-2
+CD: 5.1e-2 //1.1e-1
+stall: 0.45
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -790, 90)
+bridge: (0, 102, 23)
+
+power: {
+ type: Fusion,
+ max_output: 75,
+ fuel_range: 0.5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 20,
+ augmenter: 60,
+ scale: 0.35,
+ port: (0, 0, -178),
+
+ loc: (0, 0, -100),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+
+weapon: {
+ type: "Delta Cannon"
+ abrv: Cannon
+ muzzle: (-28, 2, 77)
+ muzzle: ( 28, 2, 77)
+
+ loc: (0, 0, 32)
+ size: 16,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-78, -10, -120),
+
+ loc: (-78, -10, -120),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: (-50, -5, -110),
+
+ loc: (-50, -5, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: (-16, -18, -110),
+
+ loc: (-16, -18, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ type: "Recon Pod",
+ abrv: "STA-4",
+ muzzle: ( 16, -18, -110),
+
+ loc: ( 16, -18, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: ( 50, -5, -110),
+
+ loc: ( 50, -5, -110),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-6",
+ muzzle: ( 78, -10, -120),
+
+ loc: ( 78, -10, -120),
+ size: 16,
+ hull_factor: 0.2
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose1.mag",
+ start: (0, -18, 100),
+ end: (0, -38, 130)
+ },
+
+ gear: {
+ model: "GearLeft1.mag",
+ start: (-20, -20, -74),
+ end: (-40, -50, -70)
+ },
+
+ gear: {
+ model: "GearRight1.mag",
+ start: ( 20, -20, -74),
+ end: ( 40, -50, -70)
+ },
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+thruster: {
+ design: Thruster,
+ type: Plasma,
+ scale: 0.12,
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+
+ port_fore: {loc:(-104, -5, -40), fire: 0x0044},
+ port_fore: {loc:( -95, -4, -31), fire: 0x0044},
+ port_fore: {loc:( 95, -4, -31), fire: 0x0084},
+ port_fore: {loc:( 104, -5, -40), fire: 0x0084},
+
+ port_aft: {loc:(-104, -5,-119), fire: 0x0088},
+ port_aft: {loc:( -95, -4,-121), fire: 0x0088},
+ port_aft: {loc:( 95, -4,-121), fire: 0x0048},
+ port_aft: {loc:( 104, -5,-119), fire: 0x0048},
+
+ port_top: {loc:( -6, 13, 120), fire: 0x0210},
+ port_top: {loc:( -6, 13, 113), fire: 0x0210},
+ port_top: {loc:( 6, 13, 113), fire: 0x0210},
+ port_top: {loc:( 6, 13, 120), fire: 0x0210},
+
+ port_bottom: {loc:( -6, -15, 120), fire: 0x0120},
+ port_bottom: {loc:( -6, -15, 113), fire: 0x0120},
+ port_bottom: {loc:( 6, -15, 113), fire: 0x0120},
+ port_bottom: {loc:( 6, -15, 120), fire: 0x0120},
+
+ port_top: {loc:( -83, 0,-100), fire: 0x0510},
+ port_top: {loc:( -83, 0,-107), fire: 0x0510},
+ port_top: {loc:( 83, 0,-100), fire: 0x0910},
+ port_top: {loc:( 83, 0,-107), fire: 0x0910},
+
+ port_bottom: {loc:( -96, -9, -96), fire: 0x0A20},
+ port_bottom: {loc:( -96, -9,-115), fire: 0x0A20},
+ port_bottom: {loc:( 96, -9, -96), fire: 0x0620},
+ port_bottom: {loc:( 96, -9,-115), fire: 0x0620},
+}
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, -1, -1, 0, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 1, 1, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 3, 3, 3, 3, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 1, 4, 4, 1, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, -1, 5, 0, -1) }
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.9,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.9
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.7
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+map: {
+ sprite: "s_map0.pcx",
+ sprite: "s_map1.pcx",
+ sprite: "s_map2.pcx",
+ sprite: "s_map3.pcx",
+ sprite: "s_map4.pcx",
+ sprite: "s_map5.pcx",
+ sprite: "s_map6.pcx",
+ sprite: "s_map7.pcx"
+}
+
diff --git a/data/shatter/Ships/Alliance_Fighters/Thunderbolt.def b/data/shatter/Ships/Alliance_Fighters/Thunderbolt.def
new file mode 100644
index 0000000..946fd31
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Fighters/Thunderbolt.def
@@ -0,0 +1,356 @@
+SHIP
+
+name: Thunderbolt
+display_name: Thunderbolt
+class: attack
+abrv: "F/A-38D"
+
+hud_icon: "ThunderboltHud.pcx"
+description: "The F/A-38D THUNDERBOLT is the primary Alliance attack craft, and the first specially designed for close air support of ground forces. They are tough, effective and powerful four-engine spacecraft that can be used against all ground targets, as well as fulfilling a secondary role in killing spaceborne platforms and starships. The 'Bolt has six underwing hardpoints for standard attack ordnance, as well as dual front-mounted Heavy Energy Cannon. For rear protection from hostile fighters and high-speed threats, the Thunderbolt features an autonomous tail gun turret."
+
+detail_0: "Thunderbolt_0a.mag"
+feature_0: 25
+detail_1: "Thunderbolt_1a.mag"
+feature_1: 1
+
+cockpit_model: "BoltPit2a.mag"
+cockpit_scale: 0.02
+
+mass: 29.7
+integrity: 7.5e3
+vlimit: 230
+agility: 40
+air_factor: 0.25
+roll_rate: 500
+scale: 0.27
+acs: 1.0
+detet: 50e3
+
+trans_x: 2500
+trans_y: 2500
+trans_z: 2500
+
+arcade_drag: 0.17
+drag: 3.6e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 1.6e-2
+CD: 0.7e-1
+stall: 0.38
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1000, 130)
+bridge: (0, 180, 20)
+
+power: {
+ type: Fusion
+ name: "Fusion Reactor"
+ design: "Fusion Reactor"
+ max_output: 75
+
+ loc: (0, 0, 0)
+ size: 10
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Plasma
+ design: "Plasma Drive"
+ thrust: 19
+ augmenter: 30
+ scale: 0.35
+ port: ( 83, -8, -94)
+ port: (-83, -8, -94)
+
+ loc: ( 0, 0, -90)
+ size: 24
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Heavy Cannon"
+ abrv: Cannon
+ muzzle: (-22, -1, 200)
+ muzzle: ( 21, -1, 200)
+
+ loc: (0, 0, 160)
+ size: 32
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Fighter Turret"
+ abrv: Turret
+ muzzle: (0, 0, 24)
+ loc: (0, 0, -195)
+ azimuth: 3.1416
+ size: 32
+ hull_factor: 0.3
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-1",
+ muzzle: (-116, -25, -82),
+
+ loc: (-116, -25, -70),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: (-60, -16, -72),
+
+ loc: (-60, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: (-40, -16, -72),
+
+ loc: (-40, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( 40, -16, -72),
+
+ loc: ( 40, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: ( 60, -16, -72),
+
+ loc: ( 60, -16, -60),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: (116, -25, -82),
+
+ loc: (116, -25, -70),
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1,) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, -1, -1, 0,) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 1, 1, 0, 0,) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 1, 1, 0,) }
+loadout: { name: "Ground Strike", stations: ( 1, 3, 3, 3, 3, 1,) }
+loadout: { name: "Ship Strike", stations: ( 1, 2, 2, 2, 2, 1,) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 2, 2, 2, 2,) }
+loadout: { name: "Rockets", stations: ( 0, 1, 4, 4, 1, 0,) }
+loadout: { name: "Scout/Recon", stations: ( 0, 1, -1, -1, 1, 0,) }
+
+decoy: {
+ type: "Fighter Decoy"
+ abrv: Decoy
+ muzzle: ( 0, -32, 0)
+
+ loc: (0, 0, 0)
+ size: 16
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor
+ pcs: 20
+ active_efficiency: 1e6
+ passive_efficiency: 10e3
+ range: 25e3
+ range: 50e3
+ range: 75e3
+
+ loc: (0, 0, 30)
+ size: 16
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package"
+ abrv: "HUD"
+ type: 1
+ design: Computer
+
+ loc: (0, 0, 40)
+ size: 16
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer"
+ abrv: "Flight"
+ type: 2
+ design: Computer
+ loc: (0, 0, 90)
+ size: 16
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10)
+ design: Computer
+ size: 16
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage"
+ abrv: Gear
+ loc: (0, 0, 0)
+ size: 16
+ hull_factor: 0.5
+
+ gear: {
+ model: "GearNose1.mag"
+ start: (0, -15, 144)
+ end: (0, -35, 158)
+ }
+
+ gear: {
+ model: "GearLeft1.mag"
+ start: (-20, -22, -64)
+ end: (-42, -48, -64)
+ }
+
+ gear: {
+ model: "GearRight1.mag"
+ start: ( 20, -22, -64)
+ end: ( 42, -48, -64)
+ }
+}
+
+thruster: {
+ design: Thruster
+ type: Plasma
+ scale: 0.12
+ loc: (0, -52,0)
+ size: 32
+ hull_factor: 0.5
+
+ port_fore: {loc:( -48, -2, 61), fire: 0x0044}
+ port_fore: {loc:( -36, -1, 61), fire: 0x0044}
+ port_fore: {loc:( 36, -1, 61), fire: 0x0084}
+ port_fore: {loc:( 48, -2, 61), fire: 0x0084}
+
+ port_aft: {loc:( -48, -2, -84), fire: 0x0088}
+ port_aft: {loc:( -36, -1, -90), fire: 0x0088}
+ port_aft: {loc:( 36, -1, -90), fire: 0x0048}
+ port_aft: {loc:( 48, -2, -84), fire: 0x0048}
+
+ port_left: {loc:( -26, 0, 127), fire: 0x0080}
+ port_left: {loc:( -38, 0,-144), fire: 0x0040}
+ port_right: {loc:( 26, 0, 127), fire: 0x0040}
+ port_right: {loc:( 38, 0,-144), fire: 0x0080}
+
+ port_top: {loc:( -86, 10, 29), fire: 0x0610}
+ port_top: {loc:( 86, 10, 29), fire: 0x0A10}
+ port_top: {loc:( -86, 10, -60), fire: 0x0410}
+ port_top: {loc:( 86, 10, -60), fire: 0x0810}
+
+ port_top: {loc:( -9, 22,-125), fire: 0x0110}
+ port_top: {loc:( -9, 22,-164), fire: 0x0110}
+ port_top: {loc:( 9, 22,-125), fire: 0x0110}
+ port_top: {loc:( 9, 22,-164), fire: 0x0110}
+
+ port_bottom: {loc:( -86, -24, 29), fire: 0x0920}
+ port_bottom: {loc:( 86, -24, 29), fire: 0x0520}
+ port_bottom: {loc:( -86, -24, -60), fire: 0x0820}
+ port_bottom: {loc:( 86, -24, -60), fire: 0x0420}
+
+ port_bottom: {loc:( -9, -20,-125), fire: 0x0220}
+ port_bottom: {loc:( -9, -20,-164), fire: 0x0220}
+ port_bottom: {loc:( 9, -20,-125), fire: 0x0220}
+ port_bottom: {loc:( 9, -20,-164), fire: 0x0220}
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "b_map0.pcx"
+ sprite: "b_map1.pcx"
+ sprite: "b_map2.pcx"
+ sprite: "b_map3.pcx"
+ sprite: "b_map4.pcx"
+ sprite: "b_map5.pcx"
+ sprite: "b_map6.pcx"
+ sprite: "b_map7.pcx"
+}
diff --git a/data/shatter/Ships/Alliance_Fighters/Zodiac.def b/data/shatter/Ships/Alliance_Fighters/Zodiac.def
new file mode 100644
index 0000000..b172d12
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Fighters/Zodiac.def
@@ -0,0 +1,243 @@
+SHIP
+
+name: Zodiac
+display_name: Zodiac
+class: LCA
+abrv: LCA
+description: "The ZODIAC armored landing craft (LCA) is the standard Alliance millitary shuttle platform, and the only Force:Space craft capable of atmospheric VTOL. The Zodiac is commonly used to ferry personnel and equipment between groundside bases and spaceborne platforms. The Zodiac is armed with four (4) heavy Vulcan cannon, and an aft-mounted automated laser turret for self-defense."
+
+degrees: true
+
+hud_icon: "ZodiacHud.pcx"
+
+detail_0: "Zodiac_1a.mag"
+feature_0: 100
+detail_1: "Zodiac_2k.mag"
+feature_1: 4
+
+
+mass: 87
+integrity: 5250
+vlimit: 250
+agility: 25
+roll_rate: 350
+scale: 0.45
+acs: 1
+
+trans_x: 2800
+trans_y: 2800
+trans_z: 2800
+
+arcade_drag: 0.2
+drag: 4e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 5e-3
+CD: 1e-4
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1500, 150)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 80,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Plasma,
+ thrust: 45,
+ scale: 0.75,
+ port: (-20, 10, -318),
+ port: ( 20, 10, -318),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+thruster: {
+ design: Thruster,
+ scale: 0.5,
+ port: (-44, -28, 8),
+ port: ( 44, -28, 8),
+ port: (-44, -28, -165),
+ port: ( 44, -28, -165),
+
+ port_fore: {loc:(-193, -11, 8), fire: 0x0044},
+ port_fore: {loc:(-191, -27, 8), fire: 0x0044},
+ port_fore: {loc:( 191, -27, 8), fire: 0x0084},
+ port_fore: {loc:( 193, -11, 8), fire: 0x0084},
+
+ port_aft: {loc:(-193, -11,-159), fire: 0x0088},
+ port_aft: {loc:(-191, -27,-159), fire: 0x0088},
+ port_aft: {loc:( 191, -27,-159), fire: 0x0048},
+ port_aft: {loc:( 193, -11,-159), fire: 0x0048},
+
+ loc: (0, -20, 128),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "ZGearRight.mag",
+ start: (44, -25, -10),
+ end: (74, -60, -10)
+ },
+
+ gear: {
+ model: "ZGearLeft.mag",
+ start: (-44, -25, -10),
+ end: (-74, -60, -10)
+ },
+
+ gear: {
+ model: "ZGearRight.mag",
+ start: (44, -25, -128),
+ end: (74, -60, -128)
+ },
+
+ gear: {
+ model: "ZGearLeft.mag",
+ start: (-44, -25, -128),
+ end: (-74, -60, -128)
+ },
+}
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Main Cannon",
+ abrv: "Guns",
+ muzzle: (-38, -21, 191),
+ muzzle: (-30, -22, 203),
+ muzzle: ( 30, -22, 203),
+ muzzle: ( 38, -21, 191),
+
+ loc: (0, -10, 110),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+
+weapon: {
+ type: "LCA Turret",
+ design: "Bolt Weapon",
+ name: "Turret",
+ abrv: "Turret",
+
+ azimuth: 180
+
+ muzzle: (-16, 0, 148)
+ muzzle: ( 16, 0, 148)
+ loc: ( 0, 74, -189)
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 1.2,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1.0,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+ }
+
+map: {
+ sprite: "z_map0.pcx",
+ sprite: "z_map1.pcx",
+ sprite: "z_map2.pcx",
+ sprite: "z_map3.pcx",
+ sprite: "z_map4.pcx",
+ sprite: "z_map5.pcx",
+ sprite: "z_map6.pcx",
+ sprite: "z_map7.pcx",
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Main
+ Ka: (0.5, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (0.8, 0.8, 0.8)
+ Ke: (0.0, 0.0, 0.0)
+ power: 20
+ bump: 2
+ tex_d: "Zodiac_D2.jpg"
+ tex_s: "Zodiac_S.jpg"
+ tex_b: "Zodiac_B.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Alliance_Ships/Asher.def b/data/shatter/Ships/Alliance_Ships/Asher.def
new file mode 100644
index 0000000..e71ce1d
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Asher.def
@@ -0,0 +1,398 @@
+SHIP
+
+name: Asher
+display_name: Asher
+class: Destroyer
+description: "The DD/E-708 ASHER class of destroyer/escorts represents a lighter, more maneuverable alternative to the heavy Spectre class destroyers that make up the majority of Alliance destroyer squadrons. The Asher class is armed with a trio of nose-mounted XRay Laser batteries, and a pair of wing-mounted fusion torpedo launchers, as well as the usual complement of point defense turrets. This combination of power and agility makes the Asher class well suited to the fleet carrier escort role they are asked to fulfill"
+
+degrees: true
+beauty: (-15, 6, 1.2)
+hud_icon: "AsherHud.pcx"
+
+detail_0: "Destroyer_0opt.mag"
+feature_0: 1000
+detail_1: "Destroyer_1opt.mag"
+feature_1: 40
+detail_2: "Destroyer_2opt.mag"
+feature_2: 20
+
+mass: 15.5e3
+agility: 3.5
+vlimit: 300
+roll_rate: 7
+integrity: 22e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ name: "Reactor One",
+ max_output: 7500,
+
+ loc: (0, -20, -220),
+ size: 48,
+ hull_factor: 0.75,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 2500,
+ scale: 4,
+ port: (-23, -6, -595),
+ port: (-23, -31, -595),
+ port: ( 23, -6, -595),
+ port: ( 23, -31, -595),
+
+ loc: (0, -20, -480),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -74, 0,-363), fire: 0x0041}
+ port_left: {loc:( -74, 0,-323), fire: 0x0041}
+ port_left: {loc:( -35, 34, 349), fire: 0x0081}
+ port_left: {loc:( -35, 34, 362), fire: 0x0081}
+
+ port_right: {loc:( 74, 0,-363), fire: 0x0082}
+ port_right: {loc:( 74, 0,-323), fire: 0x0082}
+ port_right: {loc:( 35, 34, 349), fire: 0x0042}
+ port_right: {loc:( 35, 34, 362), fire: 0x0042}
+
+ port_fore: {loc:(-116, -9, 37), fire: 0x0044}
+ port_fore: {loc:(-100, -9, 37), fire: 0x0044}
+ port_fore: {loc:( 100, -9, 37), fire: 0x0084}
+ port_fore: {loc:( 116, -9, 37), fire: 0x0084}
+
+ port_aft: {loc:(-116, -9,-280), fire: 0x0088}
+ port_aft: {loc:(-100, -9,-280), fire: 0x0088}
+ port_aft: {loc:( 100, -9,-280), fire: 0x0048}
+ port_aft: {loc:( 116, -9,-280), fire: 0x0048}
+
+ port_top: {loc:( -20, 32,-458), fire: 0x0110}
+ port_top: {loc:( 20, 32,-458), fire: 0x0110}
+
+ port_bottom: {loc:( -20,-104,-458), fire: 0x0220}
+ port_bottom: {loc:( 20,-104,-458), fire: 0x0220}
+
+ port_top: {loc:(-108, 20, -35), fire: 0x0410}
+ port_top: {loc:(-108, 20,-207), fire: 0x0410}
+ port_top: {loc:( 107, 20, -35), fire: 0x0810}
+ port_top: {loc:( 107, 20,-207), fire: 0x0810}
+
+ port_bottom: {loc:(-108, -32, -35), fire: 0x0820}
+ port_bottom: {loc:(-108, -32,-207), fire: 0x0820}
+ port_bottom: {loc:( 107, -32, -35), fire: 0x0420}
+ port_bottom: {loc:( 107, -32,-207), fire: 0x0420}
+
+ port_top: {loc:( -18, 62, 341), fire: 0x0210}
+ port_top: {loc:( 16, 62, 341), fire: 0x0210}
+
+ port_bottom: {loc:( -18 -71, 341), fire: 0x0120}
+ port_bottom: {loc:( 16, -71, 341), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "Destroyer_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -20, 0),
+ size: 48,
+ hull_factor: 0.7
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ name: "Reactor Two",
+ max_output: 1000,
+
+ loc: (0, 0, -180),
+ size: 20,
+ hull_factor: 0.8
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-22, -9, 425),
+
+ loc: (-22, -9, 400),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 0, -22, 425),
+
+ loc: ( 0, -22, 420),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: ( 22, -9, 425),
+
+ loc: ( 22, -9, 420),
+ size: 32,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Starboard Torpedo",
+ abrv: "Torp-1",
+ muzzle: ( 106, -12, 60),
+
+ loc: ( 100, -12, 0),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Port Torpedo",
+ abrv: "Torp-2",
+ muzzle: (-106, -12, 60),
+
+ loc: (-100, -12, 0),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB-1",
+ group: "PDB",
+ loc: (-110, 15, -128),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Phalanx",
+ abrv: "PDB-2",
+ group: "PDB",
+
+ loc: ( 110, 15, -128),
+ azimuth: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Phalanx",
+ abrv: "PDB-3",
+ group: "PDB",
+
+ loc: ( 0, 56, -190)
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 20,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.3,
+ period: 2.2,
+
+ light: { loc: ( 140,-10, -80), pattern: 0x11000000, type: 3 },
+ light: { loc: (-140,-10, -80), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0, 55,-320), pattern: 0x00001100, type: 1 },
+ light: { loc: ( 0,-94,-320), pattern: 0x00001100, type: 1 },
+ light: { loc: ( 0, 64, 320), pattern: 0x00001100, type: 1 },
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-450),
+ debris_mass: 15e3,
+ debris_count: 1,
+ debris_life: 150,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 22,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 25,
+
+}
+
+map: {
+ sprite: "AsherMap0.pcx",
+ sprite: "AsherMap1.pcx",
+ sprite: "AsherMap2.pcx",
+ sprite: "AsherMap3.pcx",
+ sprite: "AsherMap4.pcx",
+ sprite: "AsherMap5.pcx",
+ sprite: "AsherMap6.pcx",
+ sprite: "AsherMap7.pcx"
+}
+
+
+
+
+
diff --git a/data/shatter/Ships/Alliance_Ships/Berents.def b/data/shatter/Ships/Alliance_Ships/Berents.def
new file mode 100644
index 0000000..0587a80
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Berents.def
@@ -0,0 +1,333 @@
+SHIP
+
+name: Berents
+display_name: Berents
+class: Frigate
+description: "The FF-922 BERENTS class frigates fulfill a Protection of Shipping (POS) mission providing anti-fighter cover for amphibious expeditionary forces, underway replenishment groups and merchant convoys. The Berents class anti-fighter weapons complement includes two forward plus one aft Phalanx PDB mounts, along with a pair of Mark VII interceptor launchers. The Berents class was also recently upgraded to include a heavy plasma cannon battery for use against harder targets."
+
+hud_icon: "BerentsHud.pcx"
+
+detail_0: "Frigate_1opt.mag"
+feature_0: 1000
+detail_1: "Frigate_3opt.mag"
+feature_1: 40
+
+
+mass: 8.2e3
+agility: 4
+vlimit: 320
+roll_rate: 8
+integrity: 20e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 2,
+ port: (-19,19,-400),
+ port: ( 19,19,-400),
+ port: (-19, 4,-400),
+ port: ( 19, 4,-400),
+
+ loc: (0, 0, -100),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -37, 24,-268), fire: 0x0041}
+ port_left: {loc:( -44, 13, 268), fire: 0x0081}
+
+ port_right: {loc:( 37, 24,-268), fire: 0x0082}
+ port_right: {loc:( 44, 13, 268), fire: 0x0042}
+
+ port_fore: {loc:( -94, 20, 70), fire: 0x0044}
+ port_fore: {loc:( -84, 20, 70), fire: 0x0044}
+ port_fore: {loc:( 84, 20, 70), fire: 0x0084}
+ port_fore: {loc:( 94, 20, 70), fire: 0x0084}
+
+ port_aft: {loc:( -94, 20,-124), fire: 0x0088}
+ port_aft: {loc:( -84, 20,-124), fire: 0x0088}
+ port_aft: {loc:( 84, 20,-124), fire: 0x0048}
+ port_aft: {loc:( 94, 20,-124), fire: 0x0048}
+
+ port_top: {loc:( -21, 35,-335), fire: 0x0110}
+ port_top: {loc:( 23, 35,-335), fire: 0x0110}
+
+ port_bottom: {loc:( -21, -23,-335), fire: 0x0220}
+ port_bottom: {loc:( 23, -23,-335), fire: 0x0220}
+
+ port_top: {loc:( -89, 38, 36), fire: 0x0410}
+ port_top: {loc:( -89, 38, -90), fire: 0x0410}
+
+ port_top: {loc:( 89, 38, 36), fire: 0x0810}
+ port_top: {loc:( 89, 38, -90), fire: 0x0810}
+
+ port_top: {loc:( -29, 33, 255), fire: 0x0210}
+ port_top: {loc:( 29, 33, 255), fire: 0x0210}
+
+ port_bottom: {loc:( -89, 6, 36), fire: 0x0820}
+ port_bottom: {loc:( -89, 6, -90), fire: 0x0820}
+
+ port_bottom: {loc:( 89, 6, 36), fire: 0x0420}
+ port_bottom: {loc:( 89, 6, -90), fire: 0x0420}
+
+ port_bottom: {loc:( -29, -32, 255), fire: 0x0120}
+ port_bottom: {loc:( 29, -32, 255), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.05,
+ consumption: 2000,
+ model: "Frigate_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Bolt Weapon",
+ name: "Plasma Cannon",
+ abrv: "Plasma",
+ group: "Main",
+
+ loc: ( 0, 0, 300),
+ muzzle: ( 0, 4, 333),
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7-1",
+ muzzle: (-33, 33, 233),
+ azimuth: -0.15,
+
+ loc: (-33, 0, 220),
+ size: 16,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 2",
+ abrv: "MK7-2",
+ muzzle: ( 33, 33, 233),
+ azimuth: 0.15,
+
+ loc: ( 33, 0, 220),
+ size: 16,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ abrv: "Phalanx",
+ group: "FWD PDB",
+
+ loc: ( 88,36, -22),
+
+ size: 24,
+ hull_factor: 0.3
+}
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ abrv: "Phalanx",
+ group: "FWD PDB",
+
+ loc: (-88,36, -22),
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Cannon",
+ abrv: "Phalanx",
+ group: "AFT PDB",
+
+ loc: ( 0,-26,-190),
+ azimuth: 3.1415927,
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+}
+
+map: {
+ sprite: "BerentsMap0.pcx",
+ sprite: "BerentsMap1.pcx",
+ sprite: "BerentsMap2.pcx",
+ sprite: "BerentsMap3.pcx",
+ sprite: "BerentsMap4.pcx",
+ sprite: "BerentsMap5.pcx",
+ sprite: "BerentsMap6.pcx",
+ sprite: "BerentsMap7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Alliance_Ships/Cruiser.def b/data/shatter/Ships/Alliance_Ships/Cruiser.def
new file mode 100644
index 0000000..2d93a96
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Cruiser.def
@@ -0,0 +1,437 @@
+SHIP
+
+name: Courageous
+display_name: Courageous
+class: Cruiser
+description: "Modern Force:Space guided missile cruisers such as the CA-521 COURAGEOUS class perform primarily in a Battle Force role. These ships are multi-mission spaceborne combatants capable of supporting carrier battle groups, landing forces, or of operating independently and as flagships of space action groups. The Courageous class features four MARK VII interceptor launchers for close air support against fighters and inbound missiles. Courageous class cruisers are also equipped with Nike high-speed antiship missiles giving them additional long range assault capability."
+
+degrees: true
+beauty: (-9, 3.5, 1.27)
+hud_icon: "CourageousHud.pcx"
+
+detail_0: "Courageous_1opt.mag"
+feature_0: 1000
+detail_1: "Courageous_2opt.mag"
+feature_1: 20
+
+
+mass: 45.3e3
+agility: 1.3
+vlimit: 300
+roll_rate: 7
+integrity: 50e3
+scale: 2.2
+acs: 1.2
+
+trans_x: 500e3
+trans_y: 300e3
+trans_z: 500e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+
+chase: (0, -1300, 300)
+bridge: (0, 520, 120)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 20e3,
+
+ loc: (0, 0, -92),
+ size: 64,
+ hull_factor: 0.9
+}
+
+drive: {
+ type: Plasma
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 15e3,
+ scale: 5.5,
+ port: ( 21, -10, -760),
+ port: ( 21, -30, -760),
+ port: (-21, -10, -760),
+ port: (-21, -30, -760),
+
+ loc: (0, 0, -320),
+ size: 64,
+ hull_factor: 0.5
+}
+
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 2
+
+ port_left: {loc:( -90, -7,-545), fire: 0x0041}
+ port_left: {loc:( -90, -7,-499), fire: 0x0041}
+ port_left: {loc:( -77, -12, 436), fire: 0x0081}
+ port_left: {loc:( -77, -12, 457), fire: 0x0081}
+
+ port_right: {loc:( 90, -7,-545), fire: 0x0082}
+ port_right: {loc:( 90, -7,-499), fire: 0x0082}
+ port_right: {loc:( 77, -12, 436), fire: 0x0042}
+ port_right: {loc:( 77, -12, 457), fire: 0x0042}
+
+ port_fore: {loc:(-185, 45, -37), fire: 0x0044}
+ port_fore: {loc:(-167, 45, -37), fire: 0x0044}
+ port_fore: {loc:( 167, 45, -37), fire: 0x0084}
+ port_fore: {loc:( 185, 45, -37), fire: 0x0084}
+
+ port_aft: {loc:(-185, 45,-432), fire: 0x0088}
+ port_aft: {loc:(-167, 45,-432), fire: 0x0088}
+ port_aft: {loc:( 167, 45,-432), fire: 0x0048}
+ port_aft: {loc:( 185, 45,-432), fire: 0x0048}
+
+ port_top: {loc:(-175, 79, -84), fire: 0x0410}
+ port_top: {loc:(-175, 79,-385), fire: 0x0410}
+ port_top: {loc:( 175, 79, -84), fire: 0x0810}
+ port_top: {loc:( 175, 79,-385), fire: 0x0810}
+
+ port_bottom: {loc:(-175, 21, -84), fire: 0x0820}
+ port_bottom: {loc:(-175, 21,-385), fire: 0x0820}
+ port_bottom: {loc:( 175, 21, -84), fire: 0x0420}
+ port_bottom: {loc:( 175, 21,-385), fire: 0x0420}
+
+ port_top: {loc:( -18, 58, 660), fire: 0x0210}
+ port_top: {loc:( 18, 58, 660), fire: 0x0210}
+
+ port_bottom: {loc:( -18, -51, 660), fire: 0x0120}
+ port_bottom: {loc:( 18, -51, 660), fire: 0x0120}
+
+ port_top: {loc:( -17, 26,-617), fire: 0x0110}
+ port_top: {loc:( 17, 26,-617), fire: 0x0110}
+
+ port_bottom: {loc:( -17,-111,-617), fire: 0x0220}
+ port_bottom: {loc:( 17,-111,-617), fire: 0x0220}
+}
+
+
+quantum: {
+ design: "Quantum Drive"
+ abrv: "Q-Drive"
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield"
+ abrv: "Shield"
+ pcs: 100,
+ model: "CourageousShield.mag",
+ bolt_hit_sound: "shield_hit4.wav"
+ beam_hit_sound: "shield_hit5.wav"
+
+ loc: (0, 0, 40),
+ size: 42,
+ hull_factor: 0.7
+}
+
+power: {
+ type: Auxilliary,
+ design: "Auxilliary Reactor"
+ abrv: "Aux Reac"
+ max_output: 3e3,
+
+ loc: (0, -32, -64),
+ size: 64,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-51, -12, 641),
+
+ loc: (-40, -12, 600),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 51, -12, 641),
+
+ loc: ( 40, -12, 600),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-37, -45, 623),
+
+ loc: (-30, -45, 580),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 37, -45, 623),
+
+ loc: ( 30, -45, 580),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Starboard Missile",
+ abrv: "Nike-1",
+ muzzle: ( 70, 55, 355),
+ muzzle: ( 80, 45, 355),
+ azimuth: 15,
+
+ loc: ( 100, 22, 250),
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Port Missile",
+ abrv: "Nike-2",
+ muzzle: (-70, 55, 355),
+ muzzle: (-80, 45, 355),
+ azimuth: -15,
+
+ loc: (-100, 22, 250),
+
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor",
+ abrv: "MK7-1",
+ muzzle: ( 35, 75, 355),
+ muzzle: ( 50, 70, 355),
+ muzzle: (-35, 75, 355),
+ muzzle: (-50, 70, 355),
+
+ loc: ( 0, 30, 250),
+ size: 16,
+ hull_factor: 0.3
+}
+
+
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-1",
+ abrv: "PDB 1"
+ group: "PDB"
+ loc: ( 0, 87, 400),
+
+ size: 32,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-2",
+ abrv: "PDB 2"
+ group: "PDB"
+ loc: ( 0, 130, -15),
+
+ azimuth: 180,
+ size: 32,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx 1",
+ abrv: "PDB 3",
+ group: "PDB"
+ loc: (-176, 78, -250),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Phalanx 1",
+ abrv: "PDB 4",
+ group: "PDB"
+ loc: ( 176, 78, -250),
+ azimuth: 90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx 2",
+ abrv: "PDB 5",
+ group: "PDB"
+ loc: (-176, 18, -220),
+ azimuth: -90
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Phalanx 2",
+ abrv: "PDB 6",
+ group: "PDB"
+ loc: ( 176, 18, -220),
+ azimuth: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, 32, 380),
+ size: 24,
+ hull_factor: 0.2
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, -32, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -32, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 32, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.66,
+ period: 2.5,
+
+ light: { loc: ( 208,-10,-320), pattern: 0x11000000, type: 3 },
+ light: { loc: (-208,-10,-320), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0,-93, 175), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0,100, 175), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0,100,-115), pattern: 0x00000120, type: 1 },
+}
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.1, loc: ( 20, 80, -190) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "Debris1A.mag", loc: (0,0,-550), mass: 17e3, count: 1, life: 350 }
+ debris: { model: "Debris1B.mag", loc: (320,0,10), mass: 4e3, count: 1, life: 380 }
+ debris: { model: "CourageousDebris2.mag", loc: (0,0,400), mass: 18e3, count: 1, life: 380
+ fire: (60,60,20), fire: (-60,-30,-10) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 44, count: 25, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 33, count: 20, life: 25 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 22, count: 25, life: 30 }
+}
+
+
+map: {
+ sprite: "CourageousMap0.pcx",
+ sprite: "CourageousMap1.pcx",
+ sprite: "CourageousMap2.pcx",
+ sprite: "CourageousMap3.pcx",
+ sprite: "CourageousMap4.pcx",
+ sprite: "CourageousMap5.pcx",
+ sprite: "CourageousMap6.pcx",
+ sprite: "CourageousMap7.pcx"
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Alliance_Ships/Devastator.def b/data/shatter/Ships/Alliance_Ships/Devastator.def
new file mode 100644
index 0000000..8f5a9f5
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Devastator.def
@@ -0,0 +1,450 @@
+SHIP
+
+name: Devastator
+display_name: Devastator
+class: Cruiser
+description: "The CA-400 DEVASTATOR class of heavy cruisers forms the backbone of the Alliance heavy gun capability. Big, slow, and very tough, each of these enormous vessels features a pair of heavy gamma ray laser batteries and four Athena missile launchers. Together these weapons can bring down the largest starships and orbital stations. For defense against strike ships and inbound missile weapons, the Devastator has full coverage from a set of Vanguard point defense batteries."
+
+degrees: true
+beauty: (-9, 3.5, 1.27)
+hud_icon: "DevastatorHud.pcx"
+
+detail_0: "Devastator_0.mag"
+feature_0: 1000
+detail_1: "Devastator_1.mag"
+feature_1: 32
+detail_2: "Devastator_2.mag"
+feature_2: 20
+
+mass: 98.1e3
+agility: 2
+vlimit: 220
+roll_rate: 7
+integrity: 55e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 500e3
+trans_y: 300e3
+trans_z: 500e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1300, 300)
+bridge: (0, 520, 50)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 35e3,
+
+ loc: (0, 0, -92),
+ size: 64,
+ hull_factor: 0.9
+}
+
+drive: {
+ type: Plasma
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 17.5e3,
+ scale: 10,
+ port: ( 0, -18, -795),
+ port: ( 0, -40, -795),
+ port: ( -36, -18, -788),
+ port: ( -36, -40, -788),
+ port: ( 36, -18, -788),
+ port: ( 36, -40, -788),
+
+ loc: (0, 0, -320),
+ size: 64,
+ hull_factor: 0.5
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 2.5
+
+ port_left: {loc:(-106, -13,-574), fire: 0x0041}
+ port_left: {loc:(-106, -13,-555), fire: 0x0041}
+ port_left: {loc:( -90, -22, 444), fire: 0x0081}
+ port_left: {loc:( -90, -22, 466), fire: 0x0081}
+
+ port_right: {loc:( 104, -13,-574), fire: 0x0082}
+ port_right: {loc:( 104, -13,-555), fire: 0x0082}
+ port_right: {loc:( 89, -22, 444), fire: 0x0042}
+ port_right: {loc:( 89, -22, 466), fire: 0x0042}
+
+ port_fore: {loc:(-198, 36, -70), fire: 0x0044}
+ port_fore: {loc:(-180, 36, -70), fire: 0x0044}
+ port_fore: {loc:( 180, 36, -70), fire: 0x0084}
+ port_fore: {loc:( 198, 36, -70), fire: 0x0084}
+ port_fore: {loc:(-211, -24, -70), fire: 0x0044}
+ port_fore: {loc:(-193, -24, -70), fire: 0x0044}
+ port_fore: {loc:( 193, -24, -70), fire: 0x0084}
+ port_fore: {loc:( 211, -24, -70), fire: 0x0084}
+
+ port_aft: {loc:(-198, 36,-466), fire: 0x0088}
+ port_aft: {loc:(-180, 36,-466), fire: 0x0088}
+ port_aft: {loc:( 180, 36,-466), fire: 0x0048}
+ port_aft: {loc:( 198, 36,-466), fire: 0x0048}
+ port_aft: {loc:(-211, -24,-466), fire: 0x0088}
+ port_aft: {loc:(-193, -24,-466), fire: 0x0088}
+ port_aft: {loc:( 193, -24,-466), fire: 0x0048}
+ port_aft: {loc:( 211, -24,-466), fire: 0x0048}
+
+ port_top: {loc:(-189, 70,-118), fire: 0x0410}
+ port_top: {loc:(-189, 70,-418), fire: 0x0410}
+ port_top: {loc:( 189, 70,-118), fire: 0x0810}
+ port_top: {loc:( 189, 70,-418), fire: 0x0810}
+
+ port_bottom: {loc:(-202, -49,-118), fire: 0x0820}
+ port_bottom: {loc:(-202, -49,-418), fire: 0x0820}
+ port_bottom: {loc:( 202, -49,-118), fire: 0x0420}
+ port_bottom: {loc:( 202, -49,-418), fire: 0x0420}
+
+ port_top: {loc:( -32, 49, 781), fire: 0x0210}
+ port_top: {loc:( 31, 49, 781), fire: 0x0210}
+
+ port_bottom: {loc:( -32, -60, 781), fire: 0x0120}
+ port_bottom: {loc:( 31, -60, 781), fire: 0x0120}
+
+ port_top: {loc:( -32, 17,-650), fire: 0x0110}
+ port_top: {loc:( 32, 17,-650), fire: 0x0110}
+
+ port_bottom: {loc:( -32,-120,-650), fire: 0x0220}
+ port_bottom: {loc:( 32,-120,-650), fire: 0x0220}
+}
+
+quantum: {
+ design: "Quantum Drive"
+ abrv: "Q-Drive"
+ loc: (0, 0, -200),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield"
+ abrv: Shield
+ pcs: 100,
+ model: "DevastatorShield.mag",
+ bolt_hit_sound: "shield_hit4.wav"
+ beam_hit_sound: "shield_hit5.wav"
+
+ loc: (0, 0, -60),
+ size: 48
+ hull_factor: 0.7
+}
+
+power: {
+ type: Auxilliary
+ design: "Auxilliary Reactor"
+ abrv: "Aux Reac"
+ max_output: 3e3,
+
+ loc: (0, -32, -64),
+ size: 64,
+ hull_factor: 0.4
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-65, -22, 760),
+
+ loc: (-65, -22, 730),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 65, -22, 760),
+
+ loc: ( 65, -22, 730),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 33",
+ abrv: "Graser-3",
+ muzzle: (-52, -54, 740),
+
+ loc: (-52, -54, 710),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 4",
+ abrv: "Graser-4",
+ muzzle: ( 52, -54, 740),
+
+ loc: ( 52, -54, 710),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Athena1",
+ design: "Missile Weapon",
+ name: "Starboard Missile",
+ abrv: "Athena-1",
+ muzzle: ( 75, 13, 600),
+ muzzle: ( 65, 13, 600),
+ azimuth: 15,
+
+ loc: ( 60, 0, 400),
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Athena2",
+ design: "Missile Weapon",
+ name: "Port Missile",
+ abrv: "Athena-2",
+ muzzle: (-75, 13, 600),
+ muzzle: (-65, 13, 600),
+ azimuth: -15,
+
+ loc: (-60, 0, 400),
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-1",
+ abrv: "PDB 1",
+ loc: ( 0, 80, 575),
+
+ azimuth: 0,
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-2",
+ abrv: "PDB 2",
+ loc: ( 0, 110,-550),
+
+ azimuth: 180,
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-3",
+ abrv: "PDB 3",
+ loc: (190, 72, -275),
+
+ azimuth: 90,
+ aim_az_max: 95,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Gun-4",
+ abrv: "PDB 4",
+ loc: (-190, 72, -275),
+
+ azimuth: 270,
+ aim_az_max: 75,
+ aim_az_min: -95,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.5
+}
+
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, 32, 380),
+ size: 24,
+ hull_factor: 0.1
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: (0, -64, 400),
+
+ loc: (0, -40, 400),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, -32, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -32, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 32, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 0.66,
+ period: 2.5,
+
+ light: { loc: ( 235, 0,-190), pattern: 0x11000000, type: 3 },
+ light: { loc: (-235, 0,-190), pattern: 0x00110000, type: 2 },
+ light: { loc: ( 0, 150,-285), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0, 108, 192), pattern: 0x00000120, type: 1 },
+ light: { loc: ( 0, -60, 192), pattern: 0x00000120, type: 1 },
+}
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-550),
+ debris_mass: 17e3,
+ debris_count: 1,
+ debris_life: 350,
+
+ debris: "Debris1B.mag",
+ debris_loc: (320,0,10),
+ debris_mass: 13e3,
+ debris_count: 1,
+ debris_life: 380,
+
+ debris: "CourageousDebris2.mag",
+ debris_loc: (0,0,500),
+ debris_mass: 18e3,
+ debris_count: 1,
+ debris_life: 380,
+
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 55,
+ debris_count: 35,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 44,
+ debris_count: 30,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 33,
+ debris_count: 22,
+ debris_life: 35,
+}
+
+
+map: {
+ sprite: "DevastatorMap0.pcx",
+ sprite: "DevastatorMap1.pcx",
+ sprite: "DevastatorMap2.pcx",
+ sprite: "DevastatorMap3.pcx",
+ sprite: "DevastatorMap4.pcx",
+ sprite: "DevastatorMap5.pcx",
+ sprite: "DevastatorMap6.pcx",
+ sprite: "DevastatorMap7.pcx"
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Alliance_Ships/Orion.def b/data/shatter/Ships/Alliance_Ships/Orion.def
new file mode 100644
index 0000000..bccd27a
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Orion.def
@@ -0,0 +1,515 @@
+SHIP
+
+name: Orion
+display_name: Orion
+class: Carrier
+description: "The CV-69 ORION class carriers are essentially spaceborne starports, capable of launching as many as four fighter craft every minute. The Orion's two launch rails and two arresting gear engines enable her to launch and recover ships both rapidly and simultaneously. The Orion class ship's embarked tactical fighter wing includes four different types of fighter and attack craft in addition to armored landing craft for a total complement of almost 80 ships."
+
+degrees: true
+beauty: (-9, 5, 1.33)
+hud_icon: "OrionHud.pcx"
+
+detail_0: "Orion0z.mag"
+feature_0: 1000
+detail_1: "Orion1z.mag"
+feature_1: 40
+detail_2: "Orion2z.mag"
+feature_2: 25
+
+mass: 957e3
+agility: 1
+vlimit: 220
+roll_rate: 7
+integrity: 75e3
+scale: 4
+acs: 1.5
+
+trans_x: 3e6
+trans_y: 3e6
+trans_z: 3e6
+
+arcade_drag: 4.5e-2
+drag: 1e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 600, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, -48, -180),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+ }
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 40e3,
+ scale: 10,
+
+ port: ( 75, 31, -1160)
+ port: ( 75, -10, -1160)
+ port: ( 0, 31, -1160)
+ port: ( 0, -10, -1160)
+ port: (-75, 31, -1160)
+ port: (-75, -10, -1160)
+
+ loc: (0, 48, -1240),
+ size: 120
+ hull_factor: 0.3,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 4
+
+ port_left: {loc:(-176, 0,-819), fire: 0x0041}
+ port_left: {loc:(-405, -5,-362), fire: 0x0041}
+ port_left: {loc:(-239, -5, 717), fire: 0x0081}
+
+ port_right: {loc:( 175, 0,-819), fire: 0x0082}
+ port_right: {loc:( 405, -5,-362), fire: 0x0082}
+ port_right: {loc:( 238, -5, 717), fire: 0x0042}
+
+ port_fore: {loc:(-368, 35,-308), fire: 0x0044}
+ port_fore: {loc:(-368, -43,-308), fire: 0x0044}
+ port_fore: {loc:( 367, 35,-308), fire: 0x0084}
+ port_fore: {loc:( 367, -43,-308), fire: 0x0084}
+
+ port_aft: {loc:(-76, -66,-1047), fire: 0x0008}
+ port_aft: {loc:( 0, -66,-1047), fire: 0x0008}
+ port_aft: {loc:( 76, -66,-1047), fire: 0x0008}
+
+ port_top: {loc:(-368, 73,-358), fire: 0x0410}
+ port_top: {loc:(-368, 73,-617), fire: 0x0410}
+ port_top: {loc:( 367, 73,-358), fire: 0x0810}
+ port_top: {loc:( 367, 73,-617), fire: 0x0810}
+
+ port_bottom: {loc:(-368, -79,-358), fire: 0x0820}
+ port_bottom: {loc:(-368, -79,-617), fire: 0x0820}
+ port_bottom: {loc:( 367, -79,-358), fire: 0x0420}
+ port_bottom: {loc:( 367, -79,-617), fire: 0x0420}
+
+ port_top: {loc:(-191, 83, 716), fire: 0x0210}
+ port_top: {loc:( 191, 83, 716), fire: 0x0210}
+
+ port_bottom: {loc:(-191, -93, 716), fire: 0x0120}
+ port_bottom: {loc:( 191, -93, 716), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "OShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+ }
+
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 1",
+ abrv: "GUN 1",
+ loc: (128, 95, 704),
+
+ azimuth: 60,
+ aim_az_max: 90,
+ aim_az_min: -60,
+ aim_az_rest: -60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 2",
+ abrv: "GUN 2",
+ loc: (-128,95, 704),
+
+ azimuth: -60,
+ aim_az_max: -90,
+ aim_az_min: 60,
+ aim_az_rest: 60,
+
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 3",
+ abrv: "GUN 3",
+ loc: (128, 95, 228),
+
+ azimuth: 90,
+ aim_az_max: 75,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 4",
+ abrv: "GUN 4",
+ loc: (-128,95, 228),
+
+ azimuth: -90,
+ aim_az_max: -75,
+ aim_az_min: 75,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 5",
+ abrv: "GUN 5",
+ loc: (64, 103, -830),
+
+ azimuth: 180,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Vanguard",
+ design: "Bolt Weapon",
+ name: "Vanguard 6",
+ abrv: "GUN 6",
+ loc: (-64, 103, -830),
+
+ azimuth: 180,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 1",
+ group: "PDB",
+ loc: ( 0, 70, 960),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 2",
+ group: "PDB",
+ loc: ( 0, -75, 960),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 3",
+ group: "PDB",
+ loc: ( 64,-132, -830),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port Phalanx",
+ abrv: "PDB 4",
+ group: "PDB",
+ loc: (-64,-132, -830),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 10, 0, 920)
+ cam: ( 0, 0, 885)
+ start: ( 60, -20, 850)
+ end: (2e3, 15, 3500),
+
+ spot: { loc: ( 45, -20, 825), filter: 0x7 },
+ spot: { loc: ( 75, -20, 825), filter: 0x7 },
+ spot: { loc: ( 60, -20, 825), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 170,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: ( -10, 0, 920)
+ cam: ( 0, 0, 885)
+ start: ( -60, -20, 850)
+ end: (-2e3, 15, 3500),
+
+ spot: { loc: (-45, -20, 825), filter: 0x7 },
+ spot: { loc: (-75, -20, 825), filter: 0x7 },
+ spot: { loc: (-60, -20, 825), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 170,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 3",
+ abrv: "Deck 3",
+ design: "Flight Deck",
+ loc: ( 305, 0, -550)
+ cam: ( 340, 10, -475)
+ start: ( 305, 0, -1950)
+ end: ( 305, -12, -500)
+
+ approach: ( 280, 0, -2300)
+ approach: (1500, 0, -1000)
+ approach: (1500, 0, 1000)
+ approach: ( 250, 0, 2500)
+
+ spot: ( 305, -12, -500)
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 12,
+
+ size: 120,
+ hull_factor: 0.5,
+ }
+
+flightdeck: {
+ name: "Deck 4",
+ abrv: "Deck 4",
+ design: "Flight Deck",
+ loc: ( -305, 0, -550)
+ cam: ( -340, 10, -475)
+ start: ( -305, 0, -1950)
+ end: ( -305, -12, -500)
+
+ approach: ( -280, 0, -2300)
+ approach: (-1500, 0, -1000)
+ approach: (-1500, 0, 1000)
+ approach: ( -250, 0, 2500)
+
+ spot: ( -305, -12, -500)
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 12,
+
+ size: 120,
+ hull_factor: 0.5,
+ }
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 10e3,
+
+ loc: (0, 0, -150),
+ hull_factor: 0.8
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 1000
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (20, 80, -190),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, -120),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "OrionDebris1.mag",
+ debris_loc: (0,0,650),
+ debris_mass: 40e3,
+ debris_count: 1,
+ debris_life: 550,
+ debris_fire: (-130, 0,-420),
+ debris_fire: ( 135,50, 0),
+
+ debris: "OrionDebris2.mag",
+ debris_loc: (-20,20,-500),
+ debris_mass: 40e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: ( 124, 0, 120)
+ debris_fire: ( 105, 90, 0)
+ debris_fire: (-125,-10,-360)
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,120),
+ debris_mass: 33,
+ debris_count: 25,
+ debris_life: 35,
+
+ debris: "Debris0B.mag",
+ debris_loc: (130,0,0),
+ debris_mass: 34,
+ debris_count: 22,
+ debris_life: 25,
+ }
+
+map: {
+ sprite: "OrionMap0.pcx",
+ sprite: "OrionMap1.pcx",
+ sprite: "OrionMap2.pcx",
+ sprite: "OrionMap3.pcx",
+ sprite: "OrionMap4.pcx",
+ sprite: "OrionMap5.pcx",
+ sprite: "OrionMap6.pcx",
+ sprite: "OrionMap7.pcx"
+}
+
+
+
+
diff --git a/data/shatter/Ships/Alliance_Ships/Spectre.def b/data/shatter/Ships/Alliance_Ships/Spectre.def
new file mode 100644
index 0000000..0a3e220
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Ships/Spectre.def
@@ -0,0 +1,415 @@
+SHIP
+
+name: Spectre
+display_name: Spectre
+class: Destroyer
+description: "The DD-350 SPECTRE class of destroyers represent the largest and most successful of all Force:Space destroyer acquisitions: fast, roomy, capable of absorbing enormous punishment, and yet fighting on. The Spectre class ships are forty percent heavier than their Asher class cousins, and they use the extra mass to great effect. The Spectre class features four nose-mounted XRay Laser batteries, and a pair of wing-mounted fusion torpedo launchers in addition to four Phalanx point defense guns."
+
+degrees: true
+beauty: (-16, 4, 1.3)
+hud_icon: "SpectreHud.pcx"
+
+detail_0: "Spectre_0opt.mag"
+feature_0: 1000
+detail_1: "Spectre_1opt.mag"
+feature_1: 40
+detail_2: "Spectre_3opt.mag"
+feature_2: 20
+
+mass: 22.5e3
+agility: 3
+vlimit: 300
+roll_rate: 7
+integrity: 25e3
+scale: 2.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 3e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ name: "Reactor One",
+ max_output: 8000,
+
+ loc: (0, -48, -180),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Plasma,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 4000,
+ scale: 4,
+ port: (-23, -6, -630)
+ port: (-23, -31, -630)
+ port: ( 23, -6, -630)
+ port: ( 23, -31, -630)
+
+ loc: (0, -20, -480),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -74, 0,-402), fire: 0x0041}
+ port_left: {loc:( -74, 0,-366), fire: 0x0041}
+ port_left: {loc:( -49, 34, 391), fire: 0x0081}
+ port_left: {loc:( -49, 34, 404), fire: 0x0081}
+
+ port_right: {loc:( 74, 0,-402), fire: 0x0082}
+ port_right: {loc:( 74, 0,-366), fire: 0x0082}
+ port_right: {loc:( 49, 34, 391), fire: 0x0042}
+ port_right: {loc:( 49, 34, 404), fire: 0x0042}
+
+ port_fore: {loc:(-220, -15, -20), fire: 0x0044}
+ port_fore: {loc:(-205, -15, -20), fire: 0x0044}
+ port_fore: {loc:( 204, -15, -20), fire: 0x0084}
+ port_fore: {loc:( 219, -15, -20), fire: 0x0084}
+
+ port_aft: {loc:(-220, -15,-338), fire: 0x0088}
+ port_aft: {loc:(-205, -15,-338), fire: 0x0088}
+ port_aft: {loc:( 204, -15,-338), fire: 0x0048}
+ port_aft: {loc:( 219, -15,-338), fire: 0x0048}
+
+ port_top: {loc:( -20, 32,-492), fire: 0x0110}
+ port_top: {loc:( 20, 32,-492), fire: 0x0110}
+
+ port_bottom: {loc:( -20,-104,-492), fire: 0x0220}
+ port_bottom: {loc:( 20,-104,-492), fire: 0x0220}
+
+ port_top: {loc:(-212, 15,-125), fire: 0x0410}
+ port_top: {loc:(-212, 15,-233), fire: 0x0410}
+ port_top: {loc:( 212, 15,-125), fire: 0x0810}
+ port_top: {loc:( 212, 15,-233), fire: 0x0810}
+
+ port_bottom: {loc:(-212, -73,-125), fire: 0x0820}
+ port_bottom: {loc:(-212, -73,-233), fire: 0x0820}
+ port_bottom: {loc:( 212, -73,-125), fire: 0x0420}
+ port_bottom: {loc:( 212, -73,-233), fire: 0x0420}
+
+ port_top: {loc:( -32, 63, 383), fire: 0x0210}
+ port_top: {loc:( 31, 63, 383), fire: 0x0210}
+
+ port_bottom: {loc:( -32, -72, 383), fire: 0x0120}
+ port_bottom: {loc:( 31, -72, 383), fire: 0x0120}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ model: "Spectre_Shield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ name: "Reactor Two",
+ max_output: 1500
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-36, -9, 467),
+
+ loc: (-36, -9, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 36, -9, 467),
+
+ loc: ( 36, -9, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-14, -23, 467),
+
+ loc: (-14, -23, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 14, -23, 467),
+
+ loc: ( 14, -23, 400),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Starboard Torpedo",
+ abrv: "Torp-1",
+ muzzle: (192, -32, -120),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Port Torpedo",
+ abrv: "Torp-2",
+ muzzle: (-192, -32, -120),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port/Fwd Phalanx",
+ abrv: "Fwd PDB 1",
+ group: "FWD PDB",
+ loc: (-211, -50, -106),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd/Fwd Phalanx",
+ abrv: "Fwd PDB 2",
+ group: "FWD PDB",
+ loc: ( 211, -50, -106),
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Port/Aft Phalanx",
+ abrv: "Aft PDB 1",
+ group: "AFT PDB",
+ loc: (-211, -50, -255),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Phalanx Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd/Aft Phalanx",
+ abrv: "Aft PDB 2",
+ group: "AFT PDB",
+ loc: ( 211, -50, -255),
+ azimuth: 180
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+navlight: {
+ scale: 0.35,
+ period: 2.4,
+
+ light: { loc: ( 245,-12,-180), pattern: 0x12000000, type: 3 },
+ light: { loc: (-245,-12,-180), pattern: 0x00120000, type: 2 },
+ light: { loc: ( 0, 65, 320), pattern: 0x03000300, type: 1 },
+ light: { loc: ( 0, 55,-320), pattern: 0x00030003, type: 1 }
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+
+ debris: "Debris1A.mag",
+ debris_loc: (0,0,-450),
+ debris_mass: 17e3,
+ debris_count: 1,
+ debris_life: 350,
+
+ debris: "Debris1B.mag",
+ debris_loc: (220,0,10),
+ debris_mass: 13e3,
+ debris_count: 1,
+ debris_life: 380,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 54,
+ debris_count: 25,
+ debris_life: 45,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 43,
+ debris_count: 20,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 32,
+ debris_count: 10,
+ debris_life: 35,
+}
+
+
+map: {
+ sprite: "SpectreMap0.pcx",
+ sprite: "SpectreMap1.pcx",
+ sprite: "SpectreMap2.pcx",
+ sprite: "SpectreMap3.pcx",
+ sprite: "SpectreMap4.pcx",
+ sprite: "SpectreMap5.pcx",
+ sprite: "SpectreMap6.pcx",
+ sprite: "SpectreMap7.pcx"
+}
+
+
+
+
+
diff --git a/data/shatter/Ships/Alliance_Stations/Farcaster.def b/data/shatter/Ships/Alliance_Stations/Farcaster.def
new file mode 100644
index 0000000..fbd4913
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/Farcaster.def
@@ -0,0 +1,111 @@
+SHIP
+
+name: Farcaster
+class: Farcaster
+hud_icon: "FarcasterHud.pcx"
+
+model: "Farcaster1opt.mag"
+
+mass: 5e6
+integrity: 3e6
+scale: 15.0
+acs: 320e3
+
+drag: 100
+roll_drag: 100
+pitch_drag: 100
+yaw_drag: 100
+
+chase: (0, -750, 80)
+bridge: (0, 0, 24)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, -32),
+ size: 64,
+ hull_factor: 0.5
+ }
+
+farcaster: {
+ approach: (0, 0, -2000),
+ start: (0, 0, 0),
+ end: (0, 0, 1000),
+
+ loc: (0, 0, 0),
+ size: 128,
+ hull_factor: 0.5
+ }
+
+navlight: {
+ scale: 3.5,
+ period: 1.5,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 3 },
+
+ light: { loc: ( 138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42, 257), pattern: 0xf0000000, type: 3 },
+}
+
+navlight: {
+ scale: 3.5,
+ period: 1,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138,-42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: (-138, 42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 2 },
+
+ light: { loc: (-138,-42, 257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138, 42, 257), pattern: 0x00f00000, type: 2 },
+}
+
+map: {
+ sprite: "FarcasterMap.pcx"
+}
+
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-150, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (160, 40, 100),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (230, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (220, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (-160, 80, -90),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (-160, 80, -90),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+ }
+
diff --git a/data/shatter/Ships/Alliance_Stations/Fortress.def b/data/shatter/Ships/Alliance_Stations/Fortress.def
new file mode 100644
index 0000000..e3dd2a6
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/Fortress.def
@@ -0,0 +1,272 @@
+SHIP
+
+name: Station3
+display_name: "Fortress"
+class: STATION
+hud_icon: "Fort1hud.pcx"
+
+model: "Fort1opt.mag"
+
+mass: 5e6
+integrity: 5e6
+scale: 11
+acs: 5e6
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 35e3,
+
+ loc: (0, -120, 0),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 1A"
+
+ azimuth: 0,
+ loc: ( 0, 388, 320),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 1B"
+
+ azimuth: 0,
+ loc: ( 0, 268, 320),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 2A"
+
+ azimuth: 120,
+ loc: (280, 388, -160),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 2B"
+
+ azimuth: 120,
+ loc: (280, 268, -160),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 3A"
+
+ azimuth: -120,
+ loc: (-280, 388, -160),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon"
+ design: "Bolt Weapon"
+ name: "Turret 3B"
+
+ azimuth: -120,
+ loc: (-280, 268, -160),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 6000,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, -60, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+flightdeck: {
+ name: "Launch Bay 1",
+
+ azimuth: 90,
+ loc: ( 40, 20, 870),
+ cam: ( 30, 25, 840),
+ start: ( 30, 16, 870),
+ end: (2e3, 20, 0),
+
+ spot: ( 0, 16, 850),
+ spot: ( 0, 16, 890),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 1",
+
+ azimuth: 90,
+ loc: (-40, 20, 870),
+ cam: (-30, 25, 840),
+ start: (-1e3, 25, 870),
+ end: (-40, 16, 870),
+ spot: (-40, 16, 870),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+
+flightdeck: {
+ name: "Launch Bay 2",
+
+ azimuth: 210,
+ loc: (735, 20, -477),
+ cam: (775, 25, -500),
+ start: (735, 16, -477),
+ end: ( 0, 20, -2e3),
+
+ spot: (720, 16, -440),
+ spot: (760, 16, -462),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 2",
+
+ azimuth: 210,
+ loc: (775, 20, -395),
+ cam: (720, 25, -380),
+ start: (1200, 25, 300),
+ end: (775, 16, -395),
+ spot: (775, 16, -395),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 3",
+
+ azimuth: 330,
+ loc: (-775, 20, -395),
+ cam: (-720, 25, -380),
+ start: (-775, 16, -395),
+ end: (-2e3, 20, 0),
+
+ spot: (-735, 16, -405),
+ spot: (-780, 16, -430),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 3",
+
+ azimuth: 330,
+ loc: (-735, 20, -477),
+ cam: (-775, 25, -500),
+ start: (-1200, 25, -300),
+ end: (-735, 16, -477),
+ spot: (-775, 16, -477),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+map: {
+ sprite: "Fort1map.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+}
+
+
diff --git a/data/shatter/Ships/Alliance_Stations/FreightXfer.def b/data/shatter/Ships/Alliance_Stations/FreightXfer.def
new file mode 100644
index 0000000..f28e628
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/FreightXfer.def
@@ -0,0 +1,167 @@
+SHIP
+
+name: Station1
+display_name: "Freight Xfer"
+class: STATION
+hud_icon: "s1hud.pcx"
+
+model: "S1opt.mag"
+
+mass: 5e6
+integrity: 5e6
+scale: 5
+acs: 5e6
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+flightdeck: {
+ name: "Launch Bay 1",
+
+ loc: ( 390, 20, 930),
+ cam: ( 420, 24, 915),
+ start: ( 390, 14, 930),
+ end: ( 3e3, 0, 930),
+
+ spot: ( 370, 24, 920),
+ azimuth: 90,
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+ }
+
+
+flightdeck: {
+ name: "Docking Bay 1",
+ loc: ( -390, 20, 930),
+ cam: ( -420, 24, 915),
+ start: ( -2e3, 18, 930),
+ end: ( -390, 18, 930),
+
+ approach: ( -3e3, 20, 1e3),
+ approach: ( -3e3, 20, -3e3),
+ approach: ( 3e3, 20, -3e3),
+ approach: ( 3e3, 20, 3e3),
+
+ spot: ( -390, 18, 930),
+ azimuth: 90,
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 2",
+
+ loc: ( 390, 20, -930),
+ cam: ( 420, 24, -915),
+ start: ( 390, 14, -930),
+ end: ( 3e3, 0, -930),
+
+ spot: ( 370, 24, -920),
+ azimuth: 90,
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+ }
+
+
+flightdeck: {
+ name: "Docking Bay 2",
+ loc: ( -390, 20, -930),
+ cam: ( -420, 24, -915),
+ start: ( -2e3, 18, -930),
+ end: ( -390, 18, -930),
+
+ approach: ( -3e3, 20, -1e3),
+ approach: ( 3e3, 20, -3e3),
+ approach: ( 3e3, 20, 3e3),
+ approach: ( -3e3, 20, 3e3),
+
+ spot: ( -390, 18, -930),
+ azimuth: 90,
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+navlight: {
+ scale: 2
+ period: 2
+
+ light: { loc: (-390, 0, -1270), pattern: 0xf0700000, type: 2 }
+ light: { loc: (-390, 0, 1270), pattern: 0xf0700000, type: 2 }
+ light: { loc: ( 390, 0, -1270), pattern: 0x0000f300, type: 3 }
+ light: { loc: ( 390, 0, 1270), pattern: 0x0000f300, type: 3 }
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+map: {
+ sprite: "s1map.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+}
+
+
diff --git a/data/shatter/Ships/Alliance_Stations/Harmony.def b/data/shatter/Ships/Alliance_Stations/Harmony.def
new file mode 100644
index 0000000..8be65a2
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/Harmony.def
@@ -0,0 +1,158 @@
+SHIP
+
+name: Station2
+display_name: Station
+class: STATION
+hud_icon: "s5hud.pcx"
+
+model: "S5opt.mag"
+
+mass: 9e6
+integrity: 5e6
+scale: 10
+acs: 5e6
+
+chase: (0, -800, 50)
+bridge: (0, 0, 0)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+flightdeck: {
+ name: "Launch Bay 1",
+
+ loc: ( 0, 20, 700),
+ cam: ( 20, 24, 715),
+ start: ( 0, 14, 700),
+ end: ( 3e3, 0, 700),
+
+ spot: ( -20, 24, 680),
+ azimuth: 90,
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 2",
+
+ loc: ( 0, 20, -700),
+ cam: ( -20, 24, -715),
+ start: ( 0, 14, -700),
+ end: (-3e3, 0, -700),
+
+ spot: ( 20, 24, -680),
+ azimuth: -90,
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 1",
+ loc: ( 700, 20, 0),
+ cam: ( 720, 24, 5),
+ start: ( 800, 14,-400),
+ end: ( 700, 0, 0),
+
+ spot: ( 700, 14, 0),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 1",
+ loc: (-700, 20, 0),
+ cam: (-720, 24, 5),
+ start: (-800, 14, 400),
+ end: (-700, 0, 0),
+
+ spot: (-700, 14, 0)
+ azimuth: 180
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+navlight: {
+ scale: 2.5,
+ period: 2,
+
+ light: { loc: (-90, 64, -160), pattern: 0xf0100000, type: 1 },
+ light: { loc: (-90, 64, 160), pattern: 0xf0100000, type: 1 },
+ light: { loc: ( 90, 64, -160), pattern: 0xf0100000, type: 1 },
+ light: { loc: ( 90, 64, 160), pattern: 0xf0100000, type: 1 },
+ light: { loc: (-90, -64, -160), pattern: 0xf0100000, type: 1 },
+ light: { loc: (-90, -64, 160), pattern: 0xf0100000, type: 1 },
+ light: { loc: ( 90, -64, -160), pattern: 0xf0100000, type: 1 },
+ light: { loc: ( 90, -64, 160), pattern: 0xf0100000, type: 1 },
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "s5map.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+}
+
+
diff --git a/data/shatter/Ships/Alliance_Stations/Observatory.def b/data/shatter/Ships/Alliance_Stations/Observatory.def
new file mode 100644
index 0000000..f0d594a
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/Observatory.def
@@ -0,0 +1,98 @@
+SHIP
+
+name: Observatory
+display_name: Observatory
+class: STATION
+hud_icon: "Obs_hud.pcx"
+
+model: "S0opt.mag"
+
+mass: 5e6
+integrity: 2e6
+scale: 5
+acs: 3e6
+degrees: true
+
+chase: (0, -800, 50)
+bridge: (0, 0, 0)
+
+degrees: true
+
+flightdeck: {
+ name: "Launch Bay",
+
+ loc: ( 380, 0, 360),
+ cam: ( 390, 8, 332),
+ start: ( 380, -8, 360),
+ end: ( 2e3, -8, 360),
+
+ spot: ( 380, -8, 360),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay",
+ loc: (-380, 0, 360),
+ cam: (-380, 8, 332),
+ start: (-2e3, -8, 360),
+ end: (-380, -8, 360),
+
+ spot: (-380, -8, 360),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+navlight: {
+ scale: 2,
+ period: 2.5,
+
+ light: { loc: ( 13, 300, 342), pattern: 0xc0100000, type: 1 }
+ light: { loc: ( -8, 0,-1120), pattern: 0xc0100000, type: 1 }
+ light: { loc: ( 0, 64, 770), pattern: 0x0000c010, type: 3 }
+ light: { loc: ( 400, 64, 360), pattern: 0x0000c010, type: 3 }
+ light: { loc: (-400, 64, 360), pattern: 0x0000c010, type: 3 }
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+map: {
+ sprite: "Obs_map.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+}
+
diff --git a/data/shatter/Ships/Alliance_Stations/S6.def b/data/shatter/Ships/Alliance_Stations/S6.def
new file mode 100644
index 0000000..5de96d9
--- /dev/null
+++ b/data/shatter/Ships/Alliance_Stations/S6.def
@@ -0,0 +1,199 @@
+SHIP
+
+name: Station6
+display_name: "Freight Xfer"
+class: STATION
+hud_icon: "s6hud.pcx"
+
+model: "S2opt.mag"
+
+mass: 5e6
+integrity: 5e5
+scale: 9
+acs: 5e6
+splash_radius: 5e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 15e3,
+
+ loc: (0, -120, 0),
+ size: 55,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+weapon: {
+ type: "Viking Cannon",
+ design: "Bolt Weapon",
+ name: "Turret 1",
+
+ azimuth: 0,
+ loc: (0, 118, 920),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon",
+ design: "Bolt Weapon",
+ name: "Turret 2",
+
+ azimuth: 0,
+ loc: (0, -118, 920),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon",
+ design: "Bolt Weapon",
+ name: "Turret 3",
+
+ azimuth: 180,
+ loc: (0, 118, -920),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Viking Cannon",
+ design: "Bolt Weapon",
+ name: "Turret 4",
+
+ azimuth: 180,
+ loc: (0, -118, -920),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+flightdeck: {
+ name: "Launch Bay 1"
+
+ loc: ( 15, 20, 920)
+ cam: ( 20, 25, 890)
+ start: ( 15, 16, 920)
+ end: ( 2e3, 20, 920)
+
+ spot: ( 10, 16, 900)
+ spot: ( 10, 16, 940)
+
+ light: 250
+
+ azimuth: 90
+ launch: true
+ cycle_time: 20
+
+ size: 32
+ hull_factor: 0.5
+}
+
+
+flightdeck: {
+ name: "Docking Bay 1",
+
+ loc: ( -15, 20, 920)
+ cam: ( -20, 25, 890)
+ start: (-2e3, 20, 920)
+ end: ( -15, 16, 920)
+ spot: ( -15, 16, 920)
+
+ azimuth: 90
+
+ light: 250,
+
+ azimuth: 90
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 2"
+
+ loc: ( -15, 20, -920)
+ cam: ( -20, 25, -890)
+ start: ( -15, 16, -920)
+ end: (-2e3, 20, -920)
+
+ spot: ( -10, 16, -900)
+ spot: ( -10, 16, -940)
+
+ light: 250
+
+ azimuth: 270
+ launch: true
+ cycle_time: 20
+
+ size: 32
+ hull_factor: 0.5
+}
+
+
+flightdeck: {
+ name: "Docking Bay 2",
+
+ loc: ( 15, 20, -920)
+ cam: ( 20, 25, -890)
+ start: ( 2e3, 20, -920)
+ end: ( 15, 16, -920)
+ spot: ( 15, 16, -920)
+
+ azimuth: 270
+
+ light: 250,
+
+ azimuth: 90
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -380, 0),
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+
+map: {
+ sprite: "s6map.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+}
+
+
diff --git a/data/shatter/Ships/Archaelith/Archaelith.def b/data/shatter/Ships/Archaelith/Archaelith.def
new file mode 100644
index 0000000..d3bb94a
--- /dev/null
+++ b/data/shatter/Ships/Archaelith/Archaelith.def
@@ -0,0 +1,79 @@
+SHIP
+
+name: Archaelith
+display_name: Archaelith
+class: Drone
+
+model: "Archaelith.mag"
+
+mass: 14.5
+integrity: 4e12
+vlimit: 290
+agility: 130
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.24
+acs: 1.1
+detet: 250e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.1
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.3e-2
+CD: 0.7e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 200)
+bridge: (0, 131, 23)
+
+power: {
+ type: Fusion,
+ max_output: 500,
+ fuel_range: 5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Stealth
+ thrust: 20,
+ augmenter: 50,
+ port: ( 0, 0, -155),
+
+ loc: (0, 0, -130),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+sensor: {
+ pcs: 0
+ active_efficiency: 2e10
+ passive_efficiency: 2e10
+
+ range: 100e3
+ range: 250e3
+ range: 500e3
+
+ loc: (0, 0, 10),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
diff --git a/data/shatter/Ships/Buildings/Barracks.def b/data/shatter/Ships/Buildings/Barracks.def
new file mode 100644
index 0000000..582d90e
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Barracks.def
@@ -0,0 +1,36 @@
+SHIP
+
+name: Barracks
+class: Building
+display_name: Barracks
+hud_icon: "hud_bldg05.pcx"
+
+detail_0: "Barracks-0.mag"
+feature_0: 1000
+detail_1: "Barracks-6.mag"
+feature_1: 6
+
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/BioDome.def b/data/shatter/Ships/Buildings/BioDome.def
new file mode 100644
index 0000000..d9e9bed
--- /dev/null
+++ b/data/shatter/Ships/Buildings/BioDome.def
@@ -0,0 +1,23 @@
+SHIP
+
+name: BioDome
+class: Building
+display_name: "BioDome"
+hud_icon: "hud_dome.pcx"
+secret: false
+
+detail_0: "A1-0.mag"
+feature_0: 1000
+detail_1: "A1-6.mag"
+feature_1: 6
+
+
+mass: 950e3
+integrity: 700e3
+scale: 10
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/BioDome2.def b/data/shatter/Ships/Buildings/BioDome2.def
new file mode 100644
index 0000000..1b021f8
--- /dev/null
+++ b/data/shatter/Ships/Buildings/BioDome2.def
@@ -0,0 +1,23 @@
+SHIP
+
+name: BioDome2
+class: Building
+display_name: "Utility Dome"
+hud_icon: "hud_util.pcx"
+secret: true
+
+detail_0: "A3-0.mag"
+feature_0: 1000
+detail_1: "A3-6.mag"
+feature_1: 6
+
+
+mass: 150e3
+integrity: 100e3
+scale: 6
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/BioTrail.def b/data/shatter/Ships/Buildings/BioTrail.def
new file mode 100644
index 0000000..dcea20c
--- /dev/null
+++ b/data/shatter/Ships/Buildings/BioTrail.def
@@ -0,0 +1,22 @@
+SHIP
+
+name: BioTrail
+class: Building
+display_name: "Elevated Bridge"
+hud_icon: "hud_trail.pcx"
+secret: false
+
+detail_0: "A2-0.mag"
+feature_0: 1000
+detail_1: "A2-6.mag"
+feature_1: 6
+
+mass: 10e3
+integrity: 10e3
+scale: 7
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/Bldg00.def b/data/shatter/Ships/Buildings/Bldg00.def
new file mode 100644
index 0000000..232fd4e
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg00.def
@@ -0,0 +1,37 @@
+SHIP
+
+name: Bldg00
+class: Building
+display_name: "Office Complex"
+hud_icon: "hud_bldg00.pcx"
+
+detail_0: "Bldg00-0.mag"
+feature_0: 1000
+detail_1: "Bldg00-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+explosion_scale: 1.2
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Bldg01.def b/data/shatter/Ships/Buildings/Bldg01.def
new file mode 100644
index 0000000..f7efb02
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg01.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Bldg01
+class: Building
+display_name: "Office Tower"
+hud_icon: "hud_bldg01.pcx"
+
+detail_0: "Bldg01-0.mag"
+feature_0: 1000
+detail_1: "Bldg01-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Bldg02.def b/data/shatter/Ships/Buildings/Bldg02.def
new file mode 100644
index 0000000..6308a92
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg02.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Bldg02
+class: Building
+display_name: Building
+hud_icon: "hud_bldg02.pcx"
+
+detail_0: "Bldg02-0.mag"
+feature_0: 1000
+detail_1: "Bldg02-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6,
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
diff --git a/data/shatter/Ships/Buildings/Bldg03.def b/data/shatter/Ships/Buildings/Bldg03.def
new file mode 100644
index 0000000..684bad1
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg03.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Bldg03
+class: Building
+display_name: Building
+hud_icon: "hud_bldg03.pcx"
+
+detail_0: "Bldg03-0.mag"
+feature_0: 1000
+detail_1: "Bldg03-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6, // HULL_FIRE
+ final_loc: (0, 0, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Bldg04.def b/data/shatter/Ships/Buildings/Bldg04.def
new file mode 100644
index 0000000..84d56b2
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg04.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Bldg04
+class: Building
+display_name: "Office Tower"
+hud_icon: "hud_bldg04.pcx"
+
+detail_0: "Bldg04-0.mag"
+feature_0: 1000
+detail_1: "Bldg04-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6,
+ final_loc: (0, 11, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Bldg05.def b/data/shatter/Ships/Buildings/Bldg05.def
new file mode 100644
index 0000000..77bc5e5
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Bldg05.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Bldg05
+class: Building
+display_name: Building
+hud_icon: "hud_bldg05.pcx"
+
+detail_0: "Bldg05-0.mag"
+feature_0: 1000
+detail_1: "Bldg05-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6,
+ final_loc: (0, 14, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/City00.def b/data/shatter/Ships/Buildings/City00.def
new file mode 100644
index 0000000..c41d864
--- /dev/null
+++ b/data/shatter/Ships/Buildings/City00.def
@@ -0,0 +1,21 @@
+SHIP
+
+name: City00
+class: Building
+display_name: "City Block"
+hud_icon: "hud_bldg01.pcx"
+
+detail_0: "City00-0.mag"
+feature_0: 1000
+detail_1: "City00-6.mag"
+feature_1: 6
+
+mass: 50e3
+integrity: 500e3
+scale: 3
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/City01.def b/data/shatter/Ships/Buildings/City01.def
new file mode 100644
index 0000000..22e383e
--- /dev/null
+++ b/data/shatter/Ships/Buildings/City01.def
@@ -0,0 +1,21 @@
+SHIP
+
+name: City01
+class: Building
+display_name: "City Block"
+hud_icon: "hud_bldg01.pcx"
+
+detail_0: "City01-0.mag"
+feature_0: 1000
+detail_1: "City01-6.mag"
+feature_1: 6
+
+mass: 50e3
+integrity: 500e3
+scale: 3
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/City02.def b/data/shatter/Ships/Buildings/City02.def
new file mode 100644
index 0000000..1a88b3b
--- /dev/null
+++ b/data/shatter/Ships/Buildings/City02.def
@@ -0,0 +1,21 @@
+SHIP
+
+name: City02
+class: Building
+display_name: "City Block"
+hud_icon: "hud_bldg01.pcx"
+
+detail_0: "City02-0.mag"
+feature_0: 1000
+detail_1: "City02-6.mag"
+feature_1: 6
+
+mass: 50e3
+integrity: 500e3
+scale: 3
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/City03.def b/data/shatter/Ships/Buildings/City03.def
new file mode 100644
index 0000000..a15bdfa
--- /dev/null
+++ b/data/shatter/Ships/Buildings/City03.def
@@ -0,0 +1,21 @@
+SHIP
+
+name: City03
+class: Building
+display_name: "City Block"
+hud_icon: "hud_bldg01.pcx"
+
+detail_0: "Vesta02-0.mag"
+feature_0: 1000
+detail_1: "Vesta02-6.mag"
+feature_1: 6
+
+mass: 950e3
+integrity: 500e3
+scale: 2.7
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/Cool00.def b/data/shatter/Ships/Buildings/Cool00.def
new file mode 100644
index 0000000..a57e830
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Cool00.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Cool00
+class: Building
+display_name: "Cooling Tower"
+hud_icon: "hud_cool00.pcx"
+
+detail_0: "Cool00-0.mag"
+feature_0: 1000
+detail_1: "Cool00-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 5e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 6,
+ final_loc: (0, 4, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt00.def b/data/shatter/Ships/Buildings/Dsrt00.def
new file mode 100644
index 0000000..c49db8b
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt00.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt00
+class: Building
+display_name: Building
+hud_icon: "hud_dsrt00.pcx"
+
+detail_0: "Dsrt00-0.mag"
+feature_0: 1000
+detail_1: "Dsrt00-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt01.def b/data/shatter/Ships/Buildings/Dsrt01.def
new file mode 100644
index 0000000..3152e7c
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt01.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt01
+class: Building
+display_name: Building
+hud_icon: "hud_dsrt01.pcx"
+
+detail_0: "Dsrt01-0.mag"
+feature_0: 1000
+detail_1: "Dsrt01-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt02.def b/data/shatter/Ships/Buildings/Dsrt02.def
new file mode 100644
index 0000000..a911493
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt02.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt02
+class: Building
+display_name: Building
+hud_icon: "hud_dsrt02.pcx"
+
+detail_0: "Dsrt02-0.mag"
+feature_0: 1000
+detail_1: "Dsrt02-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt03.def b/data/shatter/Ships/Buildings/Dsrt03.def
new file mode 100644
index 0000000..b5c59e9
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt03.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt03
+class: Building
+display_name: Building
+hud_icon: "hud_dsrt03.pcx"
+
+detail_0: "Dsrt03-0.mag"
+feature_0: 1000
+detail_1: "Dsrt03-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 8e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt04.def b/data/shatter/Ships/Buildings/Dsrt04.def
new file mode 100644
index 0000000..4c1a394
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt04.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt04
+class: Building
+display_name: Outpost
+hud_icon: "hud_dsrt04.pcx"
+
+detail_0: "Dsrt04-0.mag"
+feature_0: 1000
+detail_1: "Dsrt04-6.mag"
+feature_1: 6
+
+mass: 512e3
+integrity: 320e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Dsrt05.def b/data/shatter/Ships/Buildings/Dsrt05.def
new file mode 100644
index 0000000..78ee2a3
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Dsrt05.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Dsrt05
+class: Building
+display_name: Minehead
+hud_icon: "hud_dsrt05.pcx"
+
+detail_0: "Dsrt05-0.mag"
+feature_0: 1000
+detail_1: "Dsrt05-6.mag"
+feature_1: 6
+
+mass: 512e3
+integrity: 320e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Fact00.def b/data/shatter/Ships/Buildings/Fact00.def
new file mode 100644
index 0000000..0539ecd
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Fact00.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Fact00
+class: Building
+display_name: "Factory"
+hud_icon: "hud_fact00.pcx"
+
+detail_0: "Fact00-0.mag"
+feature_0: 1000
+detail_1: "Fact00-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 10e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Fact01.def b/data/shatter/Ships/Buildings/Fact01.def
new file mode 100644
index 0000000..1342a8a
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Fact01.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Fact01
+class: Building
+display_name: "Factory"
+hud_icon: "hud_fact01.pcx"
+
+detail_0: "Fact01-0.mag"
+feature_0: 1000
+detail_1: "Fact01-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 10e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Fact02.def b/data/shatter/Ships/Buildings/Fact02.def
new file mode 100644
index 0000000..20a7f2a
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Fact02.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Fact02
+class: Building
+display_name: "Factory"
+hud_icon: "hud_fact02.pcx"
+
+detail_0: "Fact02-0.mag"
+feature_0: 1000
+detail_1: "Fact02-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 10e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Fact03.def b/data/shatter/Ships/Buildings/Fact03.def
new file mode 100644
index 0000000..195d0f0
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Fact03.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Fact03
+class: Building
+display_name: "Factory"
+hud_icon: "hud_fact03.pcx"
+
+detail_0: "Fact03-0.mag"
+feature_0: 1000
+detail_1: "Fact03-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 10e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Fact04.def b/data/shatter/Ships/Buildings/Fact04.def
new file mode 100644
index 0000000..087c119
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Fact04.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Fact04
+class: Building
+display_name: "Factory"
+hud_icon: "hud_fact04.pcx"
+
+detail_0: "Fact04-0.mag"
+feature_0: 1000
+detail_1: "Fact04-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 10e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Platform.def b/data/shatter/Ships/Buildings/Platform.def
new file mode 100644
index 0000000..e2237dc
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Platform.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Platform
+class: Building
+display_name: Platform
+hud_icon: "hud_platform.pcx"
+
+detail_0: "Platform-0.mag"
+feature_0: 1000
+detail_1: "Platform-6a.mag"
+feature_1: 6
+
+mass: 15e3
+integrity: 35e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Reac01.def b/data/shatter/Ships/Buildings/Reac01.def
new file mode 100644
index 0000000..943c422
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Reac01.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Reac01
+class: Building
+display_name: Generator
+hud_icon: "hud_reac01.pcx"
+
+detail_0: "Reactor-0.mag"
+feature_0: 1000
+detail_1: "Reactor-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 5e3
+scale: 2
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/Buildings/Senate.def b/data/shatter/Ships/Buildings/Senate.def
new file mode 100644
index 0000000..fcd1d6d
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Senate.def
@@ -0,0 +1,17 @@
+SHIP
+
+name: Senate
+class: Building
+display_name: "Senate"
+
+model: "senate2-6.mag"
+
+mass: 550e4
+integrity: 500e4
+scale: 3
+acs: 0
+pcs: 0
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
diff --git a/data/shatter/Ships/Buildings/Tank00.def b/data/shatter/Ships/Buildings/Tank00.def
new file mode 100644
index 0000000..99b1134
--- /dev/null
+++ b/data/shatter/Ships/Buildings/Tank00.def
@@ -0,0 +1,35 @@
+SHIP
+
+name: Tank00
+class: Building
+display_name: "Cryo Tank"
+hud_icon: "hud_tank00.pcx"
+
+detail_0: "Tank00-0.mag"
+feature_0: 1000
+detail_1: "Tank00-6.mag"
+feature_1: 6
+
+mass: 5e3
+integrity: 5e3
+scale: 3
+acs: 50e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+
+ final_type: 8, // smoke trail
+ final_loc: (0, 0, 0),
+ }
+
+
+
diff --git a/data/shatter/Ships/CameraPod/CameraPod.def b/data/shatter/Ships/CameraPod/CameraPod.def
new file mode 100644
index 0000000..c98d1a7
--- /dev/null
+++ b/data/shatter/Ships/CameraPod/CameraPod.def
@@ -0,0 +1,81 @@
+SHIP
+
+name: CameraPod
+display_name: CameraPod
+class: Drone
+
+model: "Invisible.mag"
+cockpit_model: "Invisible.mag"
+cockpit_scale: 1e-6
+
+mass: 14.5
+integrity: 4e12
+vlimit: 290
+agility: 130
+air_factor: 0.25
+roll_rate: 1900
+scale: 1e-6
+acs: 1.1
+detet: 250e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.1
+drag: 3.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.3e-2
+CD: 0.7e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 200)
+bridge: (0, 131, 23)
+
+power: {
+ type: Fusion,
+ max_output: 500,
+ fuel_range: 5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+ }
+
+drive: {
+ type: Stealth
+ thrust: 20,
+ augmenter: 50,
+ port: ( 0, 0, -155),
+
+ loc: (0, 0, -130),
+ size: 16,
+ hull_factor: 0.85
+ }
+
+sensor: {
+ pcs: 0
+ active_efficiency: 2e10
+ passive_efficiency: 2e10
+
+ range: 100e3
+ range: 250e3
+ range: 500e3
+
+ loc: (0, 0, 10),
+ size: 25,
+ hull_factor: 0.25
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
diff --git a/data/shatter/Ships/Civil/CargoA.def b/data/shatter/Ships/Civil/CargoA.def
new file mode 100644
index 0000000..03910ac
--- /dev/null
+++ b/data/shatter/Ships/Civil/CargoA.def
@@ -0,0 +1,252 @@
+SHIP
+
+name: IM3500
+display_name: "IM3500 Freighter"
+class: Freighter
+
+hud_icon: "CAHud.pcx"
+
+detail_0: "CargoA_0opt.mag"
+feature_0: 1000
+detail_1: "CargoA_1opt.mag"
+feature_1: 20
+detail_2: "CargoA_2opt.mag"
+feature_2: 12
+
+mass: 18.2e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 20e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 5300,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.8,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 1500,
+ scale: 4,
+ port: (-92, 0,-326),
+ port: ( 94, 0,-326),
+
+ loc: (0, 30, -170),
+ size: 32,
+ hull_factor: 0.6,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.8
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisPod.mag",
+ debris_loc: (-50,0,-20),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 315,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 10,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 8,
+ debris_life: 15,
+
+
+ }
+
+map: {
+ sprite: "CAmap0.pcx",
+ sprite: "CAmap1.pcx",
+ sprite: "CAmap2.pcx",
+ sprite: "CAmap3.pcx",
+ sprite: "CAmap4.pcx",
+ sprite: "CAmap5.pcx",
+ sprite: "CAmap6.pcx",
+ sprite: "CAmap7.pcx"
+}
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Civil/CargoB.def b/data/shatter/Ships/Civil/CargoB.def
new file mode 100644
index 0000000..bcfaa4d
--- /dev/null
+++ b/data/shatter/Ships/Civil/CargoB.def
@@ -0,0 +1,252 @@
+SHIP
+
+name: IM4300
+display_name: "IM4300 Hauler"
+class: Freighter
+
+hud_icon: "CBHud.pcx"
+
+detail_0: "CargoB_0opt.mag"
+feature_0: 1000
+detail_1: "CargoB_1opt.mag"
+feature_1: 20
+detail_2: "CargoB_2opt.mag"
+feature_2: 12
+
+mass: 37.1e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 25e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7300,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 2500,
+ scale: 4,
+ port: (-92, 0,-488),
+ port: ( 94, 0,-488),
+
+ loc: (0, 30, -350),
+ size: 32,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.8
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.76
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisPod.mag",
+ debris_loc: (-50,0,-20),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 315,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+
+ }
+
+map: {
+ sprite: "CBmap0.pcx",
+ sprite: "CBmap1.pcx",
+ sprite: "CBmap2.pcx",
+ sprite: "CBmap3.pcx",
+ sprite: "CBmap4.pcx",
+ sprite: "CBmap5.pcx",
+ sprite: "CBmap6.pcx",
+ sprite: "CBmap7.pcx"
+}
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Civil/CargoC.def b/data/shatter/Ships/Civil/CargoC.def
new file mode 100644
index 0000000..2ee1cff
--- /dev/null
+++ b/data/shatter/Ships/Civil/CargoC.def
@@ -0,0 +1,254 @@
+SHIP
+
+name: IM2800
+display_name: "IM2800 Cargo"
+class: Cargo
+
+hud_icon: "CCHud.pcx"
+
+detail_0: "CargoC_0opt.mag"
+feature_0: 1000
+detail_1: "CargoC_1opt.mag"
+feature_1: 20
+detail_2: "CargoC_2opt.mag"
+feature_2: 12
+
+mass: 8.2e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 15e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3300,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 600,
+ scale: 4,
+ port: (-92, 29,-325),
+ port: ( 94, 29,-325),
+ port: (-92, -43,-176),
+ port: ( 94, -43,-176),
+
+ loc: (0, 30, -250),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.8
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisPod.mag",
+ debris_loc: (-50,0,-20),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 315,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "CCmap0.pcx",
+ sprite: "CCmap1.pcx",
+ sprite: "CCmap2.pcx",
+ sprite: "CCmap3.pcx",
+ sprite: "CCmap4.pcx",
+ sprite: "CCmap5.pcx",
+ sprite: "CCmap6.pcx",
+ sprite: "CCmap7.pcx"
+}
+
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Civil/Courier.def b/data/shatter/Ships/Civil/Courier.def
new file mode 100644
index 0000000..8b2566a
--- /dev/null
+++ b/data/shatter/Ships/Civil/Courier.def
@@ -0,0 +1,192 @@
+SHIP
+
+name: Courier
+display_name: "Blockade Runner"
+class: Courier
+
+hud_icon: "BRHud.pcx"
+
+model: "Corvette_2opt.mag"
+
+mass: 15.3e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 20e3
+scale: 1.2
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 9500,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+drive: {
+ type: Plasma
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 4000,
+ scale: 1.5,
+ port: (-25, 0,-448)
+ port: ( 25, 0,-448)
+ port: (-25, 20,-448)
+ port: ( 25, 20,-448)
+
+ loc: (0, 10, -370)
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.002,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.8
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.3
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "BRmap0.pcx",
+ sprite: "BRmap1.pcx",
+ sprite: "BRmap2.pcx",
+ sprite: "BRmap3.pcx",
+ sprite: "BRmap4.pcx",
+ sprite: "BRmap5.pcx",
+ sprite: "BRmap6.pcx",
+ sprite: "BRmap7.pcx",
+}
+
diff --git a/data/shatter/Ships/Civil/TankerA.def b/data/shatter/Ships/Civil/TankerA.def
new file mode 100644
index 0000000..1f24e3c
--- /dev/null
+++ b/data/shatter/Ships/Civil/TankerA.def
@@ -0,0 +1,257 @@
+SHIP
+
+name: IM1906
+display_name: "IM1906 Tanker"
+class: Freighter
+
+hud_icon: "TAHud.pcx"
+
+detail_0: "TankerA_0opt.mag"
+feature_0: 1000
+detail_1: "TankerA_1opt.mag"
+feature_1: 20
+detail_2: "TankerA_2opt.mag"
+feature_2: 12
+
+mass: 18.2e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 15e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3300,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 600,
+ scale: 4,
+ port: (-91, 30,-352),
+ port: ( 95, 30,-352),
+
+ loc: (0, 30, -150),
+ size: 32,
+ hull_factor: 0.6,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.4
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.8
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisPod.mag",
+ debris_loc: (-50,0,-20),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 345,
+
+ debris: "DebrisTank.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 7e3,
+ debris_count: 2,
+ debris_life: 325,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "TAmap0.pcx",
+ sprite: "TAmap1.pcx",
+ sprite: "TAmap2.pcx",
+ sprite: "TAmap3.pcx",
+ sprite: "TAmap4.pcx",
+ sprite: "TAmap5.pcx",
+ sprite: "TAmap6.pcx",
+ sprite: "TAmap7.pcx"
+}
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Civil/TankerB.def b/data/shatter/Ships/Civil/TankerB.def
new file mode 100644
index 0000000..25be42b
--- /dev/null
+++ b/data/shatter/Ships/Civil/TankerB.def
@@ -0,0 +1,257 @@
+SHIP
+
+name: IM1912
+display_name: "IM1912 Tanker"
+class: Freighter
+
+hud_icon: "TBHud.pcx"
+
+detail_0: "TankerB_0opt.mag"
+feature_0: 1000
+detail_1: "TankerB_1opt.mag"
+feature_1: 20
+detail_2: "TankerB_2opt.mag"
+feature_2: 12
+
+mass: 28.7e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 23e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3300,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.8,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 600,
+ scale: 4,
+ port: (-91, 28,-488),
+ port: ( 95, 28,-488),
+
+ loc: (0, 30, -350),
+ size: 32,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.8
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.7
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisPod.mag",
+ debris_loc: (-50,0,-20),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 345,
+
+ debris: "DebrisTank.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 7e3,
+ debris_count: 3,
+ debris_life: 325,
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "TBmap0.pcx",
+ sprite: "TBmap1.pcx",
+ sprite: "TBmap2.pcx",
+ sprite: "TBmap3.pcx",
+ sprite: "TBmap4.pcx",
+ sprite: "TBmap5.pcx",
+ sprite: "TBmap6.pcx",
+ sprite: "TBmap7.pcx"
+}
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Civil/Transport.def b/data/shatter/Ships/Civil/Transport.def
new file mode 100644
index 0000000..bb098bd
--- /dev/null
+++ b/data/shatter/Ships/Civil/Transport.def
@@ -0,0 +1,242 @@
+SHIP
+
+name: Transport
+display_name: Transport
+class: Courier
+
+hud_icon: "TRHud.pcx"
+
+model: "Transport_2opt.mag"
+
+mass: 19.3e3
+agility: 1
+vlimit: 280
+roll_rate: 5
+integrity: 20e3
+scale: 2.5
+acs: 1
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7500,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7,
+ explosion: 7
+ }
+
+drive: {
+ type: Fusion,
+ name: "Fusion Drive",
+ design: "Fusion Drive",
+ thrust: 2500,
+ scale: 4,
+ port: (-91, 0,-424),
+ port: ( 0, 51,-424),
+ port: ( 0,-49,-424),
+ port: ( 89, 0,-424),
+
+ loc: (0, 10, -320),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+ }
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+ }
+
+
+shield: {
+ type: 1,
+ design: "Grav Shield",
+ factor: 0.25,
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.8
+ }
+
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 10
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.3
+ }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 25,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 20,
+ debris_life: 15,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "TRmap0.pcx",
+ sprite: "TRmap1.pcx",
+ sprite: "TRmap2.pcx",
+ sprite: "TRmap3.pcx",
+ sprite: "TRmap4.pcx",
+ sprite: "TRmap5.pcx",
+ sprite: "TRmap6.pcx",
+ sprite: "TRmap7.pcx",
+}
+
+skin: {
+ name: Blue
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.5, 0.7)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D2.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G2.jpg"
+ }
+}
+
+skin: {
+ name: Green
+ mtl: {
+ name: Hull
+ Ka: (0.5, 0.7, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D3.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G3.jpg"
+ }
+}
+
+skin: {
+ name: Red
+ mtl: {
+ name: Hull
+ Ka: (0.7, 0.5, 0.5)
+ Kd: (1.0, 1.0, 1.0)
+ Ks: (1.0, 0.9, 0.8)
+ Ke: (1.0, 1.0, 1.0)
+ power: 20
+ bump: 3
+ tex_d: "MAIN_D4.jpg"
+ tex_s: "MAIN_S.jpg"
+ tex_b: "MAIN_B.jpg"
+ tex_e: "MAIN_G4.jpg"
+ }
+}
diff --git a/data/shatter/Ships/Colony/Colony.def b/data/shatter/Ships/Colony/Colony.def
new file mode 100644
index 0000000..c9a2434
--- /dev/null
+++ b/data/shatter/Ships/Colony/Colony.def
@@ -0,0 +1,88 @@
+SHIP
+
+name: Colony
+display_name: "Colony Ship"
+class: Station
+secret: true
+hud_icon: "Colony_hud.pcx"
+
+detail_0: "Colony1e.mag"
+feature_0: 1000
+detail_1: "Colony2e.mag"
+feature_1: 32
+
+mass: 2.1e6
+agility: 0
+vlimit: 0
+roll_rate: 0
+integrity: 250e3
+scale: 7
+acs: 1
+
+chase: (0, -1e3, 200)
+bridge: (0, 1040, 0)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 10e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+
+
+death_spiral: {
+ time: 3,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ }
+
+
+map: { sprite: "Colony_map.pcx" }
+
+
+
+
diff --git a/data/shatter/Ships/Dantari_Ships/Baikal.def b/data/shatter/Ships/Dantari_Ships/Baikal.def
new file mode 100644
index 0000000..ebaf2b1
--- /dev/null
+++ b/data/shatter/Ships/Dantari_Ships/Baikal.def
@@ -0,0 +1,314 @@
+SHIP
+
+name: Baikal
+display_name: Baikal
+class: Frigate
+description: "The BAIKAL class frigates are commonly used by the independent systems as anti-fighter platforms. Designed by the Marakan Hegemony as cost efficient space combatants, they lack the multi-mission capability necessary for modern warships faced with multiple, high-technology threats. They also offer limited capacity for growth. Despite this, the FF-101 Baikal class is a robust platform, capable of withstanding considerable damage while staying 'in the fight.'"
+
+degrees: true
+beauty: (-22, 7, 1.1)
+hud_icon: "BaikalHud.pcx"
+
+detail_0: "Frigate_0opt.mag"
+feature_0: 1000
+detail_1: "Frigate_1opt.mag"
+feature_1: 32
+detail_2: "Frigate_2opt.mag"
+feature_2: 16
+
+mass: 9.53e3
+agility: 3.8
+vlimit: 300
+roll_rate: 8
+integrity: 21e3
+scale: 1.6
+acs: 1
+degrees: true
+
+trans_x: 85e3
+trans_y: 35e3
+trans_z: 85e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ abrv: Drive
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 3,
+ port: ( 0, 43,-435),
+ port: ( 42, 0,-435),
+ port: (-42, 0,-435),
+ port: ( 0,-43,-435),
+
+ loc: (0, 0, -220),
+ size: 32,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster
+ type: Yellow,
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 1.5
+
+ port_left: {loc:( -88, 0,-356), fire: 0x0041}
+ port_left: {loc:( -72, -19, 453), fire: 0x0081}
+ port_left: {loc:( -72, 19, 453), fire: 0x0081}
+
+ port_right: {loc:( 88, 0,-356), fire: 0x0082}
+ port_right: {loc:( 72, -19, 453), fire: 0x0042}
+ port_right: {loc:( 72, 19, 453), fire: 0x0042}
+
+ port_fore: {loc:( -54, -19, 498), fire: 0x0044}
+ port_fore: {loc:( -21, -41, 498), fire: 0x0044}
+ port_fore: {loc:( 21, -41, 498), fire: 0x0084}
+ port_fore: {loc:( 54, -19, 498), fire: 0x0084}
+
+ port_top: {loc:( -64, 29,-319), fire: 0x0510}
+ port_top: {loc:( 64, 29,-319), fire: 0x0910}
+
+ port_bottom: {loc:( -64, -29,-319), fire: 0x0A20}
+ port_bottom: {loc:( 64, -29,-319), fire: 0x0620}
+
+ port_top: {loc:( -19, 60, 452), fire: 0x0610}
+ port_top: {loc:( 19, 60, 452), fire: 0x0A10}
+
+ port_bottom: {loc:( -19, -60, 452), fire: 0x0920}
+ port_bottom: {loc:( 19, -60, 452), fire: 0x0520}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.7
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: Shield
+ factor: 0.02,
+ consumption: 1500,
+ // model: "BaikalShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100
+ loc: (0, 20, -80)
+ size: 16
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Fwd Cannon",
+ abrv: "Plasma 1",
+ muzzle: (0, 25, 540),
+ azimuth: 0,
+
+ loc: (0, 25, 500),
+ size: 24,
+ hull_factor: 0.1
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7",
+ muzzle: (-20, 0, 450),
+ muzzle: ( 20, 0, 450),
+ azimuth: 0,
+
+ loc: (-50, 0, -40),
+ size: 16,
+ hull_factor: 0.1
+}
+
+weapon: {
+ type: "Ursa Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Cannon",
+ abrv: "PDB 1",
+
+ loc: ( 85, 0, -30),
+ muzzle: ( 0, 0, 70),
+ azimuth: 90
+ rest_azimuth: -90
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Ursa Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ abrv: "PDB 2",
+
+ loc: (-85, 0, -30),
+ muzzle: ( 0, 0, 70),
+ azimuth: -90
+ rest_azimuth: 90
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.3
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisFrigate1.mag",
+ debris_loc: (0,0,-150),
+ debris_mass: 11e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 44, 24, 84),
+ debris_fire: (-41,-24,100),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 10,
+ debris_life: 15,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 20,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 2,
+ debris_count: 10,
+ debris_life: 22,
+
+ }
+
+map: {
+ sprite: "BaikalMap0.pcx",
+ sprite: "BaikalMap1.pcx",
+ sprite: "BaikalMap2.pcx",
+ sprite: "BaikalMap3.pcx",
+ sprite: "BaikalMap4.pcx",
+ sprite: "BaikalMap5.pcx",
+ sprite: "BaikalMap6.pcx",
+ sprite: "BaikalMap7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Dantari_Ships/Goliath.def b/data/shatter/Ships/Dantari_Ships/Goliath.def
new file mode 100644
index 0000000..588b7ed
--- /dev/null
+++ b/data/shatter/Ships/Dantari_Ships/Goliath.def
@@ -0,0 +1,363 @@
+SHIP
+
+name: Goliath
+display_name: Goliath
+class: Carrier
+description: "The GOLIATH class carrier vessels provide the Dantari Separatists with their main force projection capability in the Solus system. Unlike the rest of the Dantari fleet, which consists largely of older Hegemony warships, the Goliath class carriers were designed and constructed specifically for their Dantari crew. Due to budgetary constraints, the Goliath class is outfitted with only a single launch rail, but still has a full complement of point defense batteries for close-in protection."
+
+hud_icon: "GoliathHud.pcx"
+
+detail_0: "Goliath_1opt.mag"
+feature_0: 1000
+detail_1: "Goliath_2opt.mag"
+feature_1: 48
+
+mass: 782e3
+agility: 1
+vlimit: 220
+roll_rate: 7
+integrity: 75e3
+scale: 3.3
+acs: 1.5
+
+trans_x: 1e6
+trans_y: 5e5
+trans_z: 1e6
+
+arcade_drag: 4.5e-2
+drag: 1e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 50e3,
+
+ loc: (0, 4, -280),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 25e3,
+ scale: 12,
+ port: ( 54, -84, -489),
+ port: (-54, -84, -489),
+ port: ( 0, -57, -527),
+ port: ( 0,-111, -489),
+
+ loc: (0, 0, -450),
+ size: 50,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3,
+ countdown: 7.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 6000,
+ // model: "GoliathShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 1100,
+
+ loc: (0, 0, -100),
+ hull_factor: 0.8
+}
+
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 1",
+ abrv: "PDB 1",
+ loc: (104, -17, 64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: 60,
+ aim_az_max: 90,
+ aim_az_min: -60,
+ aim_az_rest: -60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 2",
+ abrv: "PDB 2",
+ loc: (-104, -17, 64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: -60,
+ aim_az_max: -90,
+ aim_az_min: 60,
+ aim_az_rest: 60,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 3",
+ abrv: "PDB 3",
+ loc: (104, -17, -64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: 90,
+ aim_az_max: 75,
+ aim_az_min: -75,
+ aim_az_rest: 90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "PDB 4",
+ abrv: "PDB 4",
+ loc: (-104, -17, -64),
+ muzzle: ( 30, 0, 190),
+ muzzle: (-30, 0, 190),
+
+ azimuth: -90,
+ aim_az_max: -75,
+ aim_az_min: 75,
+ aim_az_rest: -90,
+
+ size: 32,
+ hull_factor: 0.2
+}
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 0, -85, 192),
+ cam: (-20, -85, 192),
+ start: ( 0, -85, 170),
+ end: (2e3,-200, 2500),
+
+ spot: { loc: ( 16, -85, 160), filter: 0x7 },
+ spot: { loc: (-16, -85, 160), filter: 0x7 },
+ spot: { loc: ( 0, -85, 160), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: ( 0, -82, -92),
+ cam: (-20, -72, -92),
+ start: ( 0, -90, -1e3),
+ end: ( 0, -82, -92),
+ spot: ( 0, -82, -92),
+
+ approach: ( 0,-90, -2000),
+ approach: (1000, 0, -1000),
+ approach: (1000, 0, 1000),
+ approach: ( 250, 0, 2500),
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 15,
+
+ size: 40,
+ hull_factor: 0.5,
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "GoliathMap0.pcx",
+ sprite: "GoliathMap1.pcx",
+ sprite: "GoliathMap2.pcx",
+ sprite: "GoliathMap3.pcx",
+ sprite: "GoliathMap4.pcx",
+ sprite: "GoliathMap5.pcx",
+ sprite: "GoliathMap6.pcx",
+ sprite: "GoliathMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisGoliath1.mag",
+ debris_loc: (0,0,400),
+ debris_mass: 91e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (44,-34,64),
+ debris_fire: (34,-44,-30),
+
+ debris: "DebrisGoliath2.mag",
+ debris_loc: (0,0,-290),
+ debris_mass: 61e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: (64, 34,74),
+ debris_fire: (64,-32,-70),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 22,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 16,
+ debris_count: 15,
+ debris_life: 28,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 11,
+ debris_count: 10,
+ debris_life: 32,
+
+}
+
diff --git a/data/shatter/Ships/Dantari_Ships/Mine1.def b/data/shatter/Ships/Dantari_Ships/Mine1.def
new file mode 100644
index 0000000..50c2817
--- /dev/null
+++ b/data/shatter/Ships/Dantari_Ships/Mine1.def
@@ -0,0 +1,126 @@
+SHIP
+
+name: "Blockade Mine"
+display_name: Mine
+class: Mine
+
+hud_icon: "MineHud.pcx"
+
+detail_0: "Mine1.mag"
+feature_0: 1000
+detail_1: "Mine2.mag"
+feature_1: 8
+
+mass: 100
+agility: 0
+vlimit: 0
+roll_rate: 0
+integrity: 1e3
+scale: 1
+acs: 1
+
+trans_x: 0
+trans_y: 0
+trans_z: 0
+
+arcade_drag: 2e9
+drag: 1e9
+roll_drag: 1e9
+pitch_drag: 1e9
+yaw_drag: 1e9
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+weapon: {
+ type: "Blockade Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ abrv: "Gun",
+
+ loc: ( 0, 0, 0),
+ muzzle: ( 105, 8, 75),
+ muzzle: (-105, 8, 75),
+ muzzle: ( 105, -8, 75),
+ muzzle: (-105, -8, 75),
+ azimuth: 0,
+
+ size: 24,
+ hull_factor: 0.3
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 1,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 7,
+ debris_life: 27,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 5,
+ debris_life: 25,
+}
+
+map: { sprite: "MineMap.pcx" }
diff --git a/data/shatter/Ships/Dantari_Ships/Wolf.def b/data/shatter/Ships/Dantari_Ships/Wolf.def
new file mode 100644
index 0000000..9f9650d
--- /dev/null
+++ b/data/shatter/Ships/Dantari_Ships/Wolf.def
@@ -0,0 +1,367 @@
+SHIP
+
+name: Wolf
+display_name: Wolf
+class: Destroyer
+description: "The DD-305 WOLF class of medium destroyers are an older type of Hegemony warship now mainly used by client states and guerilla groups such as the Dantari Separatists. The Wolf class features a pair of internally-mounted heavy XRay Laser batteries and a full complement of Orca point defense batteries for protection from inbound threats. Due to design limitations, the Orca PDBs tend to provide better coverage for the dorsal hemisphere, leaving the Wolf class with a vulnerable underbelly."
+
+degrees: true
+beauty: (-7, 4, 1.1)
+hud_icon: "WolfHud.pcx"
+
+detail_0: "Destroyer_0opt.mag"
+feature_0: 1000
+detail_1: "Destroyer_1opt.mag"
+feature_1: 32
+detail_2: "Destroyer_2opt.mag"
+feature_2: 16
+
+mass: 15.8e3
+agility: 3.5
+vlimit: 240
+roll_rate: 7
+integrity: 18e3
+scale: 1.7
+acs: 1.2
+
+scuttle: 6e3
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7000,
+
+ loc: (0, -40, -220),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 1250,
+ scale: 5,
+ port: (-88, 10, -808),
+ port: ( 0, 12, -808),
+ port: ( 85, 10, -808),
+
+ loc: (0, 0, -400),
+ size: 50,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+
+thruster: {
+ design: Thruster
+ type: Yellow,
+
+ loc: (0, 0, 64)
+ size: 24,
+ hull_factor: 0.3
+ scale: 2
+
+ port_left: {loc:(-170, 9,-601), fire: 0x0041}
+ port_left: {loc:(-170, 9,-579), fire: 0x0041}
+ port_left: {loc:(-100, 18, 786), fire: 0x0081}
+ port_left: {loc:(-100, -34, 786), fire: 0x0081}
+
+ port_right: {loc:( 170, 9,-601), fire: 0x0082}
+ port_right: {loc:( 170, 9,-579), fire: 0x0082}
+ port_right: {loc:( 100, 18, 786), fire: 0x0042}
+ port_right: {loc:( 100, -34, 786), fire: 0x0042}
+
+ port_fore: {loc:( -73, -34, 845), fire: 0x0044}
+ port_fore: {loc:( -30, -63, 845), fire: 0x0044}
+ port_fore: {loc:( 30, -63, 845), fire: 0x0084}
+ port_fore: {loc:( 73, -34, 845), fire: 0x0084}
+
+ port_aft: {loc:( -45, 48,-770), fire: 0x0088}
+ port_aft: {loc:( -45, -27,-770), fire: 0x0088}
+ port_aft: {loc:( 42, 48,-770), fire: 0x0048}
+ port_aft: {loc:( 42, -27,-770), fire: 0x0048}
+
+ port_top: {loc:( -80, 87,-601), fire: 0x0510}
+ port_top: {loc:( 77, 87,-601), fire: 0x0910}
+
+ port_bottom: {loc:( -80, -69,-601), fire: 0x0A20}
+ port_bottom: {loc:( 77, -69,-601), fire: 0x0620}
+
+ port_top: {loc:( -26, 71, 783), fire: 0x0610}
+ port_top: {loc:( 25, 71, 783), fire: 0x0A10}
+
+ port_bottom: {loc:( -26, -85, 783), fire: 0x0920}
+ port_bottom: {loc:( 25, -85, 783), fire: 0x0520}
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, 0),
+ size: 24,
+ hull_factor: 0.3,
+ countdown: 7.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 6000,
+ // model: "WolfShield.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 1100,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.8
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-25, 23, 907),
+
+ loc: (-25, 23, 800),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 25, 23, 907),
+
+ loc: ( 25, 23, 800),
+ size: 32,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Fwd Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 82, 500),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Orca Inverted",
+ design: "Bolt Weapon",
+ name: "Chin Cannon",
+ muzzle: ( 4, -11, 75),
+ muzzle: (-4, -11, 75),
+
+ loc: ( 0, -102, 500),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Stbd Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 60, 50, 38),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: 90
+ rest_azimuth: -90
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (-60, 50, 38),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: -90
+ rest_azimuth: 90
+}
+
+weapon: {
+ type: "Orca Cannon",
+ design: "Bolt Weapon",
+ name: "Aft Cannon",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 70, -256),
+ size: 32,
+ hull_factor: 0.3,
+
+ azimuth: 180
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "WolfMap0.pcx",
+ sprite: "WolfMap1.pcx",
+ sprite: "WolfMap2.pcx",
+ sprite: "WolfMap3.pcx",
+ sprite: "WolfMap4.pcx",
+ sprite: "WolfMap5.pcx",
+ sprite: "WolfMap6.pcx",
+ sprite: "WolfMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisDestroyer2.mag",
+ debris_loc: (0,0,520),
+ debris_mass: 21e3,
+ debris_count: 1,
+ debris_life: 500,
+ debris_fire: (44, 14,-314),
+ debris_fire: (34,-24,-306),
+
+ debris: "Debris0A.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 20,
+
+ debris: "Debris0B.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris0C.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 30,
+
+}
+
diff --git a/data/shatter/Ships/Farcaster/Farcaster.def b/data/shatter/Ships/Farcaster/Farcaster.def
new file mode 100644
index 0000000..537a1db
--- /dev/null
+++ b/data/shatter/Ships/Farcaster/Farcaster.def
@@ -0,0 +1,146 @@
+SHIP
+
+name: Farcaster
+class: Farcaster
+description: "The standard Terellian Alliance quantum portal for long range travel. The 185 exawatt Type I FARCASTER can translate any starship or fighter-class vessel, even without an onboard FTL quantum drive, instantly to a remote destination. Farcaster portals are always connected in pairs."
+
+model: "Farcaster.mag"
+
+mass: 5e6
+integrity: 3e6
+scale: 15.0
+acs: 320e3
+
+drag: 100
+roll_drag: 100
+pitch_drag: 100
+yaw_drag: 100
+
+chase: (0, -750, 80)
+bridge: (0, 0, 24)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, -32),
+ size: 64,
+ hull_factor: 0.5
+ }
+
+farcaster: {
+ approach: (0, 0, -2000),
+ start: (0, 0, 0),
+ end: (0, 0, 1000),
+
+ loc: (0, 0, 0),
+ size: 128,
+ hull_factor: 0.5
+ }
+
+navlight: {
+ scale: 6,
+ period: 1.5,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 3 },
+
+ light: { loc: ( 138,-42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 138, 42, 257), pattern: 0xf0000000, type: 3 },
+}
+
+navlight: {
+ scale: 6,
+ period: 1,
+
+ light: { loc: (-138,-42,-257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138,-42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: (-138, 42,-257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138, 42,-257), pattern: 0xf0000000, type: 2 },
+
+ light: { loc: (-138,-42, 257), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 138,-42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: (-138, 42, 257), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 138, 42, 257), pattern: 0x00f00000, type: 2 },
+}
+
+map: {
+ sprite: "map.pcx"
+}
+
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-150, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (160, 40, 100),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (230, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (220, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (-160, 80, -90),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (-160, 80, -90),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1.mag",
+ debris_loc: (180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (-10,0,0),
+ debris_fire: ( 15,20,10),
+
+ debris: "Debris2.mag",
+ debris_loc: (-160,-120,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 500,
+
+ debris: "Debris3.mag",
+ debris_loc: (-180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 4,0,10),
+ debris_fire: (25,20,0),
+ debris_fire: ( 5,-10,-20),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,20,0),
+ debris_mass: 1,
+ debris_count: 8,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (10,0,0),
+ debris_mass: 1,
+ debris_count: 12,
+ debris_life: 15,
+ }
+
diff --git a/data/shatter/Ships/Farcaster/Farcaster2.def b/data/shatter/Ships/Farcaster/Farcaster2.def
new file mode 100644
index 0000000..e8a0105
--- /dev/null
+++ b/data/shatter/Ships/Farcaster/Farcaster2.def
@@ -0,0 +1,153 @@
+SHIP
+
+name: Farcaster2
+class: Farcaster
+description: "The standard Hegemony quantum portal for long range travel. The Type II FARCASTER can translate any starship or fighter-class vessel instantly to a remote destination. Type II Farcaster portals may found throughout the systems controlled by the Marakan Hegemony."
+
+model: "FC2a.mag"
+model: "FC2b.mag"
+model: "FC2c.mag"
+
+spin: (0.0, 0.1, 0.0)
+spin: (0.0,-0.1, 0.0)
+spin: (0.0, 0.0, 0.0)
+
+
+mass: 5e6
+integrity: 3e6
+scale: 20.0
+acs: 320e3
+
+drag: 100
+roll_drag: 100
+pitch_drag: 100
+yaw_drag: 100
+
+chase: (0, -750, 80)
+bridge: (0, 0, 24)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, -32),
+ size: 64,
+ hull_factor: 0.5
+ }
+
+farcaster: {
+ approach: (0, 0, -2000),
+ start: (0, 0, 0),
+ end: (0, 0, 1000),
+
+ loc: (0, 0, 0),
+ size: 128,
+ hull_factor: 0.5
+ }
+
+navlight: {
+ scale: 6,
+ period: 1.5,
+
+ light: { loc: (-162, 0, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 162, 0, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 0,-162, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 0, 162, 0), pattern: 0xf0000000, type: 3 },
+
+ light: { loc: (-114,-114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: (-114, 114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 114,-114, 0), pattern: 0xf0000000, type: 3 },
+ light: { loc: ( 114, 114, 0), pattern: 0xf0000000, type: 3 },
+}
+
+navlight: {
+ scale: 6,
+ period: 1,
+
+ light: { loc: (-162, 0, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 162, 0, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 0,-162, 0), pattern: 0xf0000000, type: 2 },
+ light: { loc: ( 0, 162, 0), pattern: 0xf0000000, type: 2 },
+
+ light: { loc: (-114,-114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: (-114, 114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 114,-114, 0), pattern: 0x00f00000, type: 2 },
+ light: { loc: ( 114, 114, 0), pattern: 0x00f00000, type: 2 },
+}
+
+map: {
+ sprite: "map.pcx"
+}
+
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-150, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (160, 40, 100),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (230, -48, -180),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (220, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.3,
+ explosion_loc: (-160, 80, -90),
+
+ explosion_type: 20, // LARGE_BURST (custom)
+ explosion_time: 0.1,
+ explosion_loc: (-160, 80, -90),
+
+ final_type: 13, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris1.mag",
+ debris_loc: (180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 600,
+ debris_fire: (-10,0,0),
+ debris_fire: ( 15,20,10),
+
+ debris: "Debris2.mag",
+ debris_loc: (-160,-120,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 500,
+
+ debris: "Debris3.mag",
+ debris_loc: (-180,0,0),
+ debris_mass: 100e3,
+ debris_count: 1,
+ debris_life: 400,
+ debris_fire: ( 4,0,10),
+ debris_fire: (25,20,0),
+ debris_fire: ( 5,-10,-20),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,20,0),
+ debris_mass: 1,
+ debris_count: 8,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (10,0,0),
+ debris_mass: 1,
+ debris_count: 12,
+ debris_life: 15,
+ }
+
diff --git a/data/shatter/Ships/Ground_Units/Gnd_aaa1.def b/data/shatter/Ships/Ground_Units/Gnd_aaa1.def
new file mode 100644
index 0000000..a24c313
--- /dev/null
+++ b/data/shatter/Ships/Ground_Units/Gnd_aaa1.def
@@ -0,0 +1,64 @@
+SHIP
+
+name: "AAA 1"
+display_name: "AAA Gun"
+class: SAM
+hud_icon: "hud_aaa2.pcx"
+
+model: "Tower3-6.mag"
+
+mass: 5e3
+integrity: 5e3
+scale: 2
+acs: 1e6
+
+chase: (0, -200, 250)
+bridge: (0, 0, 32)
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 50e3
+ }
+
+weapon: {
+ type: "AAA Cannon",
+ abrv: Cannon,
+ muzzle: (-20, 0, 70),
+ muzzle: ( 20, 0, 70),
+
+ loc: (0, 160, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 20e3,
+ range: 50e3,
+ range: 100e3,
+
+ loc: (0, -16, 40),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 8, // SMOKE_TRAIL
+ final_loc: (0, 32, 0),
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+ }
+
+map: { sprite: "map_aaa1.pcx" }
+
diff --git a/data/shatter/Ships/Ground_Units/Gnd_aaa2.def b/data/shatter/Ships/Ground_Units/Gnd_aaa2.def
new file mode 100644
index 0000000..962f13e
--- /dev/null
+++ b/data/shatter/Ships/Ground_Units/Gnd_aaa2.def
@@ -0,0 +1,63 @@
+SHIP
+
+name: "AAA 2"
+display_name: "Quad AAA Gun"
+class: SAM
+hud_icon: "hud_aaa4.pcx"
+
+model: "Tower3-6.mag"
+
+mass: 5e3
+integrity: 5e3
+scale: 2
+acs: 1e6
+
+chase: (0, -200, 250)
+bridge: (0, 0, 32)
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 50e3
+ }
+
+weapon: {
+ type: "Quad AAA",
+ abrv: Cannon,
+
+ loc: (0, 160, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 20e3,
+ range: 50e3,
+ range: 100e3,
+
+ loc: (0, -16, 40),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 8, // SMOKE_TRAIL
+ final_loc: (0, 32, 0),
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+ }
+
+
+map: { sprite: "map_aaa2.pcx" }
+
diff --git a/data/shatter/Ships/Ground_Units/Gnd_sam1.def b/data/shatter/Ships/Ground_Units/Gnd_sam1.def
new file mode 100644
index 0000000..550aade
--- /dev/null
+++ b/data/shatter/Ships/Ground_Units/Gnd_sam1.def
@@ -0,0 +1,70 @@
+SHIP
+
+name: "SAM 1"
+display_name: SAM
+class: SAM
+hud_icon: "hud_sam.pcx"
+
+model: "SAMBase.mag"
+
+mass: 5e3
+integrity: 5e3
+scale: 2
+acs: 1e6
+
+chase: (0, -200, 250)
+bridge: (0, 0, 32)
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 50e3
+ }
+
+weapon: {
+ type: "SAM-1",
+ abrv: SAM,
+ muzzle: (-50, 10, -36),
+ muzzle: (-50, -9, -36),
+ muzzle: (-12, 10, -36),
+ muzzle: (-12, -9, -36),
+ muzzle: ( 12, 10, -36),
+ muzzle: ( 12, -9, -36),
+ muzzle: ( 50, 10, -36),
+ muzzle: ( 50, -9, -36),
+
+ loc: (0, 90, 0),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 20e3,
+ range: 50e3,
+ range: 100e3,
+
+ loc: (0, -16, 40),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 8, // SMOKE_TRAIL
+ final_loc: (0, 32, 0),
+
+ final_type: 10, // SMALL_EXPLOSION
+ final_loc: (0, 32, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 64, 0),
+ }
+
+map: { sprite: "map_sam1.pcx" }
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Avenger.def b/data/shatter/Ships/Marakan_Fighters/Avenger.def
new file mode 100644
index 0000000..9bc441e
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Avenger.def
@@ -0,0 +1,360 @@
+SHIP
+
+name: Avenger
+display_name: Avenger
+class: attack
+abrv: "F6F"
+description: "The F6F AVENGER attack fighter is a highly competent assault platform, capable of meeting most any opponent on even ground and providing an edge over the majority of enemy starfighters in service. The Avenger is the only Hegemony craft in current service that is optimized for the ground attack role in addition to supporting antiship mission profiles. The Avenger features a four-barrel Alpha cannon and eight (8) missile hardpoints. However, unlike the Alliance Thunderbolt, the Avenger does not have a gun turret for rear-quarter protection."
+
+hud_icon: "AvengerHud.pcx"
+
+detail_0: "Avenger_1opt.mag"
+feature_0: 25
+detail_1: "Avenger_2opt.mag"
+feature_1: 0.5
+
+mass: 27.4
+integrity: 3500
+vlimit: 250
+agility: 72
+air_factor: 0.25
+roll_rate: 600
+scale: 0.27
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.18
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 256, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 39, 7, -176),
+ port: ( 0, 25, -185),
+ port: (-39, 7, -176),
+ loc: ( 0, 0, -120),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-33, -21, 205),
+ muzzle: (-17, -24, 180),
+ muzzle: ( 17, -24, 180),
+ muzzle: ( 31, -21, 205),
+
+ loc: (0, 0, 160),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-111, -35, -135),
+
+ loc: (-111, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -93, -34, -130),
+
+ loc: ( -93, -34, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( -76, -33, -125),
+
+ loc: ( -76, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( -58, -32, -120),
+
+ loc: ( -58, -32, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-5",
+ muzzle: ( 58, -32, -120),
+
+ loc: ( 58, -32, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( 76, -33, -125),
+
+ loc: ( 76, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-7",
+ muzzle: ( 93, -34, -130),
+
+ loc: ( 93, -34, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-8",
+ muzzle: ( 111, -35, -135),
+
+ loc: ( 111, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 3, 3, 3, 3, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 0, 1, 4, 4, 1, 0, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, 1, -1, -1, 1, 0, -1) }
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 144),
+ end: (0, -45, 155)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -25, -64),
+ end: (-42, -50, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -25, -64),
+ end: ( 42, -50, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-161, -30, -67), fire: 0x0044}
+ port_fore: {loc:( 161, -30, -67), fire: 0x0084}
+
+ port_aft: {loc:(-161, -30,-134), fire: 0x0088}
+ port_aft: {loc:( 161, -30,-134), fire: 0x0048}
+
+ port_top: {loc:( -6, 11, 54), fire: 0x0210}
+ port_top: {loc:( 5, 11, 54), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -24, 59), fire: 0x0120}
+ port_bottom: {loc:( 14, -24, 59), fire: 0x0120}
+
+ port_top: {loc:(-161, -25, -81), fire: 0x0410}
+ port_top: {loc:(-161, -25,-121), fire: 0x0410}
+
+ port_top: {loc:( 161, -25, -81), fire: 0x0810}
+ port_top: {loc:( 161, -25,-121), fire: 0x0810}
+
+ port_bottom: {loc:(-161, -35, -81), fire: 0x0820}
+ port_bottom: {loc:(-161, -35,-121), fire: 0x0A20}
+
+ port_bottom: {loc:( 161, -35, -81), fire: 0x0420}
+ port_bottom: {loc:( 161, -35,-121), fire: 0x0620}
+
+ port_left: {loc:( -25, -9, 173), fire: 0x0081}
+ port_right: {loc:( 25, -9, 173), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.8,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.7,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 195
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 225
+}
+
+
+
+map: {
+ sprite: "AvengerMap0.pcx",
+ sprite: "AvengerMap1.pcx",
+ sprite: "AvengerMap2.pcx",
+ sprite: "AvengerMap3.pcx",
+ sprite: "AvengerMap4.pcx",
+ sprite: "AvengerMap5.pcx",
+ sprite: "AvengerMap6.pcx",
+ sprite: "AvengerMap7.pcx",
+}
+
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Cobra.def b/data/shatter/Ships/Marakan_Fighters/Cobra.def
new file mode 100644
index 0000000..ca8a868
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Cobra.def
@@ -0,0 +1,332 @@
+SHIP
+
+name: Cobra
+display_name: Cobra
+class: Attack
+abrv: "F-MK3"
+description: "The MARK-3 COBRA is a mid-wing configuration multi-role fighter spacecraft that was once commonly used by the Marakan Hegemony but now is mainly used by its client states. The Cobra is a tough and effective single-engine spacecraft that is frequently employed against all types of hardened ground targets, and may also fulfill a secondary role killing spaceborne platforms and starships. The Cobra is armed with twin nose-mounted Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter, antiship, and ground-attack weapon systems."
+
+
+hud_icon: "CobraHud.pcx"
+
+detail_0: "Cobra_0opt.mag"
+feature_0: 0.1
+detail_1: "Cobra_2opt.mag"
+feature_1: 1.5
+
+mass: 19.3
+integrity: 2800
+vlimit: 280
+agility: 70
+roll_rate: 600
+scale: 0.26
+acs: 1
+detet: 55e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.16
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow
+ thrust: 15,
+ augmenter: 25,
+ scale: 0.33,
+ port: (0, 0, -203),
+
+ loc: (0, 0, -190),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 8, 175),
+ muzzle: ( 7, 8, 175),
+
+ loc: (0, 0, -32),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-1",
+ muzzle: ( 129, -21, -70),
+ loc: ( 129, -21, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-2",
+ muzzle: ( 105, -18, -70),
+ loc: ( 105, -18, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( 65, -16, -70),
+ loc: ( 65, -16, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-4",
+ muzzle: ( 40, -14, -70),
+ loc: ( 40, -14, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: (-40, -14, -70),
+ loc: (-40, -14, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( -65, -16, -70),
+ loc: ( -65, -16, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-7",
+ muzzle: (-105, -18, -70),
+ loc: (-105, -18, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-8",
+ muzzle: (-128, -21, -70),
+ loc: (-128, -21, -30),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 2, 2, 2, 2, 0, 0) }
+loadout: { name: "Ship Strike", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -15, 104),
+ end: (0, -42, 118)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-28, -22, -48),
+ end: (-42, -42, -48)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 28, -22, -48),
+ end: ( 42, -42, -48)
+ },
+}
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-166, -15, -10), fire: 0x0044}
+ port_fore: {loc:( 167, -15, -10), fire: 0x0084}
+
+ port_aft: {loc:(-166, -15, -70), fire: 0x0088}
+ port_aft: {loc:( 167, -15, -70), fire: 0x0048}
+
+ port_top: {loc:( -29, 2,-117), fire: 0x0110}
+ port_top: {loc:( 29, 2,-117), fire: 0x0110}
+
+ port_top: {loc:( -24, 2, 65), fire: 0x0210}
+ port_top: {loc:( 24, 2, 65), fire: 0x0210}
+
+ port_bottom: {loc:( -29, -8,-117), fire: 0x0120}
+ port_bottom: {loc:( 29, -8,-117), fire: 0x0120}
+
+ port_bottom: {loc:( -24, -8, 65), fire: 0x0120}
+ port_bottom: {loc:( 24, -8, 65), fire: 0x0120}
+
+ port_top: {loc:(-166, -9, -23), fire: 0x0410}
+ port_top: {loc:(-166, -9, -56), fire: 0x0410}
+
+ port_top: {loc:( 167, -9, -23), fire: 0x0810}
+ port_top: {loc:( 167, -9, -56), fire: 0x0810}
+
+ port_bottom: {loc:(-166, -20, -23), fire: 0x0820}
+ port_bottom: {loc:(-166, -20, -56), fire: 0x0820}
+
+ port_bottom: {loc:( 167, -20, -23), fire: 0x0420}
+ port_bottom: {loc:( 167, -20, -56), fire: 0x0420}
+}
+
+
+death_spiral: {
+ time: 2.8,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.3,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (2,0,-3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 1.9
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,6)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "CobraMap0.pcx",
+ sprite: "CobraMap1.pcx",
+ sprite: "CobraMap2.pcx",
+ sprite: "CobraMap3.pcx",
+ sprite: "CobraMap4.pcx",
+ sprite: "CobraMap5.pcx",
+ sprite: "CobraMap6.pcx",
+ sprite: "CobraMap7.pcx",
+}
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Intruder.def b/data/shatter/Ships/Marakan_Fighters/Intruder.def
new file mode 100644
index 0000000..a313c46
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Intruder.def
@@ -0,0 +1,309 @@
+SHIP
+
+name: Intruder
+display_name: Intruder
+class: fighter
+abrv: "F4F"
+description: "The F4F INTRUDER is the latest edition single-seat intercept fighter craft used by the Marakan Hegemony. More expensive than the older Viper models, the Intruder remains a lightweight and highly maneuverable tactical fighter. It is armed with twin Alpha particle cannon, and four underwing hard points capable of mounting a variety of antiship and anti-fighter ordnance. The Intruder is usually tasked with patrol, intercept, and escort mission profiles, but may also serve as a strike fighter in a pinch."
+
+hud_icon: "IntruderHud.pcx"
+
+detail_0: "Interceptor_1opt.mag"
+feature_0: 25
+detail_1: "Interceptor_2opt.mag"
+feature_1: 0.5
+
+mass: 25
+integrity: 2500
+vlimit: 250
+agility: 75
+air_factor: 0.25
+roll_rate: 600
+scale: 0.25
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.15
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 240, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 28, 11, -178),
+ port: (-28, 11, -178),
+ loc: ( 0, 0, 0),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-24, -6, 145),
+ muzzle: ( 24, -6, 145),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: ( -93, -27, -125),
+
+ loc: ( -93, -27, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -62, -25, -120),
+
+ loc: ( -62, -25, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: ( 62, -25, -120),
+
+ loc: ( 62, -25, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: ( 93, -27, -125),
+
+ loc: ( 93, -27, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 2, 2, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2, 2, 2) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 134),
+ end: (0, -50, 148)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -30, -64),
+ end: (-45, -60, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -30, -64),
+ end: ( 45, -60, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-123, -22, -69), fire: 0x0044}
+ port_fore: {loc:( 123, -22, -69), fire: 0x0084}
+
+ port_aft: {loc:(-123, -22,-129), fire: 0x0088}
+ port_aft: {loc:( 123, -22,-129), fire: 0x0048}
+
+ port_top: {loc:( -5, 12, -99), fire: 0x0110}
+ port_top: {loc:( 5, 12, -99), fire: 0x0110}
+
+ port_top: {loc:( -5, 18, 35), fire: 0x0210}
+ port_top: {loc:( 5, 18, 35), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -8, 35), fire: 0x0120}
+ port_bottom: {loc:( 14, -8, 35), fire: 0x0120}
+
+ port_top: {loc:(-123, -17, -82), fire: 0x0410}
+ port_top: {loc:(-123, -17,-117), fire: 0x0410}
+
+ port_top: {loc:( 123, -17, -82), fire: 0x0810}
+ port_top: {loc:( 123, -17,-117), fire: 0x0810}
+
+ port_bottom: {loc:(-123, -27, -82), fire: 0x0820}
+ port_bottom: {loc:(-123, -27,-117), fire: 0x0A20}
+
+ port_bottom: {loc:( 123, -27, -82), fire: 0x0420}
+ port_bottom: {loc:( 123, -27,-117), fire: 0x0620}
+
+ port_left: {loc:( -15, 2, 128), fire: 0x0081}
+ port_right: {loc:( 15, 2, 128), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 2.9,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "IntruderMap0.pcx",
+ sprite: "IntruderMap1.pcx",
+ sprite: "IntruderMap2.pcx",
+ sprite: "IntruderMap3.pcx",
+ sprite: "IntruderMap4.pcx",
+ sprite: "IntruderMap5.pcx",
+ sprite: "IntruderMap6.pcx",
+ sprite: "IntruderMap7.pcx",
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Jackal.def b/data/shatter/Ships/Marakan_Fighters/Jackal.def
new file mode 100644
index 0000000..b9859af
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Jackal.def
@@ -0,0 +1,210 @@
+SHIP
+
+name: Jackal
+display_name: Jackal
+class: LCA
+abrv: LCA
+description: "The JACKAL armored landing craft (LCA) is the mainstay of Hegemony heavy-lift capacity, and the only Marakan craft capable of atmospheric VTOL. The Jackal is commonly used to ferry personnel and equipment between groundside bases and spaceborne platforms, and also serves a secondary role in heavy assault profiles. The Jackal is armed with twin heavy Vulcan cannon, but is limited to standard decoy launchers for self-defense."
+
+hud_icon: "JackalHud.pcx"
+
+detail_0: "LCA_1opt.mag"
+feature_0: 100
+detail_1: "LCA_2opt.mag"
+feature_1: 3
+
+
+mass: 92
+integrity: 5250
+vlimit: 220
+agility: 25
+roll_rate: 350
+scale: 0.275
+acs: 1
+
+trans_x: 2500
+trans_y: 2500
+trans_z: 2500
+
+arcade_drag: 0.2
+drag: 4e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 5e-3
+CD: 1e-4
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow
+ thrust: 75,
+ scale: 0.55,
+ port: (-147, 32, -160),
+ port: (-147,-32, -160),
+ port: ( 147, 32, -160),
+ port: ( 147,-32, -160),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+thruster: {
+ design: Thruster
+ scale: 0.35
+ port: (-34, -32, -10)
+ port: ( 34, -32, -10)
+ port: (-34, -32, -128)
+ port: ( 34, -32, -128)
+
+ loc: (0, -32, -128)
+ size: 24
+ hull_factor: 0.3
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "zgear_r.mag",
+ start: ( 34, -30, -10)
+ end: ( 74, -60, -10)
+ },
+
+ gear: {
+ model: "zgear_l.mag",
+ start: (-34, -30, -10)
+ end: (-74, -60, -10)
+ },
+
+ gear: {
+ model: "zgear_r.mag",
+ start: ( 34, -30, -140),
+ end: ( 74, -60, -140)
+ },
+
+ gear: {
+ model: "zgear_l.mag",
+ start: (-34, -30, -140),
+ end: (-74, -60, -140)
+ },
+}
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Port Cannon",
+ abrv: "Gun-1",
+ muzzle: (-8, -26, 182),
+
+ loc: (-8, -26, 160),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+weapon: {
+ type: "Vulcan Cannon",
+ design: "Bolt Weapon",
+ name: "Starboard Cannon",
+ abrv: "Gun-2",
+ muzzle: ( 8, -26, 182),
+
+ loc: ( 8, -26, 160),
+ size: 24,
+ hull_factor: 0.3
+ }
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+death_spiral: {
+ time: 1.2,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1.0,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+ }
+
+map: {
+ sprite: "JackalMap0.pcx",
+ sprite: "JackalMap1.pcx",
+ sprite: "JackalMap2.pcx",
+ sprite: "JackalMap3.pcx",
+ sprite: "JackalMap4.pcx",
+ sprite: "JackalMap5.pcx",
+ sprite: "JackalMap6.pcx",
+ sprite: "JackalMap7.pcx",
+}
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Raptor.def b/data/shatter/Ships/Marakan_Fighters/Raptor.def
new file mode 100644
index 0000000..2ddb220
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Raptor.def
@@ -0,0 +1,360 @@
+SHIP
+
+name: Raptor
+display_name: Raptor
+class: fighter
+abrv: "F5A"
+description: "The F5A RAPTOR is a swept-delta configuration multi-role fighter spacecraft commonly used by the Marakan Hegemony. It is fast and sturdy and has proven itself in spaceborne and airborne combat as well as in surface attack missions. The Raptor is armed with twin Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter ordnance. The Razor's heavy delta wing design also gives it the capacity to mount a variety of air-to-ground and antiship weapons."
+
+hud_icon: "RaptorHud.pcx"
+
+detail_0: "Raptor_1opt.mag"
+feature_0: 25
+detail_1: "Raptor_2opt.mag"
+feature_1: 0.5
+
+mass: 25
+integrity: 2500
+vlimit: 250
+agility: 75
+air_factor: 0.25
+roll_rate: 600
+scale: 0.25
+acs: 1.0
+detet: 50e3
+
+trans_x: 2200
+trans_y: 2200
+trans_z: 2200
+
+arcade_drag: 0.15
+drag: 5.5e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 8.0e-3
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 240, 0)
+
+power: {
+ type: Fusion,
+ name: "Fusion Reactor",
+ design: "Fusion Reactor",
+ max_output: 75,
+
+ loc: (0, 0, 0),
+ size: 10,
+ hull_factor: 0.5,
+}
+
+drive: {
+ type: Yellow
+ design: "Plasma Drive",
+ thrust: 17,
+ augmenter: 50,
+ scale: 0.3,
+ port: ( 38, 2, -136),
+ port: (-38, 2, -136),
+ loc: ( 0, 0, 0),
+ size: 24,
+ hull_factor: 0.5,
+}
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-17, -19, 170),
+ muzzle: ( 17, -19, 170),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-120, -49, -140),
+
+ loc: (-120, -49, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( -99, -47, -130),
+
+ loc: ( -99, -47, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( -79, -44, -120),
+
+ loc: ( -79, -44, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-4",
+ muzzle: ( -60, -41, -110),
+
+ loc: ( -60, -41, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ type: "Rockets",
+ abrv: "STA-5",
+ muzzle: ( 60, -41, -110),
+
+ loc: ( 60, -41, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: ( 79, -44, -120),
+
+ loc: ( 79, -44, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-7",
+ muzzle: ( 99, -45, -130),
+
+ loc: ( 99, -45, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Vector",
+ abrv: "STA-8",
+ muzzle: ( 120, -49, -140),
+
+ loc: ( 120, -49, -100),
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: (-1, 0, 0, -1, -1, 0, 0, -1) }
+loadout: { name: "ACM Short Range", stations: (-1, 0, 0, 1, 1, 0, 0, -1) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 1, 3, 3, 3, 3, 1, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 1, 2, 2, 2, 2, 1, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 2, 2, 2, 2, 2, 2, 0) }
+loadout: { name: "Rockets", stations: ( 0, 0, 1, 4, 4, 1, 0, 0) }
+loadout: { name: "Scout/Recon", stations: (-1, 0, 1, -1, -1, 1, 0, -1) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (0, 0, 40),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+ loc: (0, 0, 90),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, -10),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -25, 134),
+ end: (0, -50, 148)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-20, -30, -64),
+ end: (-45, -60, -64),
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 20, -30, -64),
+ end: ( 45, -60, -64),
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-154, -46, -90), fire: 0x0044}
+ port_fore: {loc:( 154, -46, -90), fire: 0x0084}
+
+ port_aft: {loc:(-154, -46,-150), fire: 0x0088}
+ port_aft: {loc:( 154, -46,-150), fire: 0x0048}
+
+ port_top: {loc:( 0, 6, -92), fire: 0x0110}
+
+ port_top: {loc:( -6, 6, 54), fire: 0x0210}
+ port_top: {loc:( 5, 6, 54), fire: 0x0210}
+
+ port_bottom: {loc:( -14, -18, 59), fire: 0x0120}
+ port_bottom: {loc:( 14, -18, 59), fire: 0x0120}
+
+ port_top: {loc:(-154, -41,-104), fire: 0x0410}
+ port_top: {loc:(-154, -41,-138), fire: 0x0410}
+
+ port_top: {loc:( 154, -41,-104), fire: 0x0810}
+ port_top: {loc:( 154, -41,-138), fire: 0x0810}
+
+ port_bottom: {loc:(-154, -51,-104), fire: 0x0820}
+ port_bottom: {loc:(-154, -51,-138), fire: 0x0A20}
+
+ port_bottom: {loc:( 154, -51,-104), fire: 0x0420}
+ port_bottom: {loc:( 154, -51,-138), fire: 0x0620}
+
+ port_left: {loc:( -25, -9, 139), fire: 0x0081}
+ port_right: {loc:( 25, -9, 139), fire: 0x0042}
+}
+
+
+death_spiral: {
+ time: 3.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.9,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.7,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "RaptorMap0.pcx",
+ sprite: "RaptorMap1.pcx",
+ sprite: "RaptorMap2.pcx",
+ sprite: "RaptorMap3.pcx",
+ sprite: "RaptorMap4.pcx",
+ sprite: "RaptorMap5.pcx",
+ sprite: "RaptorMap6.pcx",
+ sprite: "RaptorMap7.pcx",
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Razor.def b/data/shatter/Ships/Marakan_Fighters/Razor.def
new file mode 100644
index 0000000..c309d02
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Razor.def
@@ -0,0 +1,337 @@
+SHIP
+
+name: Razor
+display_name: Razor
+class: Fighter
+abrv: "F-MK2"
+description: "The MARK-2 RAZOR is a forward-delta configuration multi-role fighter spacecraft commonly used by the Marakan Hegemony and its client states. It is fast and sturdy and has proven itself in spaceborne and airborne combat as well as in surface attack missions. Like the Mark 1 Viper, the Razor is armed with twin Alpha particle cannon, along with eight underwing hard points capable of mounting several types of anti-fighter ordnance. The Razor's heavy delta wing design also gives it the capacity to mount a variety of air-to-ground and antiship weapons."
+
+hud_icon: "RazorHud.pcx"
+
+detail_0: "Razor_1opt.mag"
+feature_0: 0.1
+detail_1: "Razor_2opt.mag"
+feature_1: 1.5
+
+mass: 15
+integrity: 2550
+vlimit: 290
+agility: 80
+roll_rate: 750
+scale: 0.23
+acs: 1
+detet: 50e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.14
+drag: 5.0e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 1.1e-2
+CD: 1.0e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow,
+ thrust: 16,
+ augmenter: 30,
+ scale: 0.3,
+ port: (0, 0, -166),
+
+ loc: (0, 0, -120),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 9, 190),
+ muzzle: ( 7, 9, 190),
+
+ loc: (0, 0, 32),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-1",
+ muzzle: ( 126, -29, -50),
+
+ loc: ( 126, -29, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-2",
+ muzzle: ( 102, -26, -50),
+
+ loc: ( 102, -26, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-3",
+ muzzle: ( 62, -21, -8),
+
+ loc: ( 62, -21, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-4",
+ muzzle: ( 36, -19, -8),
+
+ loc: ( 36, -19, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-5",
+ muzzle: (-36, -19, -8),
+
+ loc: (-36, -19, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ type: "Hammer",
+ abrv: "STA-6",
+ muzzle: (-62, -21, -8),
+
+ loc: (-62, -21, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-7",
+ muzzle: (-102, -26, -50),
+
+ loc: (-102, -26, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ abrv: "STA-8",
+ muzzle: (-126, -29, -50),
+
+ loc: (-126, -29, 0),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0, -1, -1, -1, -1, 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 2, 2, 2, 2, 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 0, 1, 1, 1, 1, 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -14, 113),
+ end: (0, -40, 127)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-25, -20, 10),
+ end: (-45, -40, 10)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 25, -20, 10),
+ end: ( 45, -40, 10)
+ },
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow
+ loc: (0, -52,0),
+ size: 32,
+ hull_factor: 0.8
+ scale: 0.12,
+
+ port_fore: {loc:(-159, -24, 5), fire: 0x0044}
+ port_fore: {loc:( 159, -24, 5), fire: 0x0084}
+
+ port_aft: {loc:(-159, -24, -54), fire: 0x0088}
+ port_aft: {loc:( 159, -24, -54), fire: 0x0048}
+
+ port_top: {loc:( -39, -13,-125), fire: 0x0110}
+ port_top: {loc:( 39, -13,-125), fire: 0x0110}
+
+ port_top: {loc:( -39, -4, 127), fire: 0x0210}
+ port_top: {loc:( 39, -4, 127), fire: 0x0210}
+
+ port_bottom: {loc:( -39, -24,-125), fire: 0x0120}
+ port_bottom: {loc:( 39, -24,-125), fire: 0x0120}
+
+ port_bottom: {loc:( -39, -15, 127), fire: 0x0120}
+ port_bottom: {loc:( 39, -15, 127), fire: 0x0120}
+
+ port_top: {loc:(-159, -19, -8), fire: 0x0410}
+ port_top: {loc:(-159, -19, -41), fire: 0x0410}
+
+ port_top: {loc:( 159, -19, -8), fire: 0x0810}
+ port_top: {loc:( 159, -19, -41), fire: 0x0810}
+
+ port_bottom: {loc:(-159, -29, -8), fire: 0x0820}
+ port_bottom: {loc:(-159, -29, -41), fire: 0x0820}
+
+ port_bottom: {loc:( 159, -29, -8), fire: 0x0420}
+ port_bottom: {loc:( 159, -29, -41), fire: 0x0420}
+}
+
+
+
+death_spiral: {
+ time: 3.2,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.5,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.2,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "RazorMap0.pcx",
+ sprite: "RazorMap1.pcx",
+ sprite: "RazorMap2.pcx",
+ sprite: "RazorMap3.pcx",
+ sprite: "RazorMap4.pcx",
+ sprite: "RazorMap5.pcx",
+ sprite: "RazorMap6.pcx",
+ sprite: "RazorMap7.pcx",
+}
+
diff --git a/data/shatter/Ships/Marakan_Fighters/Viper.def b/data/shatter/Ships/Marakan_Fighters/Viper.def
new file mode 100644
index 0000000..b6c08b2
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Fighters/Viper.def
@@ -0,0 +1,273 @@
+SHIP
+
+name: Viper
+display_name: Viper
+class: Fighter
+abrv: "F-MK1"
+description: "The MARK-1 VIPER is an older model single-seat intercept fighter craft used by the Marakan Hegemony and many of its client states. Designed to be inexpensive, lightweight, and highly maneuverable, the Viper has become ubiquitous as a versatile tactical fighter. It is armed with twin Alpha particle cannon, and six underwing hard points capable of mounting a variety of anti-fighter ordnance. The Viper is often asked to perform patrol, intercept, and escort mission profiles."
+
+hud_icon: "ViperHud.pcx"
+
+detail_0: "Viper_1opt.mag"
+feature_0: 0.1
+detail_1: "Viper_2opt.mag"
+feature_1: 1.5
+
+mass: 14
+integrity: 2050
+vlimit: 280
+agility: 60
+roll_rate: 550
+scale: 0.23
+acs: 1
+detet: 50e3
+
+trans_x: 2000
+trans_y: 2000
+trans_z: 2000
+
+arcade_drag: 0.125
+drag: 5.0e-5
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 9.0e-3
+CD: 1.0e-1
+stall: 0.40
+
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+ }
+
+drive: {
+ type: Yellow,
+ thrust: 16,
+ augmenter: 30,
+ scale: 0.32,
+ port: (0, 0, -166),
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-7, 7, 190),
+ muzzle: ( 7, 7, 190),
+
+ loc: (0, 0, 120),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: ( 103, -39, -118),
+
+ loc: ( 103, -39, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( 83, -35, -118),
+
+ loc: ( 83, -35, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-3",
+ muzzle: ( 51, -25, -80),
+
+ loc: ( 51, -25, -60),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (-51, -25, -80),
+
+ loc: (-51, -25, -60),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-5",
+ muzzle: ( -84, -33, -118),
+
+ loc: ( -84, -33, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+hardpoint: {
+ type: "Archer",
+ type: "Harpoon",
+ abrv: "STA-6",
+ muzzle: (-103, -39, -118),
+
+ loc: (-103, -39, -100),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0, -1, -1, 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ground Strike", stations: ( 0, 0, 0, 0, 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 0, 0, 1, 1, 0, 0) }
+loadout: { name: "Hvy Ship Strike", stations: ( 0, 1, 1, 1, 1, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -24, 0),
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.2
+ }
+
+sensor: {
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+ }
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+ }
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+ }
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+ }
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "GearNose0.mag",
+ start: (0, -14, 73),
+ end: (0, -40, 87)
+ },
+
+ gear: {
+ model: "GearLeft0.mag",
+ start: (-30, -12, -40),
+ end: (-50, -40, -40)
+ },
+
+ gear: {
+ model: "GearRight0.mag",
+ start: ( 30, -12, -40),
+ end: ( 50, -40, -40)
+ },
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 0.6,
+ explosion_loc: (0, 0, -28),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.4,
+ explosion_loc: (-10, 10, 30),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -12),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -12),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 196
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 225
+}
+
+
+map: {
+ sprite: "ViperMap0.pcx",
+ sprite: "ViperMap1.pcx",
+ sprite: "ViperMap2.pcx",
+ sprite: "ViperMap3.pcx",
+ sprite: "ViperMap4.pcx",
+ sprite: "ViperMap5.pcx",
+ sprite: "ViperMap6.pcx",
+ sprite: "ViperMap7.pcx",
+}
+
diff --git a/data/shatter/Ships/Marakan_Ships/Broadsword.def b/data/shatter/Ships/Marakan_Ships/Broadsword.def
new file mode 100644
index 0000000..9c2b34d
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Broadsword.def
@@ -0,0 +1,456 @@
+SHIP
+
+name: Broadsword
+display_name: Broadsword
+class: Destroyer
+description: "The DD-3C21 BROADSWORD class of destroyers represents the pinnacle of Hegemony warship technology; big, fast, and ready to deliver punishing amounts of damage to all who stand in their way. The Broadsword class ships extend the basic armament of the older Volnaris class by doubling the number of heavy x-ray laser batteries to four. As with many Hegemony designs, these weapons are externally mounted and vulnerable to attack from the flanks."
+
+hud_icon: "BroadHud.pcx"
+
+detail_0: "Volnaris_0.mag"
+feature_0: 1000
+detail_1: "Broadsword_1opt.mag"
+feature_1: 40
+detail_2: "Broadsword_2opt.mag"
+feature_2: 20
+
+mass: 27.6e3
+agility: 2 //3.5
+vlimit: 240
+roll_rate: 7
+integrity: 25e3
+scale: 3.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 8000,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 1.5e3,
+ scale: 7,
+ port: ( 0, -51, -398),
+ port: ( 0, -96, -351),
+
+ loc: ( 0, 0, -240),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+// fore reverse
+ port_fore: {loc:(-159,-24,4),fire: 0x0040},
+ port_fore: {loc:(159,-24,4),fire: 0x0080},
+
+ port_aft: {loc:(-159,-24,-55),fire: 0x0080},
+ port_aft: {loc:(159,-24,-55),fire: 0x0040},
+
+ port_fore: {loc:(26,8,-28),fire: 0x0004},
+ port_fore: {loc:(27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-26,8,-28),fire: 0x0004},
+ port_fore: {loc:(-27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-3,-23,-28),fire: 0x0004},
+ port_fore: {loc:(3,-23,-28),fire: 0x0004},
+
+ port_aft: {loc:(26,8,-79),fire: 0x0008},
+ port_aft: {loc:(27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-26,8,-79),fire: 0x0008},
+ port_aft: {loc:(-27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-3,-23,-79),fire: 0x0008},
+ port_aft: {loc:(3,-23,-79),fire: 0x0008},
+
+// Vertical
+
+ port_top: {loc:(160,-18,-8),fire: 0x0810},
+ port_top: {loc:(-160,-18,-8),fire: 0x0410},
+ port_top: {loc:(160,-18,-41),fire: 0x0810},
+ port_top: {loc:(-160,-18,-41),fire: 0x0410},
+
+ port_bottom: {loc:(160,-29,-8),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-8),fire: 0x0820},
+ port_bottom: {loc:(160,-29,-41),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-41),fire: 0x0820},
+
+ port_top: {loc:(39,-14,-125),fire: 0x0100},
+ port_top: {loc:(-39,-14,-125),fire: 0x0100},
+ port_bottom: {loc:(-39,-23,-125),fire: 0x0200},
+ port_bottom: {loc:(39,-23,-125),fire: 0x0200},
+
+ port_top: {loc:(39,-5,127),fire: 0x0200},
+ port_top: {loc:(-39,-5,127),fire: 0x0200},
+ port_bottom: {loc:(-39,-14,127),fire: 0x0100},
+ port_bottom: {loc:(39,-14,127),fire: 0x0100},
+
+// Side Translantion
+
+ port_right: {loc:(167,-25,-11),fire: 0x0002},
+ port_right: {loc:(167,-25,-38),fire: 0x0002},
+
+ port_left: {loc:(-167,-25,-11),fire: 0x0001},
+ port_left: {loc:(-167,-25,-38),fire: 0x0001},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.75
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4000,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-55, -33, 470),
+
+ loc: (-45, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 54, -33, 470),
+
+ loc: ( 44, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-55, -55, 448),
+
+ loc: (-45, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 54, -55, 448),
+
+ loc: ( 44, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Missile Array",
+ abrv: "Nike",
+ muzzle: ( -25, -1, 422),
+ muzzle: ( 0, -1, 422),
+ muzzle: ( 25, -1, 422),
+
+ loc: ( 0, -1, 220),
+
+ size: 80,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-1",
+ abrv: "Rail-1",
+
+ loc: (0, 73,-27)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-2",
+ abrv: "Rail-2",
+
+ azimuth: 180
+ loc: (0, 71,-267)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+ }
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 180
+ elevation: -180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, -110,96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 64,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 14,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.1, loc: ( 20, 80, -190) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "BroadswordDebris.mag", loc: (0,0,200), mass: 28e3, count: 1, life: 380,
+ fire: (60,60,20), fire: (-60,-30,-10) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 55, count: 25, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 64, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 43, count: 15, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Dragon.def b/data/shatter/Ships/Marakan_Ships/Dragon.def
new file mode 100644
index 0000000..f951871
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Dragon.def
@@ -0,0 +1,492 @@
+SHIP
+
+name: Dragon
+display_name: Dragon
+class: Carrier
+description: "The CV-7A1 DRAGON class carriers represent the pinnacle of Hegemony military starship design. Though somewhat slow and unweildy, the Dragons are nevertheless enormously powerful. Their huge complement of embarked fighter craft give them unparalleled force projection capability; a single Dragon-class carrier battle group could easily conquer a colonial world."
+
+hud_icon: "DragonHud.pcx"
+
+detail_0: "Dragon_0opt.mag"
+feature_0: 1000
+detail_1: "Dragon_1opt.mag"
+feature_1: 64
+detail_2: "Dragon_2opt.mag"
+feature_2: 32
+
+mass: 937.6e3
+agility: 1.3
+vlimit: 210
+roll_rate: 7
+integrity: 68e3
+scale: 3
+acs: 1.5
+
+trans_x: 5e6
+trans_y: 1e6
+trans_z: 3e6
+
+arcade_drag: 4.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+explosion_scale: 4
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 95e3,
+
+ loc: (0, -40, -50),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: "Drive",
+ design: "Plasma Drive",
+ thrust: 38e3,
+ scale: 10,
+
+ port: ( 0, -315, -730)
+ port: ( 0, -400, -730)
+ port: (-440, 67, -730)
+ port: (-440, -24, -730)
+
+ loc: (0, 0, -120),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -90, -50),
+ size: 60,
+ hull_factor: 0.8
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ design: "Auxilliary Reactor",
+ max_output: 5e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+
+ muzzle: (-283, 6, 1650),
+
+ loc: (-30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+
+ muzzle: ( 283, 6, 1650),
+
+ loc: (30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-6",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-7",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-8",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-9",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-10",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: ( 55, -8, 576),
+ end: (2e3, 0, 2500),
+
+ spot: { loc: ( 30, -8, 550), filter: 0x7 },
+ spot: { loc: ( 80, -8, 550), filter: 0x7 },
+ spot: { loc: ( 55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: (-55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: (-55, -8, 576),
+ end: (-2e3, 0, 2500),
+
+ spot: { loc: (-30, -8, 550), filter: 0x7 },
+ spot: { loc: (-80, -8, 550), filter: 0x7 },
+ spot: { loc: (-55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 3",
+ abrv: "Deck 3",
+ design: "Flight Deck",
+ loc: ( 160, 0, 192),
+ cam: ( 160, 0, 128),
+ start: ( 1088, 4, -512),
+ end: ( 160, 0, 192),
+
+ approach: ( 200, 0, -2000),
+ approach: ( 1000, 0, -1000),
+ approach: ( 1000, 0, 1000),
+ approach: ( 250, 0, 2500),
+
+ spot: ( 160, 0, 192),
+ azimuth: 53,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 15,
+
+ size: 40,
+ hull_factor: 0.5,
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ abrv: Batt
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "DragonMap0.pcx",
+ sprite: "DragonMap1.pcx",
+ sprite: "DragonMap2.pcx",
+ sprite: "DragonMap3.pcx",
+ sprite: "DragonMap4.pcx",
+ sprite: "DragonMap5.pcx",
+ sprite: "DragonMap6.pcx",
+ sprite: "DragonMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 12, loc: (0,0,-100), final: true } // Large burst
+ explosion: { type: 13, loc: (0,0, 0), final: true } // Nuke
+ explosion: { type: 13, loc: (0,0,-200), final: true } // Nuke
+
+ debris: { model: "DragonDebris1.mag", loc: (-240,-20,0), mass: 48e3, count: 1, life: 360 }
+ debris: { model: "DragonDebris2.mag", loc: (0,0,600), mass: 298e3, count: 1, life: 380,
+ fire: (-110,0,-600), fire: (20,20,-450), fire: (100,-10,-500) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 30 }
+
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Broadsword.def b/data/shatter/Ships/Marakan_Ships/Hulk-Broadsword.def
new file mode 100644
index 0000000..40095a8
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Broadsword.def
@@ -0,0 +1,401 @@
+SHIP
+
+name: "Hulk-Broadsword"
+display_name: Broadsword
+class: Destroyer
+
+hud_icon: "BroadHud.pcx"
+
+model: "Hulk-Broadsword.mag"
+
+mass: 27.6e3
+agility: 2 //3.5
+vlimit: 240
+roll_rate: 7
+integrity: 25e3
+scale: 3.5
+acs: 1.2
+
+trans_x: 300e3
+trans_y: 100e3
+trans_z: 300e3
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 8000,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 1.5e3,
+ scale: 7,
+ port: ( 0, -51, -398),
+ port: ( 0, -96, -351),
+
+ loc: ( 0, 0, -240),
+ size: 48,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.75
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4000,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-55, -33, 470),
+
+ loc: (-45, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 54, -33, 470),
+
+ loc: ( 44, -33, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 3",
+ abrv: "Laser-3",
+ muzzle: (-55, -55, 448),
+
+ loc: (-45, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 4",
+ abrv: "Laser-4",
+ muzzle: ( 54, -55, 448),
+
+ loc: ( 44, -55, 340),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Nike",
+ design: "Missile Weapon",
+ name: "Missile Array",
+ abrv: "Nike",
+ muzzle: ( -25, -1, 422),
+ muzzle: ( 0, -1, 422),
+ muzzle: ( 25, -1, 422),
+
+ loc: ( 0, -1, 220),
+
+ size: 80,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-1",
+ abrv: "Rail-1",
+
+ loc: (0, 73,-27)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-5"
+ design: "Bolt Weapon",
+ name: "Rail-2",
+ abrv: "Rail-2",
+
+ azimuth: 180
+ loc: (0, 71,-267)
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+ }
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 31,81,299),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 180
+ elevation: -180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, -110,96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 64,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 14,-486),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.1, loc: ( 20, 80, -190) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "BroadswordDebris.mag", loc: (0,0,200), mass: 28e3, count: 1, life: 380,
+ fire: (60,60,20), fire: (-60,-30,-10) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 55, count: 25, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 64, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 43, count: 15, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Dragon.def b/data/shatter/Ships/Marakan_Ships/Hulk-Dragon.def
new file mode 100644
index 0000000..567e452
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Dragon.def
@@ -0,0 +1,487 @@
+SHIP
+
+name: "Hulk-Dragon"
+display_name: Dragon
+class: Carrier
+
+hud_icon: "DragonHud.pcx"
+
+model: "Hulk-Dragon.mag"
+
+mass: 937.6e3
+agility: 1.3
+vlimit: 210
+roll_rate: 7
+integrity: 68e3
+scale: 3
+acs: 1.5
+
+trans_x: 5e6
+trans_y: 1e6
+trans_z: 3e6
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+explosion_scale: 4
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 95e3,
+
+ loc: (0, -40, -50),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ name: "Plasma Drive",
+ abrv: "Drive",
+ design: "Plasma Drive",
+ thrust: 38e3,
+ scale: 10,
+
+ port: ( 0, -315, -730)
+ port: ( 0, -400, -730)
+ port: (-440, 67, -730)
+ port: (-440, -24, -730)
+
+ loc: (0, 0, -120),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -90, -50),
+ size: 60,
+ hull_factor: 0.8
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ design: "Auxilliary Reactor",
+ max_output: 5e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+
+ muzzle: (-283, 6, 1650),
+
+ loc: (-30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+
+ muzzle: ( 283, 6, 1650),
+
+ loc: (30, -15,330),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, 118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: ( 90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB-6",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-90, 155, -1250),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-7",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-8",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: (-200, 118, 1150),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-9",
+
+ azimuth: 90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 0.0,
+ aim_el_min: -75.0,
+
+ loc: ( 200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "PDB-10",
+
+ azimuth: -90
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-200, -118, 200),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: ( 55, -8, 576),
+ end: (2e3, 0, 2500),
+
+ spot: { loc: ( 30, -8, 550), filter: 0x7 },
+ spot: { loc: ( 80, -8, 550), filter: 0x7 },
+ spot: { loc: ( 55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 2",
+ abrv: "Deck 2",
+ design: "Flight Deck",
+ loc: (-55, 0, 610),
+ cam: ( 0, 0, 610),
+ start: (-55, -8, 576),
+ end: (-2e3, 0, 2500),
+
+ spot: { loc: (-30, -8, 550), filter: 0x7 },
+ spot: { loc: (-80, -8, 550), filter: 0x7 },
+ spot: { loc: (-55, -8, 550), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 3",
+ abrv: "Deck 3",
+ design: "Flight Deck",
+ loc: ( 160, 0, 192),
+ cam: ( 160, 0, 128),
+ start: ( 1088, 4, -512),
+ end: ( 160, 0, 192),
+
+ approach: ( 200, 0, -2000),
+ approach: ( 1000, 0, -1000),
+ approach: ( 1000, 0, 1000),
+ approach: ( 250, 0, 2500),
+
+ spot: ( 160, 0, 192),
+ azimuth: 53,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 15,
+
+ size: 40,
+ hull_factor: 0.5,
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ abrv: Batt
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "DragonMap0.pcx",
+ sprite: "DragonMap1.pcx",
+ sprite: "DragonMap2.pcx",
+ sprite: "DragonMap3.pcx",
+ sprite: "DragonMap4.pcx",
+ sprite: "DragonMap5.pcx",
+ sprite: "DragonMap6.pcx",
+ sprite: "DragonMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 12, loc: (0,0,-100), final: true } // Large burst
+ explosion: { type: 13, loc: (0,0, 0), final: true } // Nuke
+ explosion: { type: 13, loc: (0,0,-200), final: true } // Nuke
+
+ debris: { model: "DragonDebris1.mag", loc: (-240,-20,0), mass: 48e3, count: 1, life: 360 }
+ debris: { model: "DragonDebris2.mag", loc: (0,0,600), mass: 298e3, count: 1, life: 380,
+ fire: (-110,0,-600), fire: (20,20,-450), fire: (100,-10,-500) }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 20, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 30 }
+
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Imperial.def b/data/shatter/Ships/Marakan_Ships/Hulk-Imperial.def
new file mode 100644
index 0000000..15a9978
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Imperial.def
@@ -0,0 +1,413 @@
+SHIP
+
+name: "Hulk-Imperial"
+display_name: Imperial
+class: Cruiser
+
+hud_icon: "ImperialHud.pcx"
+
+model: "Hulk-Imperial.mag"
+
+mass: 348.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 40e3,
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.75,
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 30e3,
+ scale: 9,
+ port: ( 137, 30, -340),
+ port: (-137, 30, -340),
+
+ loc: (0, 10, -200),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 3500,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-42, -9, 640),
+
+ loc: (-42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 42, -9, 640),
+
+ loc: ( 42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 68,153),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -5.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (-91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 180.0,
+
+ aim_az_max: 5.0,
+ aim_az_min: -135.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 92,-228),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "ImperialMap0.pcx",
+ sprite: "ImperialMap1.pcx",
+ sprite: "ImperialMap2.pcx",
+ sprite: "ImperialMap3.pcx",
+ sprite: "ImperialMap4.pcx",
+ sprite: "ImperialMap5.pcx",
+ sprite: "ImperialMap6.pcx",
+ sprite: "ImperialMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Tiger.def b/data/shatter/Ships/Marakan_Ships/Hulk-Tiger.def
new file mode 100644
index 0000000..4eafd29
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Tiger.def
@@ -0,0 +1,256 @@
+SHIP
+
+name: "Hulk-Tiger"
+display_name: Tiger
+class: Frigate
+
+hud_icon: "TigerHud.pcx"
+
+model: "Hulk-Frigate.mag"
+
+mass: 4.53e3
+agility: 3.8
+vlimit: 300
+roll_rate: 8
+integrity: 18e3
+scale: 1.8
+acs: 1
+
+trans_x: 85e3
+trans_y: 35e3
+trans_z: 85e3
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 4000,
+
+ loc: (0, -100, 0),
+ size: 60,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 4,
+ port: ( 24,91,-580)
+ port: (-24,91,-580)
+ port: ( 24,13,-580)
+ port: (-24,13,-580)
+
+ loc: (0,30,-450)
+ size: 64,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 1,
+ loc: (0, -52,0),
+ explosion: 8,
+
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: Shield
+ factor: 0.03,
+ consumption: 1500,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.4
+}
+
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: ( 74, -12, 240)
+
+ loc: ( 74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: (-74, -12, 240)
+
+ loc: (-74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7",
+ muzzle: (-40, 0, 390),
+ muzzle: ( 40, 0, 390),
+ azimuth: 0,
+
+ loc: (-20, 0, 300),
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 75, 220),
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 135, -420),
+ size: 32,
+ hull_factor: 0.3
+
+ azimuth: 3.14159,
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-30, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 20, 90) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -80) }
+ explosion: { type: 10, time: 0.1, loc: ( 10, 80, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "FrigateDebris1.mag", loc: (0,0,200), mass:18e3, count: 1, life: 330, fire: (30,60,20) }
+ debris: { model: "FrigateDebris2.mag", loc: (100,0,0), mass:18e3, count: 1, life: 330 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-20), mass: 55, count: 15, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-20), mass: 54, count: 10, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 53, count: 11, life: 30 }
+
+ }
+
+map: {
+ sprite: "TigerMap0.pcx",
+ sprite: "TigerMap1.pcx",
+ sprite: "TigerMap2.pcx",
+ sprite: "TigerMap3.pcx",
+ sprite: "TigerMap4.pcx",
+ sprite: "TigerMap5.pcx",
+ sprite: "TigerMap6.pcx",
+ sprite: "TigerMap7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Vendetta.def b/data/shatter/Ships/Marakan_Ships/Hulk-Vendetta.def
new file mode 100644
index 0000000..8accb1d
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Vendetta.def
@@ -0,0 +1,444 @@
+SHIP
+
+name: "Hulk-Vendetta"
+display_name: Vendetta
+class: Cruiser
+
+hud_icon: "VendettaHud.pcx"
+
+model: "Hulk-Vendetta.mag"
+
+mass: 568.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4.2
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion
+ name: "Fusion 1"
+ design: "Fusion Reactor"
+ max_output: 40e3
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 35e3
+ scale: 7
+ augmenter: 0
+
+
+ port: (-210, 42, -334)
+ port: (-210, 0, -334)
+ port: ( 210, 42, -334)
+ port: ( 210, 0, -334)
+
+ loc: (0, 0,-0),
+ size: 32,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+power: {
+ type: Fusion
+ name: "Fusion 2"
+ design: "Fusion Reactor"
+ max_output: 10e3
+
+ loc: (0, -45, -550),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -80),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-8, 33, 779),
+ loc: (-8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 8, 33, 779),
+ loc: ( 8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 90,147),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 105, -548),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 1",
+ abrv: "PDB 1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, 73, 422),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 2",
+ abrv: "PDB 2",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+
+
+ aim_az_max: 180.0,
+ aim_az_min: -180.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -143,506),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 3",
+ abrv: "PDB 3",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -104,-360),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 4",
+ abrv: "PDB 4",
+
+ azimuth: 90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 5",
+ abrv: "PDB 5",
+
+ azimuth: -90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (-209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "VendettaMap0.pcx",
+ sprite: "VendettaMap1.pcx",
+ sprite: "VendettaMap2.pcx",
+ sprite: "VendettaMap3.pcx",
+ sprite: "VendettaMap4.pcx",
+ sprite: "VendettaMap5.pcx",
+ sprite: "VendettaMap6.pcx",
+ sprite: "VendettaMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Hulk-Volnaris.def b/data/shatter/Ships/Marakan_Ships/Hulk-Volnaris.def
new file mode 100644
index 0000000..b61d085
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Hulk-Volnaris.def
@@ -0,0 +1,293 @@
+SHIP
+
+name: "Hulk-Volnaris"
+display_name: Volnaris
+class: Destroyer
+
+hud_icon: "VolnarisHud.pcx"
+
+model: "Hulk-Volnaris.mag"
+
+mass: 21.1e3
+agility: 2
+vlimit: 240
+roll_rate: 7
+integrity: 20e3
+scale: 3.0
+acs: 1.2
+
+trans_x: 250e3
+trans_y: 100e3
+trans_z: 250e3
+
+auto_roll: -1
+arcade_drag: 0
+drag: 0
+roll_drag: 0
+pitch_drag: 0
+yaw_drag: 0
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7500,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.8
+ explosion: 7
+}
+
+drive: {
+ type: Stealth
+ abrv: Drive
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 1000,
+ scale: 5,
+ port: ( 0, -22, -420)
+ port: ( 0, -67, -402)
+ port: ( 0, -117, -357)
+
+ loc: (0, 0, -240),
+ size: 48,
+ hull_factor: 0.5
+ explosion: 7
+}
+
+quantum: {
+ abrv: "Q-Drive"
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ max_output: 1200,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-34, -19, 570),
+
+ loc: (-34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 34, -19, 570),
+
+ loc: ( 34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Torpedo Banks",
+ abrv: "Torps",
+ muzzle: (-25, 17, 470),
+ muzzle: ( 25, 17, 470),
+ loc: ( 0, -32, 400),
+ size: 80,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 1"
+ abrv: "PDB 1"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 45, 340),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 2"
+ abrv: "PDB 2"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 55, 225),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 3"
+ abrv: "PDB 3"
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+
+ loc: ( 0, 55, -255),
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+
+ azimuth: 3.14159,
+}
+
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 1.8, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.7, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 80, -190) }
+ explosion: { type: 10, time: 0.1, loc: (-30, 30, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+
+ debris: { model: "VolnarisDebris1.mag", loc: (0,0,-250), mass:25e3, count: 1, life: 365,
+ fire: (30,20,170) }
+ debris: { model: "Debris0A.mag", loc: (0,0, 20), mass: 45, count: 16, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-30), mass: 24, count: 12, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Imperial.def b/data/shatter/Ships/Marakan_Ships/Imperial.def
new file mode 100644
index 0000000..e9f7fbf
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Imperial.def
@@ -0,0 +1,418 @@
+SHIP
+
+name: Imperial
+display_name: Imperial
+class: Cruiser
+description: "Marakan Hegemony guided missile cruisers such as the CA-5C44 IMPERIAL class are most often found leading small cruiser battle groups. These ships are devastating attack platforms, equally at home either support or leading space action groups. The Imperial class features a pair of Rostov high-speed missile turrets, which combined with a full battery of magnetic rail launchers, gives them excellent long range assault capability."
+
+hud_icon: "ImperialHud.pcx"
+
+detail_0: "Musson_0opt.mag"
+feature_0: 1000
+detail_1: "Musson_1opt.mag"
+feature_1: 32
+detail_2: "Musson_2opt.mag"
+feature_2: 16
+
+mass: 348.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 40e3,
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.75,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 30e3,
+ scale: 9,
+ port: ( 137, 30, -340),
+ port: (-137, 30, -340),
+
+ loc: (0, 10, -200),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.5
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 3500,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-42, -9, 640),
+
+ loc: (-42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 42, -9, 640),
+
+ loc: ( 42, -9, 620),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 183, 29,-159)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 68,153),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -5.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (-91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 180.0,
+
+ aim_az_max: 5.0,
+ aim_az_min: -135.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (91, -47,313),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+ aim_el_max: 80.0,
+ aim_el_min: -1.0,
+
+ loc: (0, 92,-228),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, 72,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "RAIL12",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 1.0,
+ aim_az_min: -180.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ loc: (-139, -12,-172),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "ImperialMap0.pcx",
+ sprite: "ImperialMap1.pcx",
+ sprite: "ImperialMap2.pcx",
+ sprite: "ImperialMap3.pcx",
+ sprite: "ImperialMap4.pcx",
+ sprite: "ImperialMap5.pcx",
+ sprite: "ImperialMap6.pcx",
+ sprite: "ImperialMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Tiger.def b/data/shatter/Ships/Marakan_Ships/Tiger.def
new file mode 100644
index 0000000..67104c8
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Tiger.def
@@ -0,0 +1,314 @@
+SHIP
+
+name: Tiger
+display_name: Tiger
+class: Frigate
+description: "The FF-2E01 TIGER BAY class frigate was the result of war department opposition to mounting costs and limited capabilities of the older Baikal class frigate. Only fourteen Baikal class ships were built, and all were decommissioned and sold to neighboring independent systems. The Tiger Bay class was designed to extend the anti-ship capabilities of the older frigates by adding a pair of light x-ray laser batteries mounted on the wings. As with many Hegemony designs, these weapons are externally mounted and vulnerable to attack from the flanks."
+
+hud_icon: "TigerHud.pcx"
+
+detail_0: "Frigate_1opt.mag"
+feature_0: 1000
+detail_1: "Frigate_2opt.mag"
+feature_1: 32
+
+mass: 4.53e3
+agility: 3.8
+vlimit: 300
+roll_rate: 8
+integrity: 18e3
+scale: 1.8
+acs: 1
+
+trans_x: 85e3
+trans_y: 35e3
+trans_z: 85e3
+
+arcade_drag: 2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 0, 92)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 4000,
+
+ loc: (0, -100, 0),
+ size: 60,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow
+ name: "Plasma Drive",
+ abrv: Drive
+ design: "Plasma Drive",
+ thrust: 750,
+ scale: 4,
+ port: ( 24,91,-580)
+ port: (-24,91,-580)
+ port: ( 24,13,-580)
+ port: (-24,13,-580)
+
+ loc: (0,30,-450)
+ size: 64,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 1,
+ loc: (0, -52,0),
+ explosion: 8,
+
+/*
+0x0001 = Translate Right
+0x0002 = "" Left
+0x0004 = "" Backwards
+0x0008 = "" Forewards
+0x0010 = "" Down
+0x0020 = "" Up
+0x0040 = Yaw Left
+0x0080 = Yaw Right
+0x0100 = Pitch Down
+0x0200 = Pitch Up
+0x0400 = Roll Left
+0x0800 = Roll Right
+*/
+
+// fore reverse
+ port_fore: {loc:(-10, 42, 526),fire: 0x0004},
+ port_fore: {loc:(-10, 30, 526),fire: 0x0004},
+ port_fore: {loc:(-10, 18, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 18, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 30, 526),fire: 0x0004},
+ port_fore: {loc:( 10, 42, 526),fire: 0x0004},
+
+ port_aft: {loc:(-30, 53,-559),fire: 0x0008},
+ port_aft: {loc:( -9, 53,-559),fire: 0x0008},
+ port_aft: {loc:( 9, 53,-559),fire: 0x0008},
+ port_aft: {loc:( 30, 53,-559),fire: 0x0008},
+
+
+// Vertical
+ port_top: {loc:( -11, 60,509),fire: 0x0510},
+ port_top: {loc:( 11, 60,509),fire: 0x0910},
+ port_bottom: {loc:( -11,-10,509),fire: 0x0A20},
+ port_bottom: {loc:( 11,-10,509),fire: 0x0620},
+
+ port_top: {loc:(-48,135,-518),fire: 0x0610},
+ port_top: {loc:( 48,135,-518),fire: 0x0A10},
+ port_bottom: {loc:( 48,-29,-518),fire: 0x0920},
+ port_bottom: {loc:(-48,-29,-518),fire: 0x0520},
+
+ port_top: {loc:(-128,-29,20),fire: 0x0410},
+ port_top: {loc:( 128,-29,20),fire: 0x0810},
+ port_bottom: {loc:(-128,-48,20),fire: 0x0820},
+ port_bottom: {loc:( 128,-48,20),fire: 0x0420},
+
+// Side Translantion
+ port_right: {loc:( 60,44, 238),fire: 0x0042},
+ port_right: {loc:( 60,44, 251),fire: 0x0042},
+ port_right: {loc:( 90,36,-504),fire: 0x0082},
+ port_right: {loc:( 90,36,-516),fire: 0x0082},
+
+ port_left: {loc:(-60,44, 238),fire: 0x0081},
+ port_left: {loc:(-60,44, 251),fire: 0x0081},
+ port_left: {loc:(-90,36,-504),fire: 0x0041},
+ port_left: {loc:(-90,36,-516),fire: 0x0041},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.5
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: Shield
+ factor: 0.03,
+ consumption: 1500,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.4
+}
+
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: ( 74, -12, 240)
+
+ loc: ( 74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: (-74, -12, 240)
+
+ loc: (-74, -12, 110)
+ size: 24
+ hull_factor: 0.2
+ explosion: 7
+}
+
+weapon: {
+ type: "Mk7 Interceptor",
+ design: "Missile Weapon",
+ name: "Interceptor 1",
+ abrv: "MK7",
+ muzzle: (-40, 0, 390),
+ muzzle: ( 40, 0, 390),
+ azimuth: 0,
+
+ loc: (-20, 0, 300),
+ size: 32,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 75, 220),
+ size: 32,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Helicon",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+ muzzle: (0, 10, 131),
+
+ loc: (0, 135, -420),
+ size: 32,
+ hull_factor: 0.3
+
+ azimuth: 3.14159,
+}
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 2.0, loc: (-30, 50, 0) }
+ explosion: { type: 10, time: 1.0, loc: ( 60, 20, 90) }
+ explosion: { type: 10, time: 0.5, loc: ( 0, -48, -80) }
+ explosion: { type: 10, time: 0.1, loc: ( 10, 80, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "FrigateDebris1.mag", loc: (0,0,200), mass:18e3, count: 1, life: 330, fire: (30,60,20) }
+ debris: { model: "FrigateDebris2.mag", loc: (100,0,0), mass:18e3, count: 1, life: 330 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-20), mass: 55, count: 15, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-20), mass: 54, count: 10, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 53, count: 11, life: 30 }
+
+ }
+
+map: {
+ sprite: "TigerMap0.pcx",
+ sprite: "TigerMap1.pcx",
+ sprite: "TigerMap2.pcx",
+ sprite: "TigerMap3.pcx",
+ sprite: "TigerMap4.pcx",
+ sprite: "TigerMap5.pcx",
+ sprite: "TigerMap6.pcx",
+ sprite: "TigerMap7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Vendetta.def b/data/shatter/Ships/Marakan_Ships/Vendetta.def
new file mode 100644
index 0000000..a650633
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Vendetta.def
@@ -0,0 +1,449 @@
+SHIP
+
+name: Vendetta
+display_name: Vendetta
+class: Cruiser
+description: "The CA-5D15 VENDETTA class of heavy cruisers are the core Hegemony heavy gun platforms. Big, slow, and very tough, each of these enormous vessels features a pair of heavy gamma ray laser batteries and twin Rostov antiship missile turrets. Together these weapons can bring down the largest starships and orbital stations. The Vendetta's complement of magnetic rail guns make her more suitable to offense than defense; these ships rely on their tough hide to withstand enemy bombardment while they move in for the kill."
+
+hud_icon: "VendettaHud.pcx"
+
+detail_0: "VendettaNarrow_0opt.mag"
+feature_0: 1000
+detail_1: "VendettaNarrow_1opt.mag"
+feature_1: 48
+detail_2: "VendettaNarrow_2opt.mag"
+feature_2: 24
+
+mass: 568.1e3
+agility: 2
+vlimit: 230
+roll_rate: 7
+integrity: 60e3
+scale: 4.2
+acs: 1.2
+
+trans_x: 450e3
+trans_y: 300e3
+trans_z: 450e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+degrees: true
+
+power: {
+ type: Fusion
+ name: "Fusion 1"
+ design: "Fusion Reactor"
+ max_output: 40e3
+
+ loc: (0, -45, -150),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 35e3
+ scale: 7
+ augmenter: 0
+
+
+ port: (-210, 42, -334)
+ port: (-210, 0, -334)
+ port: ( 210, 42, -334)
+ port: ( 210, 0, -334)
+
+ loc: (0, 0,-0),
+ size: 32,
+ hull_factor: 0.8,
+ explosion: 7
+}
+
+power: {
+ type: Fusion
+ name: "Fusion 2"
+ design: "Fusion Reactor"
+ max_output: 10e3
+
+ loc: (0, -45, -550),
+ size: 96,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -80),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 4e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 1",
+ abrv: "Graser-1",
+ muzzle: (-8, 33, 779),
+ loc: (-8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Gamma Laser",
+ design: "Beam Weapon",
+ name: "Gamma Laser 2",
+ abrv: "Graser-2",
+ muzzle: ( 8, 33, 779),
+ loc: ( 8, 33,600),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Rostov",
+ design: "Missile Weapon",
+ name: "Missile 1",
+ abrv: "MISL-1",
+
+ muzzle: ( 0, 0, 90)
+ loc: (-282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Rostov-Starboard",
+ design: "Missile Weapon",
+ name: "Missile 2",
+ abrv: "MISL-2",
+
+ muzzle: ( 0, 0, 90)
+ loc: ( 282, 40, -92)
+ size: 64
+ hull_factor: 0.8
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 90,147),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Mag-18"
+ design: "Bolt Weapon",
+ name: "18INMAG",
+ abrv: "MG12",
+
+ azimuth: 180.0,
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+
+ aim_el_max: 70.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: (0, 12, 81),
+
+ loc: (0, 105, -548),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 1",
+ abrv: "PDB 1",
+
+ azimuth: 0.0,
+ elevation: 0.0,
+
+ aim_az_max: 130.0,
+ aim_az_min: -130.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, 73, 422),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 2",
+ abrv: "PDB 2",
+
+ azimuth: 180.0,
+ elevation: -180.0,
+
+
+
+ aim_az_max: 180.0,
+ aim_az_min: -180.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -143,506),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 3",
+ abrv: "PDB 3",
+
+ azimuth: 0.0,
+ elevation: 180.0,
+
+
+
+ aim_az_max: 145.0,
+ aim_az_min: -145.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (0, -104,-360),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 4",
+ abrv: "PDB 4",
+
+ azimuth: 90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "PDB 5",
+ abrv: "PDB 5",
+
+ azimuth: -90.0,
+ elevation: 0.0,
+
+ aim_az_max: 90.0,
+ aim_az_min: -90.0,
+
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: (-209, 88,-96),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "VendettaMap0.pcx",
+ sprite: "VendettaMap1.pcx",
+ sprite: "VendettaMap2.pcx",
+ sprite: "VendettaMap3.pcx",
+ sprite: "VendettaMap4.pcx",
+ sprite: "VendettaMap5.pcx",
+ sprite: "VendettaMap6.pcx",
+ sprite: "VendettaMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5
+
+ explosion: { type: 10, time: 2.0, loc: (-50, 10, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 20, 260) }
+ explosion: { type: 10, time: 0.5, loc: (-20, -18, -240) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 20, -120) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+ debris: { model: "MussonDebris1.mag", loc: (0,0,400), mass: 98e3, count: 1, life: 380,
+ fire: (60,0,-200), fire: (100,20,80) }
+ debris: { model: "MussonDebris2.mag", loc: (140,-120,0), mass: 38e3, count: 1, life: 360 }
+ debris: { model: "Debris0A.mag", loc: (0,0,-50), mass: 95, count: 20, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-50), mass: 44, count: 15, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+
+}
+
+
+
diff --git a/data/shatter/Ships/Marakan_Ships/Volnaris.def b/data/shatter/Ships/Marakan_Ships/Volnaris.def
new file mode 100644
index 0000000..167c222
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Ships/Volnaris.def
@@ -0,0 +1,349 @@
+SHIP
+
+name: Volnaris
+display_name: Volnaris
+class: Destroyer
+description: "The DD/E-4D01 VOLNARIS class of destroyer/escorts are the predecessors of the heavier Broadsword destroyer class. Originally intended as mainline destroyers, the Volnaris ships have now been relegated primarily to escort duty for the Hegemony battle groups. The Volnaris features a pair of internally-mounted heavy x-ray laser batteries and three fusion torpedo launchers for offensive capability, along with a full complement of Orca point defense batteries for protection from inbound threats. Due to design limitations, the Orca PDBs tend to provide better coverage for the dorsal hemisphere, leaving the Volnaris class with a vulnerable underbelly."
+
+hud_icon: "VolnarisHud.pcx"
+
+detail_0: "Volnaris_0.mag"
+feature_0: 1000
+detail_1: "Volnaris_1opt.mag"
+feature_1: 40
+detail_2: "Volnaris_2opt.mag"
+feature_2: 20
+
+mass: 21.1e3
+agility: 2 //3.1
+vlimit: 240
+roll_rate: 7
+integrity: 20e3
+scale: 3.0
+acs: 1.2
+
+trans_x: 250e3
+trans_y: 100e3
+trans_z: 250e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 7500,
+
+ loc: (0, -40, -220),
+ size: 64,
+ hull_factor: 0.8
+ explosion: 7
+}
+
+drive: {
+ type: Yellow,
+ abrv: Drive
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 1000,
+ scale: 5,
+ port: ( 0, -22, -420)
+ port: ( 0, -67, -402)
+ port: ( 0, -117, -357)
+
+ loc: (0, 0, -240),
+ size: 48,
+ hull_factor: 0.5
+ explosion: 7
+}
+
+quantum: {
+ abrv: "Q-Drive"
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ max_output: 1200,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-34, -19, 570),
+
+ loc: (-34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "XRay Laser",
+ design: "Beam Weapon",
+ name: "XRay Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 34, -19, 570),
+
+ loc: ( 34, -19, 460),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+weapon: {
+ type: "Fusion Torpedo",
+ design: "Missile Weapon",
+ name: "Torpedo Banks",
+ abrv: "Torps",
+ muzzle: (-25, 17, 470),
+ muzzle: ( 25, 17, 470),
+ loc: ( 0, -32, 400),
+ size: 80,
+ hull_factor: 0.2
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 1"
+ abrv: "PDB 1"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 45, 340),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 2"
+ abrv: "PDB 2"
+
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ loc: ( 0, 55, 225),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Rail-12"
+ design: "Bolt Weapon",
+ name: "PDB 3"
+ abrv: "PDB 3"
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+
+ loc: ( 0, 55, -255),
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+
+ azimuth: 3.14159,
+}
+
+
+thruster: {
+ design: Thruster,
+ type: Yellow,
+ scale: 0.04,
+ loc: (0, -52,0),
+ explosion: 8,
+
+// fore reverse
+ port_fore: {loc:(-159,-24,4),fire: 0x0040},
+ port_fore: {loc:(159,-24,4),fire: 0x0080},
+
+ port_aft: {loc:(-159,-24,-55),fire: 0x0080},
+ port_aft: {loc:(159,-24,-55),fire: 0x0040},
+
+ port_fore: {loc:(26,8,-28),fire: 0x0004},
+ port_fore: {loc:(27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-26,8,-28),fire: 0x0004},
+ port_fore: {loc:(-27,1,-28),fire: 0x0004},
+ port_fore: {loc:(-3,-23,-28),fire: 0x0004},
+ port_fore: {loc:(3,-23,-28),fire: 0x0004},
+
+ port_aft: {loc:(26,8,-79),fire: 0x0008},
+ port_aft: {loc:(27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-26,8,-79),fire: 0x0008},
+ port_aft: {loc:(-27,1,-79),fire: 0x0008},
+ port_aft: {loc:(-3,-23,-79),fire: 0x0008},
+ port_aft: {loc:(3,-23,-79),fire: 0x0008},
+
+// Vertical
+
+ port_top: {loc:(160,-18,-8),fire: 0x0810},
+ port_top: {loc:(-160,-18,-8),fire: 0x0410},
+ port_top: {loc:(160,-18,-41),fire: 0x0810},
+ port_top: {loc:(-160,-18,-41),fire: 0x0410},
+
+ port_bottom: {loc:(160,-29,-8),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-8),fire: 0x0820},
+ port_bottom: {loc:(160,-29,-41),fire: 0x0420},
+ port_bottom: {loc:(-160,-29,-41),fire: 0x0820},
+
+ port_top: {loc:(39,-14,-125),fire: 0x0100},
+ port_top: {loc:(-39,-14,-125),fire: 0x0100},
+ port_bottom: {loc:(-39,-23,-125),fire: 0x0200},
+ port_bottom: {loc:(39,-23,-125),fire: 0x0200},
+
+ port_top: {loc:(39,-5,127),fire: 0x0200},
+ port_top: {loc:(-39,-5,127),fire: 0x0200},
+ port_bottom: {loc:(-39,-14,127),fire: 0x0100},
+ port_bottom: {loc:(39,-14,127),fire: 0x0100},
+
+// Side Translantion
+
+ port_right: {loc:(167,-25,-11),fire: 0x0002},
+ port_right: {loc:(167,-25,-38),fire: 0x0002},
+
+ port_left: {loc:(-167,-25,-11),fire: 0x0001},
+ port_left: {loc:(-167,-25,-38),fire: 0x0001},
+
+ size: 32,
+ hull_factor: 0.8
+}
+
+
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ abrv: Batt
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "BroadMap0.pcx",
+ sprite: "BroadMap1.pcx",
+ sprite: "BroadMap2.pcx",
+ sprite: "BroadMap3.pcx",
+ sprite: "BroadMap4.pcx",
+ sprite: "BroadMap5.pcx",
+ sprite: "BroadMap6.pcx",
+ sprite: "BroadMap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion: { type: 10, time: 1.8, loc: (-50, 50, 0) }
+ explosion: { type: 10, time: 0.7, loc: ( 60, 40, 190) }
+ explosion: { type: 10, time: 0.7, loc: ( 0, -48, -180) }
+ explosion: { type: 10, time: 0.3, loc: ( 20, 80, -190) }
+ explosion: { type: 10, time: 0.1, loc: (-30, 30, -90) }
+
+ explosion: { type: 13, final: true } // Nuke
+ explosion: { type: 12, final: true } // Large burst
+
+
+ debris: { model: "VolnarisDebris1.mag", loc: (0,0,-250), mass:25e3, count: 1, life: 365,
+ fire: (30,20,170) }
+ debris: { model: "Debris0A.mag", loc: (0,0, 20), mass: 45, count: 16, life: 20 }
+ debris: { model: "Debris0B.mag", loc: (0,0,-30), mass: 24, count: 12, life: 35 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 10, life: 30 }
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Marakan_Stations/S4.def b/data/shatter/Ships/Marakan_Stations/S4.def
new file mode 100644
index 0000000..767a78a
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Stations/S4.def
@@ -0,0 +1,255 @@
+SHIP
+
+name: Station4
+display_name: Fortress
+class: STATION
+hud_icon: "S4hud.pcx"
+
+model: "S4opt.mag"
+
+mass: 5e6
+integrity: 5e5
+scale: 8
+acs: 5e6
+splash_radius: 15e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 45e3,
+
+ loc: (0, -64, 0),
+ size: 70,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.02,
+ consumption: 6000,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, -60, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 1A",
+
+ azimuth: 90,
+ loc: (1200, 85, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 1B",
+
+ azimuth: 90,
+ loc: (1200, -85, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 2A",
+
+ azimuth: 180,
+ loc: (0, 85, -1200),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 2B",
+
+ azimuth: 180,
+ loc: (0, -85, -1200),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 3A",
+
+ azimuth: -90,
+ loc: (-1200, 85, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 3B",
+
+ azimuth: -90,
+ loc: (-1200, -85, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 4A",
+
+ azimuth: 0,
+ loc: (0, 85, 1200),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 4B",
+
+ azimuth: 0,
+ loc: (0, -85, 1200),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+
+
+flightdeck: {
+ name: "Launch Bay 1",
+
+ loc: ( 0, -210, 890),
+ cam: ( 40, -200, 920),
+ start: ( 0, -210, 890),
+ end: ( 0, 0, 2900),
+
+ spot: ( -25, -210, 875),
+ spot: ( 25, -210, 875),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 2"
+
+ azimuth: 180
+
+ loc: ( 0, -210, -890),
+ cam: ( 40, -200, -920),
+ start: ( 0, -210, -890),
+ end: ( 0, 0, -2900),
+
+ spot: ( -25, -210, -875),
+ spot: ( 25, -210, -875),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 1"
+
+ azimuth: -90
+
+ loc: ( 890, -210, 0),
+ cam: ( 870, -210, 20),
+ start: ( 3e3, -210, 0),
+ end: ( 890, -210, 0),
+ spot: ( 890, -210, 0),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 2",
+
+ azimuth: 90
+
+ loc: (-890, -210, 0),
+ cam: (-870, -210, 20),
+ start: (-3e3, -210, 0),
+ end: (-890, -210, 0),
+ spot: (-890, -210, 0),
+
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "S4map.pcx"
+}
+
+
+death_spiral: {
+ time: 0
+
+ explosion: { type: 12, loc: (0,0,0), final: true } // Large burst
+ explosion: { type: 13, loc: (0,0,0), final: true } // Nuke
+
+ debris: { model: "DebrisS41.mag", loc: (-40,-20,900), mass: 68e3, count: 1, life: 560 }
+ debris: { model: "DebrisS42.mag", loc: (0,0,-470), mass: 78e3, count: 1, life: 575 }
+ debris: { model: "Debris0A.mag", loc: (0,0,0), mass: 35, count: 20, life: 35 }
+ debris: { model: "Debris0B.mag", loc: (0,0,0), mass: 44, count: 20, life: 45 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 35 }
+
+}
+
diff --git a/data/shatter/Ships/Marakan_Stations/S5.def b/data/shatter/Ships/Marakan_Stations/S5.def
new file mode 100644
index 0000000..7423a21
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Stations/S5.def
@@ -0,0 +1,271 @@
+SHIP
+
+name: Station5
+display_name: Station
+class: STATION
+hud_icon: "S5map.pcx"
+
+model: "S5opt.mag"
+
+mass: 5e6
+integrity: 1e6
+scale: 8
+acs: 3e6
+degrees: true
+
+chase: (0, -800, 50)
+bridge: (0, 0, 0)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 90e3,
+
+ loc: (0, 0, 0),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.02,
+ consumption: 6000,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, -60, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 1A",
+
+ azimuth: 90,
+ loc: (1150, 488, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 1B",
+
+ azimuth: 90,
+ loc: (1150, 320, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 2A",
+
+ azimuth: 180,
+ loc: (0, 488, -1150),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 2B",
+
+ azimuth: 180,
+ loc: (0, 320, -1150),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 3A",
+
+ azimuth: -90,
+ loc: (-1150, 488, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 3B",
+
+ azimuth: -90,
+ loc: (-1150, 320, 0),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 4A",
+
+ azimuth: 0,
+ loc: (0, 488, 1150),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 4B",
+
+ azimuth: 0,
+ loc: (0, 320, 1150),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+
+
+
+
+flightdeck: {
+ name: "Launch Bay 1",
+
+ loc: ( 0, 60, 750),
+ cam: ( 40, 70, 820),
+ start: ( 0, 60, 750),
+ end: ( 0, 60, 2900),
+
+ spot: ( -25, 60, 725),
+ spot: ( 25, 60, 725),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Launch Bay 2"
+
+ azimuth: 180
+
+ loc: ( 0, 60, -750),
+ cam: ( 40, 70, -820),
+ start: ( 0, 60, -750),
+ end: ( 0, 60, -2900),
+
+ spot: ( -25, 60, -725),
+ spot: ( 25, 60, -725),
+
+ light: 250,
+
+ launch: true,
+ cycle_time: 20,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 1"
+
+ azimuth: -90
+
+ loc: ( 750, 60, 0),
+ cam: ( 770, 70, 20),
+ start: ( 3e3, 60, 0),
+ end: ( 750, 60, 0),
+ spot: ( 750, 60, 0),
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Docking Bay 2",
+
+ azimuth: 90
+
+ loc: (-750, 60, 0),
+ cam: (-770, 70, 20),
+ start: (-3e3, 60, 0),
+ end: (-750, 60, 0),
+ spot: (-750, 60, 0),
+
+
+ light: 250,
+
+ recovery: true,
+ max_ships: 1,
+ cycle_time: 5,
+
+ size: 32,
+ hull_factor: 0.5,
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+navlight: {
+ scale: 2,
+ period: 2.5,
+
+ light: { loc: ( 64, 0, 112), pattern: 0xc0100000, type: 1 },
+ light: { loc: ( 64, 0, -112), pattern: 0xc0100000, type: 1 },
+ light: { loc: ( -64, 0, 112), pattern: 0xc0100000, type: 1 },
+ light: { loc: ( -64, 0, -112), pattern: 0xc0100000, type: 1 },
+ light: { loc: ( 112, 0, 64), pattern: 0xc0100000, type: 1 },
+ light: { loc: ( 112, 0, -64), pattern: 0xc0100000, type: 1 },
+ light: { loc: (-112, 0, 64), pattern: 0xc0100000, type: 1 },
+ light: { loc: (-112, 0, -64), pattern: 0xc0100000, type: 1 },
+}
+
+map: {
+ sprite: "S5map.pcx"
+}
+
+death_spiral: {
+ time: 0
+
+ explosion: { type: 12, loc: (0, 0,0), final: true } // Large burst
+ explosion: { type: 13, loc: (0, 100,0), final: true } // Nuke
+ explosion: { type: 13, loc: (0,-300,0), final: true } // Nuke
+
+ debris: { model: "DebrisS41.mag", loc: (-40,-20,900), mass: 68e3, count: 1, life: 560 }
+ debris: { model: "DebrisS42.mag", loc: (0,0,-470), mass: 78e3, count: 1, life: 575 }
+ debris: { model: "Debris0A.mag", loc: (0,0,0), mass: 35, count: 20, life: 35 }
+ debris: { model: "Debris0B.mag", loc: (0,0,0), mass: 44, count: 20, life: 45 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 35 }
+
+}
+
+
diff --git a/data/shatter/Ships/Marakan_Stations/S7.def b/data/shatter/Ships/Marakan_Stations/S7.def
new file mode 100644
index 0000000..ec674d3
--- /dev/null
+++ b/data/shatter/Ships/Marakan_Stations/S7.def
@@ -0,0 +1,218 @@
+SHIP
+
+name: Station7
+display_name: "Military Lab"
+class: STATION
+hud_icon: "S7hud.pcx"
+
+model: "S7opt.mag"
+
+mass: 7e6
+integrity: 5e5
+scale: 15
+acs: 5e6
+splash_radius: 35e3
+
+chase: (0, -1200, 250)
+bridge: (0, 0, 32)
+
+degrees: true
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 75e3,
+
+ loc: (0, 0, 0),
+ size: 55,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.0125,
+ consumption: 7500,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ pcs: 100,
+ loc: (0, -100, 220),
+ size: 16,
+ hull_factor: 0.5
+}
+
+weapon: {
+ type: "Graser Turret",
+ design: "Beam Weapon",
+ name: "Graser 1",
+
+ azimuth: 90,
+ loc: (240, 50, 100),
+ size: 40,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Graser Turret",
+ design: "Beam Weapon",
+ name: "Graser 2",
+
+ azimuth: -90,
+ loc: (-240, 50, 100),
+ size: 40,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Graser Turret",
+ design: "Beam Weapon",
+ name: "Graser 3",
+
+ azimuth: 90,
+ loc: (240, 50, -100),
+ size: 40,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Graser Turret",
+ design: "Beam Weapon",
+ name: "Graser 4",
+
+ azimuth: -90,
+ loc: (-240, 50, -100),
+ size: 40,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 1A",
+
+ azimuth: 90,
+ loc: (105, 36, 704),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 2A",
+
+ azimuth: 90,
+ loc: (105, 36, -640),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 3A",
+
+ azimuth: -90,
+ loc: (-105, 36, 704),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12",
+ design: "Bolt Weapon",
+ name: "Turret 4A",
+
+ azimuth: -90,
+ loc: (-105, 36, -640),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 1B",
+
+ azimuth: 90,
+ loc: (105, -24, 704),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 2B",
+
+ azimuth: 90,
+ loc: (105, -24, -640),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 3B",
+
+ azimuth: -90,
+ loc: (-105, -24, 704),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+weapon: {
+ type: "Rail-12 Inverted",
+ design: "Bolt Weapon",
+ name: "Turret 4B",
+
+ azimuth: -90,
+ loc: (-105, -24, -640),
+ size: 32,
+ hull_factor: 0.3,
+}
+
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, -380, 0),
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+
+map: {
+ sprite: "S7map.pcx"
+}
+
+death_spiral: {
+ time: 0
+
+ explosion: { type: 13, loc: (0,0, 200), final: true } // Nuke
+ explosion: { type: 13, loc: (0,0,-200), final: true } // Nuke
+
+ debris: { model: "DebrisS71.mag", loc: (-120,10,650), mass: 68e3, count: 1, life: 660 }
+ debris: { model: "DebrisS72.mag", loc: (-100,0,-450), mass: 78e3, count: 1, life: 675 }
+ debris: { model: "DebrisS73.mag", loc: ( 240,20,0), mass: 300e3, count: 1, life: 660 }
+
+ debris: { model: "Debris0A.mag", loc: (0,0,0), mass: 35, count: 20, life: 35 }
+ debris: { model: "Debris0B.mag", loc: (0,0,0), mass: 44, count: 20, life: 45 }
+ debris: { model: "Debris0C.mag", loc: (0,0,0), mass: 23, count: 15, life: 35 }
+
+}
+
+
+
diff --git a/data/shatter/Ships/Pirate_Ships/Carrier.def b/data/shatter/Ships/Pirate_Ships/Carrier.def
new file mode 100644
index 0000000..50a82de
--- /dev/null
+++ b/data/shatter/Ships/Pirate_Ships/Carrier.def
@@ -0,0 +1,409 @@
+SHIP
+
+name: Adventure
+display_name: Adventure
+class: Carrier
+
+hud_icon: "CarrierHud.pcx"
+
+detail_0: "Carrier_1opt.mag"
+feature_0: 1000
+detail_1: "Carrier_2opt.mag"
+feature_1: 40
+
+mass: 187.6e3
+agility: 1.3
+vlimit: 210
+roll_rate: 7
+integrity: 68e3
+scale: 2.5
+acs: 1.5
+
+trans_x: 5e6
+trans_y: 1e6
+trans_z: 3e6
+
+arcade_drag: 4.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+degrees: true
+
+chase: (0, -1800, 170)
+bridge: (0, 320, 60)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 95e3,
+
+ loc: (0, -40, -50),
+ size: 64,
+ hull_factor: 0.9,
+ explosion: 7
+}
+
+drive: {
+ type: Red
+ name: "Plasma Drive",
+ abrv: "Drive",
+ design: "Plasma Drive",
+ thrust: 38e3,
+ scale: 8,
+
+ port: ( -87, 32, -872)
+ port: ( -87, -16, -872)
+ port: ( -30, 32, -872)
+ port: ( -30, -16, -872)
+ port: ( 30, 32, -872)
+ port: ( 30, -16, -872)
+ port: ( 87, 32, -872)
+ port: ( 87, -16, -872)
+
+ loc: (0, 0, -120),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 128),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ abrv: "Q-Drive"
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ abrv: "Shield"
+ pcs: 100,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, -90, -50),
+ size: 60,
+ hull_factor: 0.8
+}
+
+power: {
+ type: "Auxilliary Reactor",
+ abrv: "Aux Reac"
+ design: "Auxilliary Reactor",
+ max_output: 5e3,
+
+ loc: (0, 0, -180),
+ hull_factor: 0.6
+}
+
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-1",
+
+ aim_az_max: 120.0,
+ aim_az_min: -20.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ muzzle: (0, 0, 71)
+ loc: ( 240, 52, 130),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-2",
+
+ aim_az_max: 20.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ muzzle: (0, 0, 71)
+ loc: (-240, 52, 130),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-3",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+ aim_el_max: 0
+ aim_el_min: -75
+
+ muzzle: (0, 0, 71)
+ loc: ( 130, -60, 130),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-4",
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+ aim_el_max: 0
+ aim_el_min: -75
+
+ muzzle: (0, 0, 71)
+ loc: (-130, -60, 130),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-5",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ muzzle: (0, 0, 71)
+ loc: ( 90, 80, -580),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+weapon: {
+ type: "Light-PDB",
+ design: "Bolt Weapon",
+ name: "PDB-6",
+
+ azimuth: 180
+
+ aim_az_max: 120.0,
+ aim_az_min: -120.0,
+ aim_el_max: 85.0,
+ aim_el_min: -1.0,
+
+ muzzle: (0, 0, 71)
+ loc: (-90, 80, -580),
+
+ size: 64,
+ hull_factor: 0.8,
+ explosion: 6
+}
+
+
+
+
+flightdeck: {
+ name: "Deck 1",
+ abrv: "Deck 1",
+ design: "Flight Deck",
+ loc: ( 30, 15, 512),
+ cam: ( 0, 30, 512),
+ start: ( 30, 15, 512),
+ end: (2e3, 15, 2500),
+
+ spot: { loc: ( 10, 15, 460), filter: 0x7 },
+ spot: { loc: ( 50, 15, 460), filter: 0x7 },
+ spot: { loc: ( 30, 15, 460), filter: 0x8 },
+
+ launch: true,
+ max_ships: 2,
+ cycle_time: 15,
+
+ size: 28,
+ hull_factor: 0.5,
+}
+
+flightdeck: {
+ name: "Deck 2"
+ abrv: "Deck 2"
+ design: "Flight Deck"
+ loc: (-30, 15, 640)
+ cam: ( 0, 30, 512)
+ start: (-80, 30, 1500)
+ end: (-30, 15, 640)
+
+ spot: (-30, 15, 640)
+
+ azimuth: 180
+ recovery: true
+ max_ships: 1
+ cycle_time: 15
+
+ size: 40
+ hull_factor: 0.5
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 50e3
+ range: 100e3
+ range: 150e3
+
+ loc: (0, -16, 380),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ abrv: Batt
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: {
+ sprite: "cvmap0.pcx",
+ sprite: "cvmap1.pcx",
+ sprite: "cvmap2.pcx",
+ sprite: "cvmap3.pcx",
+ sprite: "cvmap4.pcx",
+ sprite: "cvmap5.pcx",
+ sprite: "cvmap6.pcx",
+ sprite: "cvmap7.pcx"
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisCarrier1.mag",
+ debris_loc: (0,0,450),
+ debris_mass: 23e3,
+ debris_count: 1,
+ debris_life: 385,
+
+ debris: "DebrisCarrier2.mag",
+ debris_loc: (0,0,-700),
+ debris_mass: 19e3,
+ debris_count: 1,
+ debris_life: 425,
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 35,
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Pirate_Ships/Cutlass.def b/data/shatter/Ships/Pirate_Ships/Cutlass.def
new file mode 100644
index 0000000..f64b3d4
--- /dev/null
+++ b/data/shatter/Ships/Pirate_Ships/Cutlass.def
@@ -0,0 +1,236 @@
+SHIP
+
+name: Cutlass
+display_name: Cutlass
+class: Fighter
+abrv: "F-19"
+description: "Small, stealthy, and highly maneuverable, the CUTLASS pirate fighter is commonly used by the Brotherhood of Iron criminal organization as both a commerce raider and escort for their larger vessels. The Cutlass features four widely spread Alpha cannon, and has even been known to mount stolen antiship missiles for some engagements."
+
+hud_icon: "CutlassHud.pcx"
+
+detail_0: "Cutlass_0.mag"
+feature_0: 25
+detail_1: "Cutlass_1.mag"
+feature_1: 2
+
+mass: 14
+integrity: 2500
+scuttle: 1e3
+vlimit: 250
+agility: 137
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.24
+acs: 1.1
+detet: 30e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.22
+drag: 5.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.2e-2
+CD: 0.9e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 50,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+}
+
+drive: {
+ type: Red
+ thrust: 19,
+ augmenter: 35,
+ scale: 0.6,
+ port: (-12, 0, -133)
+ port: ( 12, 0, -133)
+
+ loc: (0, 0, -80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-150, 5, -10),
+ muzzle: (-150, -6, -10),
+ muzzle: ( 150, 5, -10),
+ muzzle: ( 150, -6, -10),
+
+ loc: (0, 0, 32),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-1",
+ muzzle: (-64, -10, -100)
+
+ loc: (-46, -10, -25)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-2",
+ muzzle: ( 64, -10, -100)
+
+ loc: ( 64, -10, -25)
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 1, 1) }
+loadout: { name: "Ground Strike", stations: ( 0, 0) }
+loadout: { name: "Ship Strike", stations: ( 2, 2) }
+loadout: { name: "Hvy Ship Strike", stations: ( 2, 2) }
+loadout: { name: "Rockets", stations: ( 0, 0) }
+loadout: { name: "Scout/Recon", stations: ( 0, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "LeftSkid.mag",
+ start: (-20, -16, 0),
+ end: (-48, -44, 0),
+ },
+
+ gear: {
+ model: "RightSkid.mag",
+ start: ( 20, -16, 0),
+ end: ( 48, -44, 0),
+ },
+}
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "cmap0.pcx",
+ sprite: "cmap1.pcx",
+ sprite: "cmap2.pcx",
+ sprite: "cmap3.pcx",
+ sprite: "cmap4.pcx",
+ sprite: "cmap5.pcx",
+ sprite: "cmap6.pcx",
+ sprite: "cmap7.pcx"
+}
+
diff --git a/data/shatter/Ships/Pirate_Ships/Marauder.def b/data/shatter/Ships/Pirate_Ships/Marauder.def
new file mode 100644
index 0000000..836abe9
--- /dev/null
+++ b/data/shatter/Ships/Pirate_Ships/Marauder.def
@@ -0,0 +1,270 @@
+SHIP
+
+name: Marauder
+display_name: Marauder
+class: Frigate
+description: "The MARAUDER is a small frigate-class vessel commonly used by the Brotherhood of Iron criminal organization as a commerce raider. The Marauder ships are no match for most military warships, but they make up for their limitations with enhanced stealth capabilities. Starship captains usually find the Marauder to be a fiendishly difficult type of ship to lock onto."
+
+hud_icon: "MarauderHud.pcx"
+
+detail_0: "Marauder_2opt.mag"
+feature_0: 32
+detail_1: "Marauder_3opt.mag"
+feature_1: 16
+
+mass: 7.9e3
+agility: 5
+vlimit: 280
+roll_rate: 60
+integrity: 22e3
+scale: 2.5
+acs: 1
+degrees: true
+detet: 30e3
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+arcade_drag:2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Red
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 800,
+ scale: 4,
+ port: (-44,12,-252),
+ port: ( 45,12,-252),
+
+ loc: (0,0,-200),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.05,
+ consumption: 2000,
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Port Cannon",
+ abrv: "Plasma 2",
+ muzzle: (-260, -32, 194),
+ azimuth: 0,
+
+ loc: (-260, -32, 60),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Starboard Cannon",
+ abrv: "Plasma 3",
+ muzzle: ( 260, -32, 194),
+ azimuth: 0,
+
+ loc: ( 260, -32, 60),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-1"
+
+ azimuth: 60
+ aim_az_max: 90
+ aim_az_min: -60
+ aim_az_rest: -60
+
+ muzzle: (0, 0, 71)
+ loc: (-110, 26, 20)
+ size: 32
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-2"
+
+ azimuth: -60
+ aim_az_max: -90
+ aim_az_min: 60
+ aim_az_rest: 60
+
+ muzzle: (0, 0, 71)
+ loc: (110, 26, 20)
+ size: 32
+ hull_factor: 0.3
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "m_map0.pcx",
+ sprite: "m_map1.pcx",
+ sprite: "m_map2.pcx",
+ sprite: "m_map3.pcx",
+ sprite: "m_map4.pcx",
+ sprite: "m_map5.pcx",
+ sprite: "m_map6.pcx",
+ sprite: "m_map7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Pirate_Ships/QShip.def b/data/shatter/Ships/Pirate_Ships/QShip.def
new file mode 100644
index 0000000..2d86f48
--- /dev/null
+++ b/data/shatter/Ships/Pirate_Ships/QShip.def
@@ -0,0 +1,311 @@
+SHIP
+
+name: QShip
+display_name: Freighter
+class: Freighter
+
+hud_icon: "CBHud.pcx"
+
+detail_0: "QShip_1opt.mag"
+feature_0: 32
+detail_1: "QShip_2opt.mag"
+feature_1: 16
+
+mass: 15.3e3
+agility: 5
+vlimit: 280
+roll_rate: 12
+integrity: 25e3
+scale: 2.5
+acs: 1
+degrees: true
+detet: 30e3
+
+trans_x: 75e3
+trans_y: 25e3
+trans_z: 75e3
+
+arcade_drag:2e-2
+drag: 1e-6
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1e3, 200)
+bridge: (0, 216, 34)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 3e3,
+
+ loc: (0, 0, -60),
+ size: 48,
+ hull_factor: 0.6,
+ explosion: 7
+}
+
+drive: {
+ type: Red
+ name: "Plasma Drive",
+ design: "Plasma Drive",
+ thrust: 800,
+ scale: 4,
+ port: (0, 80,-380),
+ port: (0,-80,-380),
+
+ loc: (0,0,-250),
+ size: 32,
+ hull_factor: 0.5,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 64),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ loc: (0, 0, -120),
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+shield: {
+ type: 2,
+ design: "Grav Shield",
+ factor: 0.05,
+ consumption: 2000,
+
+ pcs: 100,
+ loc: (0, 20, -80),
+ size: 16,
+ hull_factor: 0.5,
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Port Cannon",
+ abrv: "Plasma 2",
+ muzzle: (-30, 0, 400),
+ azimuth: 0,
+
+ loc: (-30, 0, 360),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Plasma Cannon",
+ design: "Plasma Weapon",
+ name: "Starboard Cannon",
+ abrv: "Plasma 3",
+ muzzle: ( 30, 0, 400),
+ azimuth: 0,
+
+ loc: ( 30, 0, 360),
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-1"
+
+ azimuth: 60
+ aim_az_max: 90
+ aim_az_min: -60
+ aim_az_rest: -60
+
+ muzzle: (0, 0, 71)
+ loc: (-58, 64, 0)
+ size: 32
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-2"
+
+ azimuth: -60
+ aim_az_max: -90
+ aim_az_min: 60
+ aim_az_rest: 60
+
+ muzzle: (0, 0, 71)
+ loc: ( 58, 64, 0)
+ size: 32
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-3"
+
+ azimuth: 60
+ aim_az_max: 90
+ aim_az_min: -60
+ aim_az_rest: -60
+ aim_el_max: 0
+ aim_el_min: -75
+
+ muzzle: (0, 0, 71)
+ loc: (-58,-64, 0)
+ size: 32
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Light-PDB"
+ design: "Plasma Weapon"
+ name: "PDB-4"
+
+ azimuth: -60
+ aim_az_max: -90
+ aim_az_min: 60
+ aim_az_rest: 60
+ aim_el_max: 0
+ aim_el_min: -75
+
+ muzzle: (0, 0, 71)
+ loc: ( 58,-64, 0)
+ size: 32
+ hull_factor: 0.3
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -10, 64),
+
+ loc: (0, -10, 50),
+ size: 16,
+ hull_factor: 0.2
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 250
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 180),
+ size: 16,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -180),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -190),
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "DebrisQShip.mag",
+ debris_loc: (0,0,220),
+ debris_mass: 51e3,
+ debris_count: 1,
+ debris_life: 415,
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 15,
+
+ }
+
+map: {
+ sprite: "CBmap0.pcx",
+ sprite: "CBmap1.pcx",
+ sprite: "CBmap2.pcx",
+ sprite: "CBmap3.pcx",
+ sprite: "CBmap4.pcx",
+ sprite: "CBmap5.pcx",
+ sprite: "CBmap6.pcx",
+ sprite: "CBmap7.pcx"
+}
+
+
diff --git a/data/shatter/Ships/Pirate_Ships/Saber.def b/data/shatter/Ships/Pirate_Ships/Saber.def
new file mode 100644
index 0000000..4d3e44e
--- /dev/null
+++ b/data/shatter/Ships/Pirate_Ships/Saber.def
@@ -0,0 +1,254 @@
+SHIP
+
+name: Saber
+display_name: Saber
+class: Fighter
+abrv: "F-22"
+
+hud_icon: "SaberHud.pcx"
+
+model: "Saber_2opt.mag"
+
+mass: 15
+integrity: 2500
+scuttle: 1e3
+vlimit: 250
+agility: 137
+air_factor: 0.25
+roll_rate: 1900
+scale: 0.2
+acs: 0.2
+detet: 15e3
+
+trans_x: 2e3
+trans_y: 1e3
+trans_z: 2e3
+
+arcade_drag: 0.22
+drag: 5.0e-5
+roll_drag: 10
+pitch_drag: 10
+yaw_drag: 10
+
+CL: 1.2e-2
+CD: 0.9e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 60,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+}
+
+drive: {
+ type: Red
+ thrust: 19,
+ augmenter: 35,
+ scale: 0.6,
+ port: (0, -2, -228)
+
+ loc: (0, 0, -180),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+weapon: {
+ type: "Alpha Cannon",
+ abrv: Cannon,
+ muzzle: (-190, 15, 55),
+ muzzle: ( 190, 15, 55),
+
+ loc: (0, 0, 32),
+ size: 32,
+ hull_factor: 0.5
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ abrv: "STA-1",
+ muzzle: (-101, 11, -85)
+
+ loc: (-101, 11, -10)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-2",
+ muzzle: (-74, 1, -75)
+
+ loc: (-74, 1, -10)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ type: "Rockets",
+ abrv: "STA-3",
+ muzzle: ( 74, 1, -75)
+
+ loc: ( 74, 1, -10)
+ size: 16,
+ hull_factor: 0.2
+}
+
+hardpoint: {
+ type: "Javelin",
+ type: "Vector",
+ type: "Harpoon",
+ abrv: "STA-4",
+ muzzle: (101, 11, -85)
+
+ loc: (101, 11, -10)
+ size: 16,
+ hull_factor: 0.2
+}
+
+loadout: { name: "Clean", stations: (-1, -1, -1, -1) }
+loadout: { name: "ACM Light", stations: ( 0, -1, -1, 0) }
+loadout: { name: "ACM Short Range", stations: ( 0, 0, 0, 0) }
+loadout: { name: "ACM Medium Range", stations: ( 0, 1, 1, 0) }
+loadout: { name: "Ground Strike", stations: ( 1, 3, 3, 1) }
+loadout: { name: "Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Hvy Ship Strike", stations: ( 1, 2, 2, 1) }
+loadout: { name: "Rockets", stations: ( 0, 3, 3, 0) }
+loadout: { name: "Scout/Recon", stations: ( 0, -1, -1, 0) }
+
+
+decoy: {
+ type: "Fighter Decoy",
+ abrv: Decoy,
+ muzzle: ( 0, -32, 0),
+
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 100),
+ size: 25,
+ hull_factor: 0.25
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+gear: {
+ name: "Undercarriage",
+ abrv: Gear,
+ loc: (0, 0, 0),
+ size: 16,
+ hull_factor: 0.5,
+
+ gear: {
+ model: "LeftSkid.mag",
+ start: (-40, -36, 0),
+ end: (-58, -54, 0),
+ },
+
+ gear: {
+ model: "RightSkid.mag",
+ start: ( 40, -36, 0),
+ end: ( 58, -54, 0),
+ },
+}
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,-2)
+ debris_mass: 20
+ debris_count: 4
+ debris_life: 1.8
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.3
+ debris_speed: 190
+
+ debris: "DebrisX.mag"
+ debris_loc: (0,0,3)
+ debris_mass: 20
+ debris_count: 3
+ debris_life: 2.2
+ debris_fire: (1,1,1)
+ debris_fire_type: 25
+ debris_drag: 0.35
+ debris_speed: 220
+}
+
+
+map: {
+ sprite: "smap0.pcx",
+ sprite: "smap1.pcx",
+ sprite: "smap2.pcx",
+ sprite: "smap3.pcx",
+ sprite: "smap4.pcx",
+ sprite: "smap5.pcx",
+ sprite: "smap6.pcx",
+ sprite: "smap7.pcx"
+}
+
diff --git a/data/shatter/Ships/Stations/Relay1.def b/data/shatter/Ships/Stations/Relay1.def
new file mode 100644
index 0000000..cc8df3f
--- /dev/null
+++ b/data/shatter/Ships/Stations/Relay1.def
@@ -0,0 +1,33 @@
+SHIP
+
+name: Relay1
+display_name: Relay
+class: COMSAT
+hud_icon: "hud_relay.pcx"
+
+model: "Relay1.mag"
+
+mass: 500e3
+integrity: 50e3
+scale: 6
+acs: 1
+degrees: true
+
+chase: (0, -800, 50)
+bridge: (0, 0, 0)
+
+
+map: {
+ sprite: "map_relay.pcx"
+}
+
+death_spiral: {
+ time: 0.0,
+
+ final_type: 11, // LARGE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+}
+
diff --git a/data/shatter/Ships/TargetDrone/TargetDrone.def b/data/shatter/Ships/TargetDrone/TargetDrone.def
new file mode 100644
index 0000000..a4b7701
--- /dev/null
+++ b/data/shatter/Ships/TargetDrone/TargetDrone.def
@@ -0,0 +1,105 @@
+SHIP
+
+name: TargetDrone
+display_name: TargetDrone
+class: Fighter
+
+model: "drone2b6.mag"
+description: "The Class 2 TARGET DRONE is a high midwing monoplane of conventional design with an inverted-Y empennage. The spaceframe is a modified monocoque structure made of a titanium alloy-reinforced ceramic composite. The Target is powered by a FP387/403 variable speed fusion drive, which produces a maximum of 4T static thrust under normal operating conditions. The Target is equipped with a fighter-style sensor package and onboard AI pilot capability, but is otherwise unarmed."
+
+mass: 5
+integrity: 500
+vlimit: 250
+agility: 50
+air_factor: 0.25
+roll_rate: 500
+scale: 0.08
+acs: 5
+
+trans_x: 1000
+trans_y: 1000
+trans_z: 1000
+
+drag: 4e-6
+roll_drag: 5
+pitch_drag: 4
+yaw_drag: 4
+
+CL: 2e-2
+CD: 2e-5
+stall: 0.40
+
+chase: (0, -1200, 250)
+bridge: (0, 145, 8)
+
+power: {
+ type: Fusion,
+ max_output: 30,
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.5
+}
+
+drive: {
+ type: Plasma,
+ thrust: 4,
+ scale: 0.8,
+ port: (0, -58, -292)
+
+ loc: (0, 0, -180)
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+
+ loc: (0, 0, 100),
+ size: 32,
+ hull_factor: 0.1
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 1.4,
+
+ explosion_type: 22, // CUSTOM 2
+ explosion_time: 0.8,
+ explosion_loc: (0, 0, -28),
+
+ final_type: 21, // CUSTOM 1
+ final_loc: (0, 0, -12),
+
+ final_type: 24, // CUSTOM LARGE BURST VARIATION
+ final_loc: (0, 0, -12),
+}
+
+
diff --git a/data/shatter/Ships/Zolons/ZZA.def b/data/shatter/Ships/Zolons/ZZA.def
new file mode 100644
index 0000000..d3271e3
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZA.def
@@ -0,0 +1,146 @@
+SHIP
+
+name: ZZA
+display_name: Zolon
+class: Attack
+abrv: ZA
+secret: true
+
+detail_0: "ZAttack_1.mag"
+feature_0: 1000
+detail_1: "ZAttack_2.mag"
+feature_1: 20
+
+mass: 21
+integrity: 35e3
+scuttle: 1e3
+vlimit: 320
+agility: 140
+air_factor: 0.25
+roll_rate: 1700
+scale: 0.75
+acs: 1.1
+detet: 50e3
+
+auto_roll: 2
+trans_x: 5e3
+trans_y: 5e3
+trans_z: 5e3
+
+arcade_drag: 0.23
+drag: 5.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.1e-2
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 200)
+bridge: (0, 0, 0)
+
+power: {
+ type: Fusion,
+ max_output: 1e3,
+ fuel_range: 5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+}
+
+drive: {
+ type: Alien,
+ thrust: 30,
+ augmenter: 60,
+ scale: 0.75,
+ port: (0, 0, -96),
+
+ loc: (0, 0, -40),
+ size: 16,
+ hull_factor: 0.85
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, 0),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+weapon: {
+ type: "Zolon Cannon",
+ abrv: Cannon,
+ muzzle: (0, 0, 80),
+
+ loc: (0, 0, 20),
+ size: 16,
+ hull_factor: 0.5
+}
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 50),
+ size: 25,
+ hull_factor: 0.25
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+nav: {
+ loc: (0, 0, 60),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+}
+
+map: { sprite: "zmap.pcx" }
diff --git a/data/shatter/Ships/Zolons/ZZCA.def b/data/shatter/Ships/Zolons/ZZCA.def
new file mode 100644
index 0000000..90bb816
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZCA.def
@@ -0,0 +1,274 @@
+SHIP
+
+name: ZZCA
+display_name: Zolon
+class: Cruiser
+abrv: ZCA
+secret: true
+
+detail_0: "ZolonB1opt.mag"
+feature_0: 1000
+detail_1: "ZolonB2opt.mag"
+feature_1: 30
+
+mass: 218.1e3
+agility: 3
+vlimit: 280
+roll_rate: 7
+integrity: 400e3
+scale: 4
+acs: 1.2
+auto_roll: 1
+
+splash_radius: 15e3
+
+trans_x: 550e3
+trans_y: 400e3
+trans_z: 550e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 50e3,
+
+ loc: (0, 0, -90),
+ size: 64,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+drive: {
+ type: Alien,
+ name: Drive,
+ design: "Plasma Drive",
+ thrust: 7500,
+ scale: 15,
+ port: ( 16, 16, -156),
+ port: (-16, 16, -156),
+ port: ( 16,-16, -156),
+ port: (-16,-16, -156),
+
+ loc: (0, 0, -140),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 88),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, -60),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 3,
+ design: "Hyper Shield",
+ shield_bubble: true,
+ pcs: 100,
+ model: "ZShieldB2.mag"
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-64, 0, 192),
+
+ loc: (-60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 64, 0, 192),
+
+ loc: ( 60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 3",
+ abrv: "Laser-3",
+ muzzle: (0, -64, 192),
+
+ loc: (0, -60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 4",
+ abrv: "Laser-4",
+ muzzle: (0, 64, 192),
+
+ loc: (0, 60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 2000,
+
+ loc: (0, 0, 40),
+ hull_factor: 0.6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 220),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: { sprite: "zmap.pcx" }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -150),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 35,
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Zolons/ZZCS.def b/data/shatter/Ships/Zolons/ZZCS.def
new file mode 100644
index 0000000..be540c9
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZCS.def
@@ -0,0 +1,274 @@
+SHIP
+
+name: ZZCS
+display_name: "Zolon Consul"
+class: Cruiser
+abrv: ZCS
+secret: true
+
+detail_0: "ZolonC1opt.mag"
+feature_0: 1000
+detail_1: "ZolonC2opt.mag"
+feature_1: 30
+
+mass: 218.1e3
+agility: 3
+vlimit: 280
+roll_rate: 7
+integrity: 400e3
+scale: 7.5
+acs: 1.2
+auto_roll: 1
+
+splash_radius: 15e3
+
+trans_x: 550e3
+trans_y: 400e3
+trans_z: 550e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 50e3,
+
+ loc: (0, 0, -90),
+ size: 64,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+drive: {
+ type: Alien,
+ name: Drive,
+ design: "Plasma Drive",
+ thrust: 7500,
+ scale: 15,
+ port: ( 16, 16, -156),
+ port: (-16, 16, -156),
+ port: ( 16,-16, -156),
+ port: (-16,-16, -156),
+
+ loc: (0, 0, -140),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 88),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, -60),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 3,
+ design: "Hyper Shield",
+ shield_bubble: true,
+ pcs: 100,
+ model: "ZShieldC2.mag"
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-64, 0, 192),
+
+ loc: (-60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 64, 0, 192),
+
+ loc: ( 60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 3",
+ abrv: "Laser-3",
+ muzzle: (0, -64, 192),
+
+ loc: (0, -60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 4",
+ abrv: "Laser-4",
+ muzzle: (0, 64, 192),
+
+ loc: (0, 60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 2000,
+
+ loc: (0, 0, 40),
+ hull_factor: 0.6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 220),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: { sprite: "zmap.pcx" }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -150),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 35,
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Zolons/ZZDD.def b/data/shatter/Ships/Zolons/ZZDD.def
new file mode 100644
index 0000000..a85de90
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZDD.def
@@ -0,0 +1,249 @@
+SHIP
+
+name: ZZDD
+display_name: Zolon
+class: Destroyer
+abrv: ZDA
+secret: true
+
+detail_0: "ZolonA1opt.mag"
+feature_0: 1000
+detail_1: "ZolonA2opt.mag"
+feature_1: 30
+
+mass: 58.1e3
+agility: 3
+vlimit: 280
+roll_rate: 7
+integrity: 400e3
+scale: 2
+acs: 1.2
+auto_roll: 1
+
+splash_radius: 15e3
+
+trans_x: 550e3
+trans_y: 400e3
+trans_z: 550e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 80e3,
+
+ loc: (0, 0, -90),
+ size: 64,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+drive: {
+ type: Alien,
+ name: Drive,
+ design: "Plasma Drive",
+ thrust: 9500,
+ scale: 15,
+ port: ( 16, 16, -720),
+ port: (-16, 16, -720),
+ port: ( 16,-16, -720),
+ port: (-16,-16, -720),
+
+ loc: (0, 0, -640),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 88),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, -60),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 3,
+ design: "Hyper Shield",
+ shield_bubble: true,
+ pcs: 100,
+ model: "ZShieldA2.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+ abrv: "Laser-1",
+ muzzle: (0, 200, -190),
+
+ loc: (0, 200, -228),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+ abrv: "Laser-2",
+ muzzle: (0, -200, -190),
+
+ loc: (0, -200, -228),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 2000,
+
+ loc: (0, 0, 40),
+ hull_factor: 0.6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 220),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: { sprite: "zmap.pcx" }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -150),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 35,
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/Zolons/ZZF.def b/data/shatter/Ships/Zolons/ZZF.def
new file mode 100644
index 0000000..7c42871
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZF.def
@@ -0,0 +1,148 @@
+SHIP
+
+name: ZZF
+display_name: Zolon
+class: Fighter
+abrv: ZF
+secret: true
+
+detail_0: "ZFighter_1.mag"
+feature_0: 1000
+detail_1: "ZFighter_2.mag"
+feature_1: 20
+
+mass: 18
+integrity: 30e3
+scuttle: 1e3
+vlimit: 380
+agility: 150
+air_factor: 0.75
+roll_rate: 1700
+scale: 0.25
+acs: 1.1
+detet: 50e3
+
+auto_roll: 2
+trans_x: 5e3
+trans_y: 5e3
+trans_z: 5e3
+
+arcade_drag: 0.21
+drag: 5.0e-5
+roll_drag: 10
+pitch_drag: 7.5
+yaw_drag: 7.5
+
+CL: 1.1e-2
+CD: 1.1e-1
+stall: 0.40
+
+prep_time: 15
+avoid_fighter: 7
+
+chase: (0, -750, 200)
+bridge: (0, 0, 0)
+
+power: {
+ type: Fusion,
+ max_output: 1e3,
+ fuel_range: 5,
+
+ loc: (0, 0, -40),
+ size: 32,
+ hull_factor: 0.75
+}
+
+drive: {
+ type: Alien,
+ thrust: 30,
+ augmenter: 60,
+ scale: 0.75,
+ port: (0, 0, -90),
+
+ loc: (0, 0, -50),
+ size: 16,
+ hull_factor: 0.85
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, 0),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+
+weapon: {
+ type: "Zolon Cannon",
+ abrv: Cannon,
+ muzzle: (0, 0, 90),
+
+ loc: (0, 0, 10),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+sensor: {
+ pcs: 25,
+ active_efficiency: 2e9,
+ passive_efficiency: 500,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+
+ loc: (0, 0, 20),
+ size: 25,
+ hull_factor: 0.25
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: HUD,
+ type: 1,
+
+ loc: (20, 0, 80),
+ size: 8,
+ hull_factor: 0.2
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: Flight,
+ type: 2,
+
+ loc: (-20, 0, 50),
+ size: 16,
+ hull_factor: 0.5
+}
+
+
+nav: {
+ loc: (0, 0, 30),
+ size: 16,
+ hull_factor: 0.1
+}
+
+death_spiral: {
+ time: 2.5,
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.1,
+ explosion_loc: (0, 0, -64),
+
+ explosion_type: 22, // SMALL_EXPLOSION
+ explosion_time: 1.5,
+ explosion_loc: (20, 10, -20),
+
+ final_type: 23, // LARGE_EXPLOSION
+ final_loc: (0, 0, -32),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, -32),
+}
+
+map: { sprite: "zmap.pcx" }
diff --git a/data/shatter/Ships/Zolons/ZZFF.def b/data/shatter/Ships/Zolons/ZZFF.def
new file mode 100644
index 0000000..9e1dcfe
--- /dev/null
+++ b/data/shatter/Ships/Zolons/ZZFF.def
@@ -0,0 +1,274 @@
+SHIP
+
+name: ZZFF
+display_name: Zolon
+class: Frigate
+abrv: ZFF
+secret: true
+
+detail_0: "ZolonD1opt.mag"
+feature_0: 1000
+detail_1: "ZolonD2opt.mag"
+feature_1: 30
+
+mass: 35.1e3
+agility: 3
+vlimit: 280
+roll_rate: 7
+integrity: 400e3
+scale: 8
+acs: 1.2
+auto_roll: 1
+
+splash_radius: 15e3
+
+trans_x: 550e3
+trans_y: 400e3
+trans_z: 550e3
+
+arcade_drag: 2.5e-2
+drag: 6e-7
+roll_drag: 1.2
+pitch_drag: 1.2
+yaw_drag: 1.2
+
+chase: (0, -1800, 170)
+bridge: (0, 640, 100)
+
+power: {
+ type: Fusion,
+ design: "Fusion Reactor",
+ max_output: 50e3,
+
+ loc: (0, 0, -90),
+ size: 64,
+ hull_factor: 0.4,
+ explosion: 7
+}
+
+drive: {
+ type: Alien,
+ name: Drive,
+ design: "Plasma Drive",
+ thrust: 7500,
+ scale: 15,
+ port: ( 16, 16, -156),
+ port: (-16, 16, -156),
+ port: ( 16,-16, -156),
+ port: (-16,-16, -156),
+
+ loc: (0, 0, -140),
+ size: 48,
+ hull_factor: 0.3,
+ explosion: 7
+}
+
+thruster: {
+ design: Thruster,
+
+ loc: (0, 0, 88),
+ size: 24,
+ hull_factor: 0.3
+}
+
+quantum: {
+ design: "Quantum Drive",
+ type: Hyper,
+ loc: (0, 0, -60),
+ capacity: 10e3,
+ consumption: 1e3,
+ size: 24,
+ hull_factor: 0.3
+}
+
+shield: {
+ type: 3,
+ design: "Hyper Shield",
+ shield_bubble: true,
+ pcs: 100,
+ model: "ZShieldD2.mag",
+ bolt_hit_sound: "shield_hit4.wav",
+ beam_hit_sound: "shield_hit5.wav",
+
+ loc: (0, 0, 0),
+ size: 32,
+ hull_factor: 0.7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 1",
+ abrv: "Laser-1",
+ muzzle: (-64, 0, 192),
+
+ loc: (-60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 2",
+ abrv: "Laser-2",
+ muzzle: ( 64, 0, 192),
+
+ loc: ( 60, 0, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 3",
+ abrv: "Laser-3",
+ muzzle: (0, -64, 192),
+
+ loc: (0, -60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+weapon: {
+ type: "Zolon Laser",
+ design: "Beam Weapon",
+ name: "Laser 4",
+ abrv: "Laser-4",
+ muzzle: (0, 64, 192),
+
+ loc: (0, 60, 128),
+ size: 32,
+ hull_factor: 0.2,
+ explosion: 7
+}
+
+
+power: {
+ type: "Auxilliary Reactor",
+ design: "Auxilliary Reactor",
+ max_output: 2000,
+
+ loc: (0, 0, 40),
+ hull_factor: 0.6
+}
+
+probe: {
+ type: "Sensor Drone",
+ design: "Probe",
+ abrv: "Probe",
+ muzzle: ( 0, -80, 0),
+
+ loc: (0, -80, 0),
+ size: 16,
+ hull_factor: 0.2
+}
+
+sensor: {
+ design: Sensor,
+ pcs: 20,
+ active_efficiency: 1e6,
+ passive_efficiency: 10e3,
+ range: 25e3,
+ range: 50e3,
+ range: 75e3,
+ range: 100e3,
+
+ loc: (0, 0, 220),
+ size: 16,
+ hull_factor: 0.1
+}
+
+power: {
+ type: Battery,
+ design: Battery,
+ max_output: 100
+}
+
+computer: {
+ name: "Avionics Package",
+ abrv: "HUD",
+ type: 1,
+ design: Computer,
+
+ loc: (20, 16, 80),
+ size: 16,
+ hull_factor: 0.5
+}
+
+computer: {
+ name: "Flight Computer",
+ abrv: "Flight",
+ type: 2,
+ design: Computer,
+
+ loc: (-20, -16, 80),
+ size: 16,
+ hull_factor: 0.2
+}
+
+nav: {
+ loc: (0, 16, 60),
+ design: Computer,
+ size: 16,
+ hull_factor: 0.1
+}
+
+
+map: { sprite: "zmap.pcx" }
+
+
+death_spiral: {
+ time: 5,
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 2,
+ explosion_loc: (-50, 50, 0),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 1,
+ explosion_loc: (60, 40, 190),
+
+ explosion_type: 10, // LARGE_BURST
+ explosion_time: 0.5,
+ explosion_loc: (0, -48, -150),
+
+ explosion_type: 10, // SMALL_EXPLOSION
+ explosion_time: 0,
+ explosion_loc: (20, 80, -120),
+
+ final_type: 13, // NUKE_EXPLOSION
+ final_loc: (0, 0, 0),
+
+ final_type: 12, // LARGE_BURST
+ final_loc: (0, 0, 0),
+
+ debris: "Debris5.mag",
+ debris_loc: (0,0,-50),
+ debris_mass: 5,
+ debris_count: 15,
+ debris_life: 15,
+
+ debris: "Debris6.mag",
+ debris_loc: (0,0,60),
+ debris_mass: 4,
+ debris_count: 15,
+ debris_life: 25,
+
+ debris: "Debris7.mag",
+ debris_loc: (0,0,0),
+ debris_mass: 1,
+ debris_count: 10,
+ debris_life: 35,
+
+}
+
+
+
+
+
+
diff --git a/data/shatter/Ships/catalog.def b/data/shatter/Ships/catalog.def
new file mode 100644
index 0000000..7a7bf4d
--- /dev/null
+++ b/data/shatter/Ships/catalog.def
@@ -0,0 +1,117 @@
+SHIPCATALOG
+
+item: { name: TargetDrone, type: Drone, path: "Ships/TargetDrone", file: "TargetDrone.def" }
+item: { name: CameraPod, type: Drone, path: "Ships/CameraPod", file: "CameraPod.def", hide: true }
+
+item: { name: Falcon, type: Fighter, path: "Ships/Alliance_Fighters", file: "Falcon.def" }
+item: { name: Stormhawk, type: Fighter, path: "Ships/Alliance_Fighters", file: "Stormhawk.def" }
+item: { name: Eagle, type: Fighter, path: "Ships/Alliance_Fighters", file: "Eagle.def" }
+item: { name: Viper, type: Fighter, path: "Ships/Marakan_Fighters", file: "Viper.def" }
+item: { name: Razor, type: Fighter, path: "Ships/Marakan_Fighters", file: "Razor.def" }
+item: { name: Intruder, type: Fighter, path: "Ships/Marakan_Fighters", file: "Intruder.def" }
+item: { name: Raptor, type: Fighter, path: "Ships/Marakan_Fighters", file: "Raptor.def" }
+item: { name: Cutlass, type: Fighter, path: "Ships/Pirate_Ships", file: "Cutlass.def" }
+item: { name: Saber, type: Fighter, path: "Ships/Pirate_Ships", file: "Saber.def" }
+
+item: { name: Thunderbolt, type: Attack, path: "Ships/Alliance_Fighters", file: "Thunderbolt.def" }
+item: { name: Cobra, type: Attack, path: "Ships/Marakan_Fighters", file: "Cobra.def" }
+item: { name: Avenger, type: Attack, path: "Ships/Marakan_Fighters", file: "Avenger.def" }
+
+item: { name: Jackal, type: LCA, path: "Ships/Marakan_Fighters", file: "Jackal.def" }
+item: { name: Zodiac, type: LCA, path: "Ships/Alliance_Fighters", file: "Zodiac.def" }
+
+item: { name: Baikal, type: Frigate, path: "Ships/Dantari_Ships", file: "Baikal.def" }
+item: { name: Berents, type: Frigate, path: "Ships/Alliance_Ships", file: "Berents.def" }
+item: { name: Tiger, type: Frigate, path: "Ships/Marakan_Ships", file: "Tiger.def" }
+item: { name: Marauder, type: Frigate, path: "Ships/Pirate_Ships", file: "Marauder.def" }
+item: { name: QShip, type: Frigate, path: "Ships/Pirate_Ships", file: "QShip.def", hide: true }
+item: { name: Adventure, type: Carrier, path: "Ships/Pirate_Ships", file: "Carrier.def", hide: true }
+
+item: { name: Asher, type: Destroyer, path: "Ships/Alliance_Ships", file: "Asher.def" }
+item: { name: Spectre, type: Destroyer, path: "Ships/Alliance_Ships", file: "Spectre.def" }
+item: { name: Volnaris, type: Destroyer, path: "Ships/Marakan_Ships", file: "Volnaris.def" }
+item: { name: Broadsword, type: Destroyer, path: "Ships/Marakan_Ships", file: "Broadsword.def" }
+item: { name: Wolf, type: Destroyer, path: "Ships/Dantari_Ships", file: "Wolf.def" }
+
+item: { name: Courageous, type: Cruiser, path: "Ships/Alliance_Ships", file: "Cruiser.def" }
+item: { name: Devastator, type: Cruiser, path: "Ships/Alliance_Ships", file: "Devastator.def" }
+item: { name: Imperial, type: Cruiser, path: "Ships/Marakan_Ships", file: "Imperial.def" }
+item: { name: Vendetta, type: Cruiser, path: "Ships/Marakan_Ships", file: "Vendetta.def" }
+
+item: { name: Dragon, type: Carrier, path: "Ships/Marakan_Ships", file: "Dragon.def" }
+item: { name: Goliath, type: Carrier, path: "Ships/Dantari_Ships", file: "Goliath.def" }
+item: { name: Orion, type: Carrier, path: "Ships/Alliance_Ships", file: "Orion.def" }
+
+item: { name: ZZF, type: Fighter, path: "Ships/Zolons", file: "ZZF.def", hide: true }
+item: { name: ZZA, type: Attack, path: "Ships/Zolons", file: "ZZA.def", hide: true }
+item: { name: ZZFF, type: Frigate, path: "Ships/Zolons", file: "ZZFF.def", hide: true }
+item: { name: ZZDD, type: Destroyer, path: "Ships/Zolons", file: "ZZDD.def", hide: true }
+item: { name: ZZCA, type: Cruiser, path: "Ships/Zolons", file: "ZZCA.def", hide: true }
+item: { name: ZZCS, type: Cruiser, path: "Ships/Zolons", file: "ZZCS.def", hide: true }
+
+item: { name: "Hulk-Frigate", type: Frigate, path: "Ships/Marakan_Ships", file: "Hulk-Frigate.def", hide: true }
+item: { name: "Hulk-Broadsword", type: Destroyer, path: "Ships/Marakan_Ships", file: "Hulk-Broadsword.def", hide: true }
+item: { name: "Hulk-Volnaris", type: Destroyer, path: "Ships/Marakan_Ships", file: "Hulk-Volnaris.def", hide: true }
+item: { name: "Hulk-Imperial", type: Cruiser, path: "Ships/Marakan_Ships", file: "Hulk-Imperial.def", hide: true }
+item: { name: "Hulk-Vendetta", type: Cruiser, path: "Ships/Marakan_Ships", file: "Hulk-Vendetta.def", hide: true }
+item: { name: "Hulk-Dragon", type: Carrier, path: "Ships/Marakan_Ships", file: "Hulk-Dragon.def", hide: true }
+
+item: { name: "Archaelith", type: Drone, path: "Ships/Archaelith", file: "Archaelith.def", hide: true }
+
+item: { name: Colony, type: Station, path: "Ships/Colony", file: "Colony.def" }
+item: { name: Relay1, type: COMSAT, path: "Ships/Stations", file: "Relay1.def" }
+item: { name: Station1, type: Station, path: "Ships/Alliance_Stations", file: "FreightXfer.def" }
+item: { name: Station2, type: Station, path: "Ships/Alliance_Stations", file: "Harmony.def" }
+item: { name: Station3, type: Station, path: "Ships/Alliance_Stations", file: "Fortress.def" }
+item: { name: Station4, type: Station, path: "Ships/Marakan_Stations", file: "S4.def" }
+item: { name: Station5, type: Station, path: "Ships/Marakan_Stations", file: "S5.def" }
+item: { name: Station6, type: Station, path: "Ships/Alliance_Stations", file: "S6.def" }
+item: { name: Station7, type: Station, path: "Ships/Marakan_Stations", file: "S7.def" }
+item: { name: Observatory, type: Station, path: "Ships/Alliance_Stations", file: "Observatory.def" }
+item: { name: IM2800, type: Cargo, path: "Ships/Civil", file: "CargoC.def" }
+item: { name: IM3500, type: Freighter, path: "Ships/Civil", file: "CargoA.def" }
+item: { name: IM4300, type: Freighter, path: "Ships/Civil", file: "CargoB.def" }
+item: { name: IM1906, type: Freighter, path: "Ships/Civil", file: "TankerA.def" }
+item: { name: IM1912, type: Freighter, path: "Ships/Civil", file: "TankerB.def" }
+item: { name: Transport, type: Courier, path: "Ships/Civil", file: "Transport.def" }
+item: { name: Courier, type: Courier, path: "Ships/Civil", file: "Courier.def" }
+
+item: { name: Farcaster, type: Farcaster, path: "Ships/Alliance_Stations", file: "Farcaster.def" }
+item: { name: Farcaster2, type: Farcaster, path: "Ships/Farcaster", file: "Farcaster2.def" }
+item: { name: Airbase1, type: Starbase, path: "Ships/Airbases", file: "Airbase1.def" }
+item: { name: Airbase2, type: Starbase, path: "Ships/Airbases", file: "Airbase2.def" }
+item: { name: Airbase3, type: Starbase, path: "Ships/Airbases", file: "Airbase3.def" }
+item: { name: "Blockade Mine",type: Mine, path: "Ships/Dantari_Ships", file: "Mine1.def" }
+item: { name: "AAA 1", type: SAM, path: "Ships/Ground_Units", file: "Gnd_aaa1.def" }
+item: { name: "AAA 2", type: SAM, path: "Ships/Ground_Units", file: "Gnd_aaa2.def" }
+item: { name: "SAM 1", type: SAM, path: "Ships/Ground_Units", file: "Gnd_sam1.def" }
+item: { name: Barracks, type: Building, path: "Ships/Buildings", file: "Barracks.def" }
+item: { name: Bldg00, type: Building, path: "Ships/Buildings", file: "Bldg00.def" }
+item: { name: Bldg01, type: Building, path: "Ships/Buildings", file: "Bldg01.def" }
+item: { name: Bldg02, type: Building, path: "Ships/Buildings", file: "Bldg02.def" }
+item: { name: Bldg03, type: Building, path: "Ships/Buildings", file: "Bldg03.def" }
+item: { name: Bldg04, type: Building, path: "Ships/Buildings", file: "Bldg04.def" }
+item: { name: Bldg05, type: Building, path: "Ships/Buildings", file: "Bldg05.def" }
+item: { name: BioDome, type: Building, path: "Ships/Buildings", file: "BioDome.def" hide: true }
+item: { name: BioDome2, type: Building, path: "Ships/Buildings", file: "BioDome2.def" hide: true }
+item: { name: BioTrail, type: Building, path: "Ships/Buildings", file: "BioTrail.def" hide: true }
+item: { name: City00, type: Building, path: "Ships/Buildings", file: "City00.def" }
+item: { name: City01, type: Building, path: "Ships/Buildings", file: "City01.def" }
+item: { name: City02, type: Building, path: "Ships/Buildings", file: "City02.def" }
+item: { name: City03, type: Building, path: "Ships/Buildings", file: "City03.def" }
+item: { name: Cool00, type: Building, path: "Ships/Buildings", file: "Cool00.def" }
+item: { name: Dsrt00, type: Building, path: "Ships/Buildings", file: "Dsrt00.def" }
+item: { name: Dsrt01, type: Building, path: "Ships/Buildings", file: "Dsrt01.def" }
+item: { name: Dsrt02, type: Building, path: "Ships/Buildings", file: "Dsrt02.def" }
+item: { name: Dsrt03, type: Building, path: "Ships/Buildings", file: "Dsrt03.def" }
+item: { name: Dsrt04, type: Building, path: "Ships/Buildings", file: "Dsrt04.def" }
+item: { name: Dsrt05, type: Building, path: "Ships/Buildings", file: "Dsrt05.def" }
+item: { name: Fact00, type: Factory, path: "Ships/Buildings", file: "Fact00.def" }
+item: { name: Fact01, type: Factory, path: "Ships/Buildings", file: "Fact01.def" }
+item: { name: Fact02, type: Factory, path: "Ships/Buildings", file: "Fact02.def" }
+item: { name: Fact03, type: Factory, path: "Ships/Buildings", file: "Fact03.def" }
+item: { name: Fact04, type: Factory, path: "Ships/Buildings", file: "Fact04.def" }
+item: { name: Reac01, type: Factory, path: "Ships/Buildings", file: "Reac01.def" }
+item: { name: Tank00, type: Factory, path: "Ships/Buildings", file: "Tank00.def" }
+item: { name: Platform, type: Factory, path: "Ships/Buildings", file: "Platform.def" }
+
diff --git a/data/shatter/Sys.def b/data/shatter/Sys.def
new file mode 100644
index 0000000..68ba7cd
--- /dev/null
+++ b/data/shatter/Sys.def
@@ -0,0 +1,751 @@
+SYSTEM
+
+// COMPONENT DAMAGE EFFECTS:
+// DAMAGE_EFFICIENCY = 1
+// DAMAGE_SAFETY = 2
+// DAMAGE_STABILITY = 4
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Fusion Reactor",
+
+ component: {
+ name: "Reactor Core",
+ abrv: "Reac Core",
+ repair_time: 120,
+ replace_time: 24000,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Fuel System",
+ abrv: "Fuel Sys",
+ repair_time: 120,
+ replace_time: 1200,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Presequencer",
+ abrv: "Preseq",
+ repair_time: 30,
+ replace_time: 400,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 30,
+ replace_time: 300,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 60,
+ replace_time: 3600,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Coolant Tanks",
+ abrv: "Coolant",
+ repair_time: 45,
+ replace_time: 1800,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Auxilliary Reactor",
+
+ component: {
+ name: "Reactor Core",
+ abrv: "Reac Core",
+ repair_time: 60,
+ replace_time: 2400,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Reactant",
+ abrv: "Reactant",
+ repair_time: 30,
+ replace_time: 600,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Injector",
+ abrv: "Injector",
+ repair_time: 60,
+ replace_time: 500,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Magnetic Coil",
+ abrv: "Mag Coil",
+ repair_time: 120,
+ replace_time: 300,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 120,
+ replace_time: 3600,
+ spares: 0,
+ affects: 6
+ },
+
+ component: {
+ name: "Coolant Tanks",
+ abrv: "Coolant",
+ repair_time: 120,
+ replace_time: 1800,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Battery",
+
+ component: {
+ name: "EMG Cell",
+ abrv: "EMG Cell",
+ repair_time: 120,
+ replace_time: 2400,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Reactant",
+ abrv: "Reactant",
+ repair_time: 30,
+ replace_time: 1200,
+ spares: 0,
+ affects: 1
+ },
+
+ component: {
+ name: "Reactant Valves",
+ abrv: "Reac Valve",
+ repair_time: 20,
+ replace_time: 1200,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Regulator",
+ abrv: "Pwr Reg",
+ repair_time: 120,
+ replace_time: 60,
+ spares: 2,
+ affects: 4
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Plasma Drive",
+
+ component: {
+ name: "Plasma Core",
+ abrv: "Plasma Core",
+ repair_time: 90,
+ replace_time: 1800,
+ spares: 0,
+ affects: 3
+ },
+
+ component: {
+ name: "Presequence Injector",
+ abrv: "Injector",
+ repair_time: 40,
+ replace_time: 600,
+ spares: 1,
+ affects: 5
+ },
+
+ component: {
+ name: "Plasma Impeller",
+ abrv: "Impeller",
+ repair_time: 30,
+ replace_time: 900,
+ spares: 1,
+ affects: 5
+ },
+
+ component: {
+ name: "Magnetic Resonance Focuser",
+ abrv: "Mag Focus",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 60,
+ replace_time: 1200,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 0,
+ affects: 6
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: Thruster,
+
+ component: {
+ name: "Lateral Thrust Motors",
+ abrv: "Lateral",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Spinal Thrust Motors",
+ abrv: "Spinal",
+ repair_time: 90,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Braking Thrusters",
+ abrv: "Braking",
+ repair_time: 60,
+ replace_time: 3600,
+ spares: 1,
+ affects: 0x83
+ },
+
+ component: {
+ name: "Plasma Grid",
+ abrv: "Plasma Grid",
+ repair_time: 180,
+ replace_time: 7200,
+ spares: 1,
+ affects: 3
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Quantum Drive",
+
+ component: {
+ name: "Graviscalar Bias Node A",
+ abrv: "Alpha Node",
+ repair_time: 200,
+ replace_time: 3600,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Graviscalar Bias Node B",
+ abrv: "Beta Node",
+ repair_time: 200,
+ replace_time: 3600,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Quantum Wave Containment Generator",
+ abrv: "Containment",
+ repair_time: 60,
+ replace_time: 1200,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Dimensional Waveguide",
+ abrv: "Waveguide",
+ repair_time: 30,
+ replace_time: 400,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Filter/Sync Lock",
+ abrv: "Sync Lock",
+ repair_time: 600,
+ replace_time: 60,
+ spares: 1,
+ affects: 1
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Grav Shield",
+
+ component: {
+ name: "Grav Bias Generator",
+ abrv: "Grav Gen",
+ repair_time: 30,
+ replace_time: 300,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Fusion Power Adaptor",
+ abrv: "Pwr Adaptor",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Harmonic Oscillator",
+ abrv: "Harm Osc",
+ repair_time: 1200,
+ replace_time: 60,
+ spares: 2,
+ affects: 5
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 900,
+ replace_time: 60,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Sensor",
+
+ component: {
+ name: "Transmit Array",
+ abrv: "XMIT",
+ repair_time: 1200,
+ replace_time: 120,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Receive Array",
+ abrv: "RECV",
+ repair_time: 1200,
+ replace_time: 120,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Spacial Filter",
+ abrv: "Filter",
+ repair_time: 1800,
+ replace_time: 60,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Processor",
+ abrv: "CPU",
+ repair_time: 600,
+ replace_time: 90,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "System Interface",
+ abrv: "Sys I/F",
+ repair_time: 900,
+ replace_time: 60,
+ spares: 2,
+ affects: 1
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Computer",
+
+ component: {
+ name: "Processor",
+ abrv: "CPU",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Storage",
+ abrv: "Storage",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "System Interface",
+ abrv: "Sys I/F",
+ repair_time: 90,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Beam Weapon",
+
+ component: {
+ name: "Beam Generator",
+ abrv: "Beam Gen",
+ repair_time: 60,
+ replace_time: 2400,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Beam Focuser",
+ abrv: "Beam Focus",
+ repair_time: 900,
+ replace_time: 30,
+ spares: 2,
+ affects: 1
+ },
+
+ component: {
+ name: "Flashback Supressor",
+ abrv: "Flash Sup",
+ repair_time: 90,
+ replace_time: 1500,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 120,
+ replace_time: 30,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Bolt Weapon",
+
+ component: {
+ name: "Laser Generator",
+ abrv: "Laser Gen",
+ repair_time: 60,
+ replace_time: 1800,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 300,
+ replace_time: 60,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Plasma Weapon",
+
+ component: {
+ name: "Plasma Exciter",
+ abrv: "Exciter",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Plasma Coupling",
+ abrv: "Plasma Cpl",
+ repair_time: 60,
+ replace_time: 300,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Radiation Shield",
+ abrv: "Rad Shield",
+ repair_time: 120,
+ replace_time: 900,
+ spares: 1,
+ affects: 2
+ },
+
+ component: {
+ name: "Heat Exchanger",
+ abrv: "Heat Exch",
+ repair_time: 60,
+ replace_time: 1800,
+ spares: 1,
+ affects: 6
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 180,
+ replace_time: 30,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Missile Weapon",
+
+ component: {
+ name: "Magnetic Launch Rail",
+ abrv: "Launcher",
+ repair_time: 300,
+ replace_time: 3000,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Ordnance Trolley/Loader",
+ abrv: "Loader",
+ repair_time: 120,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Tactical Computer Interface",
+ abrv: "Tac I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Probe",
+
+ component: {
+ name: "Magnetic Launcher",
+ abrv: "Launcher",
+ repair_time: 300,
+ replace_time: 3000,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Probe Caddy/Loader",
+ abrv: "Loader",
+ repair_time: 120,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Flux Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "System Computer Interface",
+ abrv: "Sys I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+// +------------------------------------------------------------------------+
+
+system: {
+ name: "Flight Deck",
+
+ component: {
+ name: "Magnetic Launch Rail",
+ abrv: "Mag Rail",
+ repair_time: 120,
+ replace_time: 1800,
+ spares: 1,
+ affects: 3
+ },
+
+ component: {
+ name: "Hangar Access Causeway",
+ abrv: "Elevator",
+ repair_time: 300,
+ replace_time: 6000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "ILS Transponder",
+ abrv: "ILS",
+ repair_time: 120,
+ replace_time: 2000,
+ spares: 1,
+ affects: 1
+ },
+
+ component: {
+ name: "Power Coupling",
+ abrv: "Pwr Coupling",
+ repair_time: 600,
+ replace_time: 30,
+ spares: 2,
+ affects: 3
+ },
+
+ component: {
+ name: "Navigational Computer Interface",
+ abrv: "Nav I/F",
+ repair_time: 90,
+ replace_time: 240,
+ spares: 1,
+ affects: 5
+ }
+}
+
+
+
+
diff --git a/data/shatter/Weapons/Wep.def b/data/shatter/Weapons/Wep.def
new file mode 100644
index 0000000..fad86dc
--- /dev/null
+++ b/data/shatter/Weapons/Wep.def
@@ -0,0 +1,2135 @@
+WEAPON
+
+primary: {
+ name: "Alpha Cannon"
+ group: GUNS
+ beauty: "Alpha_Beauty.pcx"
+ description: "The ALPHA CANNON is the high-energy particle weapon in use on most Hegemony fighter craft. Analysts believe that this weapon is nearing end-of-life phase out, but remains in service because it is cheap and reliable. The Alpha Cannon tends to be low in effective damage and penetration, but makes up for those limitations with a high refire rate."
+ target_type: 0x000f00ff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.3
+ capacity: 150
+ charge: 5
+ min_charge: 5
+ damage: 12
+ speed: 6.0e3
+ life: 2
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 2.0
+ length: 80.0
+ light: 100
+ bitmap: "shot0.pcx"
+ flash: "flash0.pcx"
+ flash_scale: 0.5
+ sound: "Shot1.wav"
+ sound_min_dist: 100
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "Delta Cannon"
+ group: GUNS
+ beauty: "Delta_Beauty.pcx"
+ description: "The DELTA CANNON is the current generation standard high-energy particle weapon in use on most Alliance fighters. Notorious for reliablity problems in its early years of service, the Delta Cannon is now considered one of the most potent and effective small energy weapons ever fielded by Force:Space. The Delta Cannon has improved focus and high bolt velocity that contribute to its accuracy at ranges up to 10 km."
+ target_type: 0x000f00ff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.25
+ capacity: 200
+ charge: 5
+ min_charge: 5
+ damage: 20
+ speed: 8.0e3
+ life: 1.6
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 2.0
+ length: 80.0
+ light: 100
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 100
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "Heavy Cannon"
+ group: GUNS
+ beauty: "Heavy_Beauty.pcx"
+ description: "The HEAVY ENERGY CANNON has recently been fitted on the F/A-38D Thunderbolt series of attack fighters. The Heavy is a slimmed down version of the retired 'Chain Lightning' cannon used on early model LCAs for mine sweeping and antiship warfare. This is the first time a weapon of this caliber has been fitted on a single seat fighter. The Heavy is too slow and unweildy to be effective against maneuvering fighters, but the high damage potential makes this weapon a first-rate ship killer."
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 30
+ refire_delay: 0.30
+ capacity: 300
+ charge: 10
+ min_charge: 10
+ damage: 15
+ speed: 7.0e3
+ life: 2.0
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.03
+ aim_el_max: 0.03
+
+ graphic_type: 3 // bolt
+ width: 3.0
+ length: 70.0
+ light: 100
+ bitmap: "shot4.pcx"
+ flash: "flash4.pcx"
+ flash_scale: 0.5
+ sound: "blockade_cannon.wav"
+ sound_min_dist: 500
+ sound_max_dist: 17e3
+}
+
+primary: {
+ name: "Fighter Turret"
+ group: TURRET
+ beauty: "Turret1_Beauty.pcx"
+ description: "This automated FIGHTER TURRET provides rear quarter protection for the F/A-38D Thunderbolt series of attack fighters. The turret is tied into the Alliance sensor network and will automatically engage any threat that comes within its range. Even though it is not the most accurate platform in the fleet, the Fighter Turret is an effective deterrent to any fighters attempting a tail chase on the 'Bolt."
+ target_type: 0x000fffff
+ value: 1
+ capacity: 100
+ recharge_rate: 25
+ refire_delay: 0.15
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 8.0e3
+ life: 1.6
+
+ min_range: 3.0e3
+ max_range: 12.5e3
+ max_track: 25.0e3
+
+ self_aiming: true
+ aim_az_max: 0.75
+ aim_el_max: 0.50
+
+ turret: "turret.mag"
+ scale: 0.22
+
+ graphic_type: 3 // bolt
+ width: 2
+ length: 40
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+primary: {
+ name: "LCA Turret"
+ group: TURRET
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 100
+ recharge_rate: 80
+ refire_delay: 0.18
+ charge: 15
+ min_charge: 10
+ damage: 15
+ speed: 8.0e3
+ life: 1.6
+
+ min_range: 3.0e3
+ max_range: 12.5e3
+ max_track: 25.0e3
+
+ self_aiming: true
+ aim_az_max: 1.50
+ aim_el_max: 0.80
+ aim_el_min: 0.00
+
+ turret: "Alliance/LCATurretGuns.mag"
+ turret_base: "Alliance/LCaTurretBase.mag"
+ scale: 0.12
+
+ graphic_type: 3 // bolt
+ width: 2
+ length: 30
+ bitmap: "shot4.pcx"
+ flash: "flash4.pcx"
+ flash_scale: 0.5
+ sound: "Zap8.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+missile: {
+ name: Archer
+ group: SRM
+ beauty: "Javelin_Beauty.pcx"
+ description: "The ARCHER SRM is the standard Hegemony anti-fighter munition. Although not very fast, the Archer is very maneuverable, which makes it deadly accurate in short range engagements. The Archer's main weakness is its low-quality seeker head. The Archer can be defeated by releasing a decoy and performing a break turn at low power. Each Archer hardpoint carries two weapons."
+ target_type: 0x000f00ff
+ value: 2
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1e3
+ lethal_radius: 200
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ attachment: (-1, 0, 0)
+ attachment: ( 1, 0, 0)
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 20e3
+ max_track: 60e3
+
+ carry_mass: 0.5
+ carry_resist: 2
+
+ guided: 1
+ mass: 0.5
+ thrust: 3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.12
+ light: 200
+ model: "missile03.mag"
+ trail: "smoke.pcx"
+ trail_width: 1.5
+ trail_dim: 7
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Javelin
+ group: SRM
+ beauty: "Javelin_Beauty.pcx"
+ description: "The JAVELIN SRM is the standard Alliance short range anti-fighter munition. The Javelin is quite similar to the Hegemony Archer SRM, although it is carries more fuel and has an increased effective range as a result. Unfortunately, it is not much faster than the Archer, and enemy fighters can still defeat the shot with a decoy if given sufficient warning. The Javelin is best employed at short ranges from low aspect to minimize the enemy's chance of escape. Each Javelin hardpoint carries three weapons."
+ target_type: 0x000f00ff
+ value: 2
+ ammo: 2
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1.2e3
+ lethal_radius: 200
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ attachment: (-1, 0, 0)
+ attachment: ( 1, 0, 0)
+ attachment: ( 0,-1, 0)
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 25e3
+ max_track: 60e3
+
+ carry_mass: 0.54
+ carry_resist: 2
+
+ guided: 1
+ mass: 0.5
+ thrust: 3.3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile03.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 7
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Vector
+ group: MRM
+ description: "The VECTOR MRM is a medium-range general purpose guided munition. The Vector is a high-speed weapon that is suitable for engaging small to medium-size maneuvering targets at ranges from 15 to 35 km. Hegemony forces field an almost identical munition known as the Longbow."
+ beauty: "Vector_Beauty.pcx"
+ target_type: 0x000f00ff
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 1.2e3
+ lethal_radius: 250
+ speed: 5e3
+ life: 15
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 80e3
+
+ carry_mass: 0.6
+ carry_resist: 2
+
+ guided: 2
+ mass: 0.5
+ thrust: 8e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 4
+ yaw_rate: 4
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile02.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 6
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Hammer
+ group: AGM
+ beauty: "Hammer_Beauty.pcx"
+ description: "The HAMMER AGM is a medium-range passive-guided air to ground munition. The Hammer is a low-speed but very powerful weapon that is suitable for engaging hardened ground targets at ranges up to 50 km. Recommended procedure is to employ the Hammer from its maximum range to avoid subjecting your fighter to ground fire."
+ target_type: 0xffff0000
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 2
+ charge: 1
+ min_charge: 1
+ damage: 5e3
+ speed: 5e3
+ life: 20
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 90e3
+
+ carry_mass: 2.103
+ carry_resist: 3
+
+ guided: 1
+ mass: 2
+ thrust: 10e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile04.mag"
+ trail: "smoke.pcx"
+ trail_width: 2.5
+ trail_dim: 5
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+missile: {
+ name: Harpoon
+ group: ASM
+ beauty: "Vector_Beauty.pcx"
+ description: "The HARPOON ASM is a long-range passive-guided antiship munition. The Harpoon is a high-speed weapon that is suitable for engaging small to medium-size starships at ranges up to 50 km. The Harpoon is not easily spoofed or intercepted and has excellent shield penetration capabilities. Recommended procedure is to employ this weapon from its maximum range to avoid subjecting your fighter to enemy PDB fire. Hegemony forces field a similar fighter-launched antiship munition known as the HORN."
+ target_type: 0x000ffff0
+ value: 3
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 1
+ charge: 1
+ min_charge: 1
+ damage: 5e3
+ penetration: 10
+ speed: 5e3
+ life: 20
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 90e3
+
+ carry_mass: 1.255
+ carry_resist: 2
+
+ guided: 1
+ mass: 1
+ thrust: 10e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 3
+ yaw_rate: 3
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile02.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 5
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "Missile1.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+missile: {
+ name: Rockets
+ group: RKS
+ beauty: "Rocket_Beauty.pcx"
+ description: "Each fighter-based ROCKET POD holds twelve guided submunitions that may be employed against a wide variety of spaceborne and ground-based targets. Rockets are fired from the pod in salvos of four each time press the firing stud. Rockets are most effective against stationary or slow moving targets, and are often used in mine-sweeping missions."
+ target_type: 0xffffffff
+ value: 2
+ ammo: 12
+ ripple_count: 4
+ recharge_rate: 10
+ refire_delay: 0.35
+ charge: 1
+ min_charge: 1
+ damage: 1e3
+ lethal_radius: 100
+ speed: 5e3
+ life: 8
+ visible_stores: false
+
+ self_aiming: false
+ aim_az_max: 0
+ aim_el_max: 0
+
+ min_range: 5e3
+ max_range: 25e3
+ max_track: 60e3
+
+ carry_mass: 0.8
+ carry_resist: 0.3
+
+ guided: 1
+ mass: 0.2
+ thrust: 2e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 0.5
+ pitch_rate: 0.5
+ yaw_rate: 0.5
+
+ turret: "rocket_launcher.mag"
+ scale: 0.15
+ eject: (0, 0, 300)
+
+ graphic_type: 1 // solid
+ scale: 0.15
+ light: 200
+ model: "missile00.mag"
+ trail: "smoke.pcx"
+ trail_width: 1
+ trail_dim: 8
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "missile2.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
+missile: {
+ name: "Recon Pod"
+ group: CAM
+ beauty: "Recon_Beauty.pcx"
+ description: "The wing-mounted RECON POD is a multi-frequency sensor package that may be used to capture detailed information about an enemy ship, station, or ground unit. The Recon Pod will perform two detailed scans in rapid succession each time you depress the firing stud. The Pod contains storage for ten scans, so you can only fire it five times before returning to base. Of course, the Recon Pod does no damage to enemy targets."
+ target_type: 0xffffffff
+ value: 1
+ ammo: 10
+ ripple_count: 2
+ recharge_rate: 10
+ refire_delay: 0.35
+ charge: 1
+ min_charge: 1
+ damage: -1
+ lethal_radius: 100
+ speed: 30e3
+ life: 1.5
+ visible_stores: false
+
+ self_aiming: false
+ aim_az_max: 0
+ aim_el_max: 0
+
+ min_range: 5e3
+ max_range: 30e3
+ max_track: 60e3
+
+ carry_mass: 1.1
+ carry_resist: 1
+
+ guided: 1
+ mass: 0.2
+ thrust: 4e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 1
+ yaw_rate: 1
+
+ turret: "recon.mag"
+ scale: 0.15
+
+ sound: "click.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 4e3
+}
+
+
+drone: {
+ name: "Fighter Decoy"
+ group: DECOY
+ beauty: "Decoy_Beauty.pcx"
+ description: "The FIGHTER DECOY is a general-purpose missile countermeasure that is designed to mimic the radient energy signature of your fighter's engine. Anti-fighter missiles will generally guide on the closest, strongest return that their sensors can detect. When your Sensor Warning Receiver notifies you of an inbound threat, you should release a decoy and disengage your drive augmenter (afterburner) to evade the missile. The Fighter Decoy does no damage to enemy targets."
+ target_type: 0x00
+ value: 1
+ ammo: 10
+ recharge_rate: 1
+ refire_delay: 1
+ damage: 0
+ speed: 300
+ life: 5
+
+ carry_mass: 0.1
+ carry_resist: 0
+
+ decoy: Fighter
+ guided: 0
+ mass: 0.5
+ thrust: 150
+ drag: 0.1
+
+ graphic_type: 2 // sprite
+ scale: 0.25
+ bitmap: "drive.pcx"
+
+ flare: "shot7.pcx"
+ flare_scale: 1.3
+
+ sound: "decoy.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
+
+primary: {
+ name: "Blockade Cannon"
+ group: PDB
+ beauty: "Blockade_Beauty.pcx"
+ description: "The BLOCKADE CANNON is an energy bolt turret that is usually mounted on space mines. The Blockade Cannon is designed to engage civilian shipping, but it is also quite effective against fighter and attack craft."
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 2000
+ charge: 10
+ min_charge: 10
+ damage: 50
+ penetration: 10
+ speed: 7.5e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 15e3
+ max_track: 30e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 1.00
+ slew_rate: 0.10 // ~5 degrees / second
+
+ turret: "mine_guns.mag"
+ turret_base: "mine_base.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 8
+ length: 100
+ bitmap: "shot0.pcx"
+ flash: "flash0.pcx"
+ flash_scale: 1.0
+ sound: "blockade_cannon.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Vulcan Cannon"
+ group: VULCAN
+ beauty: "Vulcan_Beauty.pcx"
+ description: "The VULCAN CANNON is a rapid-fire energy bolt weapon that is generally deployed on LCA-class attack craft. The Vulcan can engage targets ranging from small fighters to medium-size starships and ground units."
+ target_type: 0xffffffff
+ value: 1
+ recharge_rate: 15
+ refire_delay: 0.08
+ charge: 5
+ min_charge: 5
+ damage: 10
+ speed: 25e3
+ life: 2
+
+ min_range: 15e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.05
+ aim_el_max: 0.05
+
+ graphic_type: 3 // bolt
+ width: 5
+ length: 120
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 0.2
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Zolon Cannon"
+ group: GUNS
+ target_type: 0x000fffff
+ value: 2
+ recharge_rate: 30
+ refire_delay: 0.33
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 150
+ speed: 7.5e3
+ life: 2.5
+
+ syncro: true
+ self_aiming: true
+ aim_az_max: 0.25
+ aim_el_max: 0.25
+
+ graphic_type: 2 // sprite
+ scale: 0.75
+ light: 150
+ light_color: (140,255,180)
+ bitmap: "ShotZ.pcx"
+ sound: "shot4.wav"
+ sound_min_dist: 500
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Phalanx Cannon"
+ group: PDB
+ beauty: "Phalanx_Beauty.pcx"
+ description: "The PHALANX CANNON is the standard point defense battery (PDB) for smaller Force:Space starships. Each Phalanx mount is a freely rotating ball turret with two alternate firing barrels. The Phalanx is deadly accurate against fighter and combat drone targets at short ranges."
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ turret: "Alliance/BallTurret2opt.mag"
+ scale: 0.3
+ muzzle: ( 16, 0, 110),
+ muzzle: (-16, 0, 110),
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 400
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Viking Cannon"
+ group: PDB
+ beauty: "Viking_Beauty.pcx"
+ description: "The VIKING CANNON is the standard point defense battery (PDB) for many military stations. Each Viking mount is a freely rotating cylindrical turret with two alternate firing barrels. The Viking is quite accurate and delivers a devastating punch against against fighter targets at short to medium ranges."
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 25
+ speed: 23e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ turret: "Alliance/BallTurret1opt.mag"
+ scale: 5
+ muzzle: ( 4, 0, 65)
+ muzzle: (-4, 0, 65)
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 400
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Ursa Cannon"
+ group: PDB
+ beauty: "Ursa_Beauty.pcx"
+ description: "The URSA CANNON is an older point defense battery (PDB) system in use on some Hegemony and Independent Worlds frigate-class starships. The Ursa Cannon has only half the rate of fire of the Alliance's Phalanx system, but its high-speed bolts make in an effective offensive and defensive gun."
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.2
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 35e3
+ life: 1
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.05
+ aim_el_max: 0.70
+
+ turret: "Dantari/Ursa.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 150
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Orca Cannon"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ description: "The ORCA CANNON is the standard point defense battery (PDB) for Hegemony and Independent Worlds starships. Each Orca mount is an articulated deck platform turret with two alternate firing barrels. The Orca is deadly accurate against fighter and combat drone targets at short ranges, but lacks the speed and rate of fire of the Alliance Phalanx PDB system."
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 18e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 28e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Dantari/Rail-12.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 10
+ length: 120
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca Inverted"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 10
+ speed: 18e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 28e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.10
+ aim_el_min: -0.80
+
+ turret: "Dantari/Rail-12-Inverted.mag"
+ scale: 2
+
+ graphic_type: 3 // bolt
+ width: 10
+ length: 120
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca 2 Cannon"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ description: "The ORCA 2 CANNON is the big brother of the standard Orca PDB. Outwardly similar to the standard Orca, this heavy duty gun is mainly used defending Hegemony stations. Each Orca 2 mount is an articulated deck platform turret with two alternate firing barrels. Slower and less accurate than the standard Orca mount, this high-powered weapon packs quite a wallop when it does manage to hit the target."
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 30
+ speed: 10e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 20e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Orca/t2_guns.mag"
+ turret_base: "Orca/t2_base.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 15
+ length: 150
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Orca 2 Inverted"
+ group: PDB
+ beauty: "Orca_Beauty.pcx"
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.2
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 7
+ speed: 10e3
+ life: 2
+
+ min_range: 4e3
+ max_range: 20e3
+ max_track: 50e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.10
+ aim_el_min: -0.80
+
+ turret: "Orca/t2_guns.mag"
+ turret_base: "Orca/t2_base_inv.mag"
+ scale: 1
+
+ graphic_type: 3 // bolt
+ width: 15
+ length: 150
+ bitmap: "Orca/shot0.pcx"
+ flash: "Orca/flash0.pcx"
+ flash_scale: 1.5
+ sound: "Shot2.wav"
+ sound_min_dist: 3e3
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Vanguard"
+ group: GUNS
+ beauty: "Vanguard_Beauty.pcx"
+ description: "The VANGUARD CANNON is the standard point defense battery (PDB) for Force:Space cruisers and carriers. Each Vanguard mount is an articulated deck platform turret with two alternate firing barrels. The Vanguard is more powerful than the Phalanx system used on smaller starships, but not quite as accurate."
+ target_type: 0x000fffff
+ value: 3
+ recharge_rate: 20
+ refire_delay: 0.15
+ capacity: 1000
+ charge: 10
+ min_charge: 10
+ damage: 25
+ speed: 15e3
+ life: 3
+
+ min_range: 5e3
+ max_range: 45e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.20
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+
+ turret: "Alliance/Guns1opt.mag"
+ turret_base: "Alliance/Base1opt.mag"
+ scale: 1.2
+ muzzle: ( 7, 0, 60),
+ muzzle: (-7, 0, 60),
+
+ graphic_type: 3 // bolt
+ width: 3
+ length: 60
+ bitmap: "shot1.pcx"
+ flash: "flash1.pcx"
+ flash_scale: 1
+ sound: "Shot2.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Helicon"
+ group: PDB
+ beauty: "Helicon_Beauty.pcx"
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 1
+ turret: "Marakan/28MMGAUSSGUN.MAG"
+ muzzle: (0, 10, 131)
+
+ width: 4
+ length: 45
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Gauss_Bolt.jpg",
+ flash: "Marakan/Gauss_Flash.jpg",
+ flash_scale: 0.2,
+
+ sound: "Marakan/Gauss_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Light-PDB"
+ group: PDB
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 20e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 1.5,
+ turret: "Marakan/SmallGun.mag",
+
+ width: 4
+ length: 45
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Gauss_Bolt.jpg",
+ flash: "Marakan/Gauss_Flash.jpg",
+ flash_scale: 0.2,
+
+ sound: "Marakan/Gauss_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Rail-5"
+ group: RAIL
+ secret: true
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 2,
+ turret: "Marakan/Rail-12.mag",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ width: 10,
+ length: 120,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 0.3,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 2e3,
+ sound_max_dist: 20e3
+}
+
+
+primary: {
+ name: "Rail-12"
+ group: RAIL
+ beauty: "Rail12_Beauty.pcx"
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 3,
+ turret: "Marakan/Rail-12.mag",
+ muzzle: ( 4, 11, 75),
+ muzzle: (-4, 11, 75),
+
+ width: 15,
+ length: 150,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.5,
+ flare: "Marakan/Rail_Flare.jpg",
+ flare_scale: 0.03,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Rail-12 Inverted"
+ group: RAIL
+
+ target_type: 0x000fffff
+ value: 1
+ capacity: 200
+ recharge_rate: 25
+ refire_delay: 0.1
+ charge: 10
+ min_charge: 5
+ damage: 20
+ speed: 15e3
+ life: 2
+
+ min_range: 10e3
+ max_range: 35e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.80
+ aim_el_min: -0.10
+ slew_rate: 0.75
+
+ graphic_type: 3, // blob
+
+ scale: 3,
+ turret: "Marakan/Rail-12-Inverted.mag",
+ muzzle: ( 4, -11, 75),
+ muzzle: (-4, -11, 75),
+
+ width: 15,
+ length: 150,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.5,
+ flare: "Marakan/Rail_Flare.jpg",
+ flare_scale: 0.03,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+primary: {
+ name: "Rail-15"
+ group: RAIL
+ beauty: "Rail15_Beauty.pcx"
+
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 150
+
+ capacity: 2000
+ charge: 1
+ min_charge: 0.8
+
+ recharge_rate: 0
+
+ refire_delay: 4
+
+ speed: 10e3
+ mass: 7
+
+ life: 4.375
+
+ guided: 0
+ syncro: true
+ self_aiming: true
+
+ slew_rate: 1
+
+ min_range: 1e3
+ max_range: 35e3
+ max_track: 55e3
+
+ graphic_type: 3
+ scale: 4,
+
+ turret: "Marakan/DUEL15INRAILGUN.MAG",
+
+ width: 18,
+ length: 170,
+
+ light: 200,
+ light_color: (114, 45, 0),
+ bitmap: "Marakan/Rail_Bolt.jpg",
+ flash: "Marakan/Rail_Flash.jpg",
+ flash_scale: 1.9,
+
+ sound: "Marakan/Rail_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+primary: {
+ name: "Mag-18"
+ group: MAG
+ beauty: "Mag18_Beauty.pcx"
+
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 220
+
+ capacity: 1000
+ charge: 1
+ min_charge: 0.9
+ recharge_rate: 0
+ refire_delay: 2
+
+ speed: 6000
+ mass: 12
+
+ life: 7.5
+
+ guided: 0
+ syncro: true
+ self_aiming: true
+
+ slew_rate: 1
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ graphic_type: 3, // blob
+
+ scale: 4,
+
+ turret: "Marakan/18INMAGGUN.MAG",
+ muzzle: (0, 12, 81),
+
+ width: 50,
+ length: 230,
+
+
+ light: 200,
+ light_color: (100, 10, 0),
+ bitmap: "Marakan/Mag_Bolt.jpg",
+ flash: "Marakan/Mag_Flash.jpg",
+ flash_scale: 3,
+ flare: "Marakan/Mag_Flare.jpg",
+ flare_scale: 0.8,
+ trail: "Marakan/Mag_Trail.jpg",
+ trail_width: 6,
+ sound: "Marakan/Mag_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+drone: {
+ name: "Rostov"
+ group: ROSTOV
+ beauty: "Rostov_Beauty.pcx"
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 9e3
+ integrity: 50
+ speed: 6000
+ ammo: 40
+ refire_delay: 5
+ life: 10
+ eject: (0,0,6000)
+ mass: 10
+ thrust: 23e3
+
+ capacity: 1,
+ ripple_count: 1,
+
+ roll_rate: 5,
+ pitch_rate: 5,
+ yaw_rate: 5,
+
+ guided: 1,
+ lethal_radius: 100,
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ charge: 1,
+ min_charge: 0.9,
+ recharge_rate: 10,
+
+ scale: 4,
+ turret: "Marakan/Rostov-L.MAG",
+
+ syncro: false,
+ self_aiming: true,
+
+ aim_az_max: 0
+ aim_az_min: 0
+ aim_el_max: 1
+ aim_el_min: -1
+
+ slew_rate: 1,
+ graphic_type: 1 // solid
+
+ roll_drag: 1,
+ pitch_drag: 1,
+ yaw_drag: 1,
+
+ light: 200,
+ light_color: (160, 100, 00),
+
+ model: "Marakan/MISSILE.mag",
+ flash: "Marakan/Rostov_Flash.jpg",
+ flash_scale: 2,
+ flare: "Marakan/Rostov_Flare.jpg",
+ flare_scale: 1.5,
+ trail: "Marakan/Rostov_Trail.jpg",
+ trail_width: 20,
+
+ sound: "Marakan/Rostov_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+drone: {
+ name: "Rostov-Starboard"
+ group: ROSTOV
+ secret: true
+ target_type: 0x0000fff0
+ value: 5
+
+ damage: 9e3
+ integrity: 50
+ speed: 6000
+ ammo: 40
+ refire_delay: 5
+ life: 10
+ eject: (0,0,6000)
+ mass: 10
+ thrust: 25e3
+
+ capacity: 1,
+ ripple_count: 1,
+
+ roll_rate: 5,
+ pitch_rate: 5,
+ yaw_rate: 5,
+
+ guided: 1,
+ lethal_radius: 100,
+
+ min_range: 1e3
+ max_range: 40e3
+ max_track: 60e3
+
+ charge: 1,
+ min_charge: 0.9,
+ recharge_rate: 10,
+
+ scale: 4,
+ turret: "Marakan/Rostov-R.MAG",
+
+ syncro: false,
+ self_aiming: true,
+
+ aim_az_max: 0
+ aim_az_min: 0
+ aim_el_max: 1
+ aim_el_min: -1
+
+ slew_rate: 1,
+ graphic_type: 1 // solid
+
+ roll_drag: 1,
+ pitch_drag: 1,
+ yaw_drag: 1,
+
+ light: 200,
+ light_color: (160, 100, 00),
+
+ model: "Marakan/MISSILE.mag",
+ flash: "Marakan/Rostov_Flash.jpg",
+ flash_scale: 2,
+ flare: "Marakan/Rostov_Flare.jpg",
+ flare_scale: 1.5,
+ trail: "Marakan/Rostov_Trail.jpg",
+ trail_width: 20,
+
+ sound: "Marakan/Rostov_Sound.wav",
+ sound_min_dist: 3e3,
+ sound_max_dist: 30e3
+}
+
+
+
+primary: {
+ name: "Plasma Cannon"
+ group: CANNON
+ beauty: "Decoy_Beauty.pcx"
+ description: "The PLASMA CANNON is used as the primary antiship gun on Alliance Frigates."
+ target_type: 0x000ffff0
+ value: 1
+ recharge_rate: 15
+ refire_delay: 0.15
+ charge: 10
+ min_charge: 5
+ damage: 30
+ speed: 15e3
+ life: 5
+
+ min_range: 10e3
+ max_range: 40e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.50
+
+ graphic_type: 2 // sprite
+ scale: 1
+ bitmap: "shot7.pcx"
+ sound: "shot4.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+beam: {
+ name: "XRay Laser"
+ group: XRAY
+ beauty: "XRay_Beauty.pcx"
+ description: "XRAY LASER batteries are the most common primary beam weapons used by destroyer and light cruiser class starships in the Blue Drift region. These weapons deliver a tremendous amount of destructive energy each second the beams are in contact with the hull armor of their target. However, the coherent x-rays are easily scattered by standard gravitational deflector shields, giving them a low shield penetration factor."
+ target_type: 0x000ffff0
+ value: 10
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1000
+ charge: 1000
+ min_charge: 500
+ damage: 3
+ speed: 3e8
+ life: 1.5
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ graphic_type: 3 // bolt
+ width: 20
+ length: 3e8
+ bitmap: "shot9.pcx"
+ flash: "flash9.pcx"
+ flash_scale: 1.75
+ sound: "beam2.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+beam: {
+ name: "Gamma Laser"
+ group: GRASER
+ beauty: "Gamma_Beauty.pcx"
+ description: "GAMMA RAY LASER batteries are the most powerful primary beam weapons in service in the Blue Drift region. Used mainly by heavy cruiser class starships, these weapons are more than twice as powerful as the X-Ray Laser batteries used on lighter starships. Like their smaller cousins, Gamma Ray Lasers have poor shield penetration, but they still pack enough punch to make an effective weapon against heavy starships and orbital stations."
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 4
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 25
+ length: 3e8
+ bitmap: "ShotGamma.pcx"
+ flash: "FlashGamma.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+beam: {
+ name: "Graser Turret"
+ group: GRASER
+ beauty: "GraserTurret_Beauty.pcx"
+ description: "GAMMA RAY LASER TURRETS are often mounted on Hegemony military stations for defense against starship assault. These weapons are essentially turret-mounted versions of the Gamma Ray Lasers used on heavy starships. Backed by the powerful reactors of a military station, Gamma Ray Laser Turrets have the endurance to wear down enemy starships even through the scattering effect of their gravitational deflector shields."
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 100
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 6
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 1.00
+ aim_el_max: 0.65
+ aim_el_min: -0.08
+
+ turret: "GraserTurret/guns.mag"
+ turret_base: "GraserTurret/base.mag"
+ scale: 2
+ muzzle: ( 0, 0, 90),
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 50
+ length: 3e8
+ bitmap: "ShotGamma.pcx"
+ flash: "FlashGamma.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+
+beam: {
+ name: "Zolon Laser"
+ group: LASER
+ target_type: 0x000ffff0
+ value: 15
+ recharge_rate: 150
+ refire_delay: 0 // limited by min_charge
+ capacity: 1500
+ charge: 1500
+ min_charge: 500
+ damage: 30
+ speed: 3e8
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 100e3
+
+ self_aiming: true
+ aim_az_max: 0.175
+ aim_el_max: 0.175
+
+ spread_az: 0.1
+ spread_el: 0.1
+
+ graphic_type: 3 // bolt
+ width: 25
+ length: 3e8
+ bitmap: "ShotZBeam.pcx"
+ flash: "FlashZBeam.pcx"
+ flash_scale: 2
+ sound: "Beam3.wav"
+ sound_min_dist: 10e3
+ sound_max_dist: 50e3
+}
+
+
+primary: {
+ name: "AAA Cannon"
+ group: AAA
+ beauty: "Ground/AAA2_Beauty.pcx"
+ description: "The ANTI AIRCRAFT ARTILLERY (AAA) CANNON is an autonomous ground-based energy bolt system optimized for area defense against hostile airborne targets. This variant has two alternate firing barrels mounted on an upright turret with built-in multifrequency sensor. It can engage fighters and attack craft at ranges up to 50 km."
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.2
+ charge: 1
+ min_charge: 1
+ damage: 50
+ speed: 30e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.75
+
+ turret: "Ground/AAA2Guns.mag"
+ turret_base: "Ground/AAA2Turret.mag"
+ scale: 2
+ muzzle: ( 12, 0, 112),
+ muzzle: (-12, 0, 112),
+
+ graphic_type: 3 // bolt
+ width: 32
+ length: 800
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+primary: {
+ name: "Quad AAA"
+ group: AAA
+ beauty: "Ground/AAA4_Beauty.pcx"
+ description: "The ANTI AIRCRAFT ARTILLERY (AAA) CANNON is an autonomous ground-based energy bolt system optimized for area defense against hostile airborne targets. This variant has four sequenced barrels for increased firing speed and coverage. It can engage fighters and attack craft at ranges up to 50 km."
+ target_type: 0x000fffff
+ value: 1
+ recharge_rate: 20
+ refire_delay: 0.1
+ charge: 1
+ min_charge: 1
+ damage: 25
+ speed: 30e3
+ life: 3
+
+ min_range: 10e3
+ max_range: 50e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.75
+
+ turret: "Ground/AAA4Guns.mag"
+ turret_base: "Ground/AAA4Turret.mag"
+ scale: 2
+ muzzle: ( 29, 9, 68)
+ muzzle: (-29, 9, 68)
+ muzzle: ( 29, -8, 68)
+ muzzle: (-29, -8, 68)
+
+ graphic_type: 3 // bolt
+ width: 32
+ length: 500
+ bitmap: "shot2.pcx"
+ flash: "flash2.pcx"
+ flash_scale: 1
+ sound: "shot3.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+
+
+missile: {
+ name: "SAM-1"
+ group: SAM
+ beauty: "Ground/SAM_Beauty.pcx"
+ description: "The SURFACE-TO-AIR MISSILE (SAM) BATTERY is an autonomous ground-launched guided missile system designed for area defense against a variety of airborne targets. Each SAM Battery carries eight missiles on an upright turret with integrated sensor array. It can engage fighters and attack craft at ranges up to 20 km."
+ target_type: 0x0f
+ value: 4
+ ammo: 1
+ recharge_rate: 10
+ refire_delay: 5
+ charge: 1
+ min_charge: 1
+ damage: 2.5e3
+ speed: 5e3
+ life: 10
+ visible_stores: true
+
+ self_aiming: true
+ aim_az_max: 3.15
+ aim_el_max: 0.5
+
+ min_range: 5e3
+ max_range: 20e3
+ max_track: 60e3
+
+ carry_mass: 0.5
+ carry_resist: 2
+
+ guided: 2
+ mass: 0.5
+ thrust: 3e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 3
+ yaw_rate: 3
+
+ turret: "Ground/SAMRail.mag"
+ turret_base: "Ground/SAMTurret.mag"
+ scale: 2
+
+ graphic_type: 1 // solid
+ light: 200
+ model: "sam.mag"
+ trail: "smoke.pcx"
+ trail_width: 5
+ trail_dim: 6
+ flare: "drive.pcx"
+ flare_scale: 0.25
+ sound: "Missile1.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 15e3
+}
+
+
+
+missile: {
+ name: "Mk7 Interceptor"
+ group: MK7
+ beauty: "Mk7_Beauty.pcx"
+ description: "The MARK VII INTERCEPTOR is a ship-launched antifighter weapon that is also effective at engaging enemy combat drones and missiles. The Mark VII also has some limited effectiveness against starship targets. The Mark VII is commonly deployed on frigates tasked with fleet defense, as well as heavier cruiser class starships."
+ target_type: 0x000fffff
+ value: 2
+ ammo: 20
+ recharge_rate: 10
+ refire_delay: 1
+ salvo_delay: 5
+ charge: 1
+ min_charge: 1
+ damage: 750
+ lethal_radius: 500
+ speed: 5e3
+ life: 10
+
+ self_aiming: true
+ aim_az_max: 1
+ aim_el_max: 1
+
+ min_range: 5e3
+ max_range: 50e3
+ max_track: 90e3
+
+ guided: 2
+ mass: 0.5
+ thrust: 15e3
+ drag: 2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (0, 0, 200)
+
+ graphic_type: 1 // solid
+ scale: 0.1
+ model: "Alliance/Mk7.mag"
+ trail: "smoke.pcx"
+ trail_width: 2
+ trail_dim: 6
+ flare: "shot6.pcx"
+ flare_scale: 1
+ sound: "Mk7.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: "Fusion Torpedo"
+ group: TORP
+ beauty: "Fusion_Beauty.pcx"
+ description: "The FUSION TORPEDO is the standard issue guided long range antiship munition in use on most Force:Space destroyer and destroyer-escort class vessels. Fusion Torpedoes pack a large amount of destructive power in a small package, but low speed and acceleration make them easy targets for PDB and Interceptor fire. Employing them at point blank range can mitigate this effect."
+ target_type: 0x0000fff0
+ value: 4
+ ammo: 20
+ recharge_rate: 1
+ refire_delay: 25
+ charge: 1
+ min_charge: 1
+ damage: 20e3
+ speed: 3e3
+ life: 60
+
+ min_range: 40e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 60e3
+ drag: 1.5
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 1
+ yaw_rate: 1
+
+ eject: (0, 0, 750)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "FusionTorp.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Torpedo.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Nike
+ group: NIKE
+ beauty: "Nike_Beauty.pcx"
+ description: "The NIKE high-speed antiship missile is commonly used on light cruiser class starships. The Nike is considerably faster than the smaller Fusion Torpedo, and also has better shield penetration capabilities."
+ target_type: 0x000ffff0
+ value: 5
+ ammo: 16
+ recharge_rate: 1
+ refire_delay: 5
+ salvo_delay: 15
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 70e3
+ drag: 1.2
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (0, 0, 750)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Athena1
+ group: ATHENA
+ beauty: "Nike_Beauty.pcx"
+ description: "The ATHENA is the elder sister of the Nike Antiship Missile. Compared to the Nike, the Athena has a more advanced drive sytstem and greater acceleration. Mounted only on heavy cruiser starship types, this Athena variant is designed for starboard missile tubes."
+ target_type: 0x000ffff0
+ value: 6
+ ammo: 12
+ recharge_rate: 1
+ refire_delay: 4
+ salvo_delay: 16
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 90e3
+ drag: 1.1
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (500, 0, 0)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: Athena2
+ group: ATHENA
+ beauty: "Nike_Beauty.pcx"
+ description: "The ATHENA is the elder sister of the Nike Antiship Missile. Compared to the Nike, the Athena has a more advanced drive sytstem and greater acceleration. Mounted only on heavy cruiser starship types, this Athena variant is designed for port side missile tubes."
+ target_type: 0x000ffff0
+ value: 6
+ ammo: 12
+ recharge_rate: 1
+ refire_delay: 4
+ salvo_delay: 16
+ charge: 1
+ min_charge: 1
+ damage: 25e3
+ penetration: 10
+ speed: 5e3
+ life: 60
+
+ min_range: 20e3
+ max_range: 100e3
+ max_track: 150e3
+
+ self_aiming: true
+ aim_az_max: 0.8
+ aim_el_max: 0.4
+
+ carry_mass: 2.5
+ carry_resist: 0
+
+ guided: 2
+ mass: 3
+ thrust: 90e3
+ drag: 1.1
+ roll_drag: 4
+ pitch_drag: 4
+ yaw_drag: 4
+ roll_rate: 1
+ pitch_rate: 2
+ yaw_rate: 2
+
+ eject: (-500, 0, 0)
+
+ graphic_type: 1 // solid
+ scale: 0.5
+ model: "Nike.mag"
+ flare: "drive.pcx"
+ flare_scale: 1.25
+ sound: "Nike.wav"
+ sound_min_dist: 2e3
+ sound_max_dist: 20e3
+}
+
+drone: {
+ name: "Sensor Drone"
+ group: DRONE
+ beauty: "Probe_Beauty.pcx"
+ description: "The starship SENSOR DRONE is a multi-frequency active sensor probe that may be used to detect enemy ships far beyond the range of onboard ship sensors. As long as it is active, the Sensor Drone will detect any contact that comes within 50 km of its position. Of course, the Sensor Drone does no damage to enemy targets."
+ target_type: 0x00
+ value: 1
+ ammo: 4
+ recharge_rate: 1
+ refire_delay: 10
+ damage: 0
+ speed: 200
+ life: 60
+
+ carry_mass: 0.5
+ carry_resist: 0
+
+ probe: true
+ guided: 0
+ mass: 0.5
+ thrust: 700
+ drag: 0.2
+
+ eject: (0, 0, 100)
+
+ flare: "drive.pcx"
+ flare_scale: 1
+
+ sound: "probe.wav"
+ sound_min_dist: 1e3
+ sound_max_dist: 10e3
+}
+
diff --git a/data/shatter/credits.txt b/data/shatter/credits.txt
new file mode 100644
index 0000000..75e6c84
--- /dev/null
+++ b/data/shatter/credits.txt
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<font Limerick12>STARSHATTER: The Gathering Storm<font Verdana>
+A Destroyer Studios Production
+
+
+<font Limerick12>DEVELOPMENT<font Verdana>
+
+<color bbbbb8>Producer<color ffffff>\t\t\t\t\t\tJohn DiCamillo
+<color bbbbb8>Designer<color ffffff>\t\t\t\t\t\tJohn DiCamillo
+
+<color bbbbb8>Lead Programmer<color ffffff>\t\t\tJohn DiCamillo
+<color bbbbb8>nGen Programmer<color ffffff>\t\t\tJohn DiCamillo
+<color bbbbb8>Magic3D Programmer<color ffffff>\t\tJohn DiCamillo
+
+<color bbbbb8>Art Director<color ffffff>\t\t\t\t\tSean Moser
+<color bbbbb8>3D Artwork<color ffffff>\t\t\t\t\tJason Blaz
+\t\t\t\t\t\t\t\tJohn DiCamillo
+<color bbbbb8>2D Artwork<color ffffff>\t\t\t\t\tJohn DiCamillo
+\t\t\t\t\t\t\t\tSean Moser
+
+<color bbbbb8>Player Manual<color ffffff>\t\t\t\tJohn DiCamillo
+
+<font Limerick12>AUDIO TEAM<font Verdana>
+
+<color bbbbb8>Audio Director<color ffffff>\t\t\t\tScott Cairns
+<color bbbbb8>Voice Over Director<color ffffff>\t\t\tStuart Smith
+<color bbbbb8>Musical Score<color ffffff>\t\t\t\t\tScott Cairns
+<color bbbbb8>Sound Effects<color ffffff>\t\t\t\tJohn DiCamillo
+
+\t\t\t<color bbbbb8>Jonas Devlin<color ffffff>\t\t\t\tStephen Hirst
+\t\t\t<color bbbbb8>Sarah Hunter<color ffffff>\t\t\t\tAmanda Gerrard
+\t\t\t<color bbbbb8>President Valmar<color ffffff>\t\tAndrew Godbold
+\t\t\t<color bbbbb8>Admiral Evars<color ffffff>\t\t\tJames Turner
+\t\t\t<color bbbbb8>Vice Admiral Caldott<color ffffff>\tJohn DiCamillo
+\t\t\t<color bbbbb8>Kash Anlon<color ffffff>\t\t\t\tSam Cavanaugh
+\t\t\t<color bbbbb8>Newscaster<color ffffff>\t\t\t\tStuart Smith
+\t\t\t<color bbbbb8>Newscaster<color ffffff>\t\t\t\tJodie Connor
+\t\t\t<color bbbbb8>Training Instructor<color ffffff>\t\tCallum Hayes
+
+\t\t\t<color bbbbb8>Fighter Pilot 1<color ffffff>\t\t\tAnthony Howes
+\t\t\t<color bbbbb8>Fighter Pilot 2<color ffffff>\t\t\tStuart Smith
+\t\t\t<color bbbbb8>Fighter Pilot 3<color ffffff>\t\t\tScott Cairns
+\t\t\t<color bbbbb8>Fighter Pilot 4<color ffffff>\t\t\tLina Cairns
+
+<font Limerick12>QUALITY ASSURANCE<font Verdana>
+
+<color bbbbb8>Beta Team Leads<color ffffff>\t\t\tCrazy Eddie
+\t\t\t\t\t\t\t\tMehrunes
+\t\t\t\t\t\t\t\tPheagey
+
+<color bbbbb8>Beta Testers<color ffffff>
+Dragon Lady * cybersleuth58 * ravenMKII * sky_walker *
+se5a * DamoclesX * Henry * executioner_de * FLY135 *
+Ancient Angel * Phoenix Starflare * Vice * Daedalus *
+Deadmannumberone * Deslok * Gunfighter * sniperscope *
+Swordsman * Steelviper33 * Phear * spacedad62 * loafer *
+mldaalder *URG_thrash * Gmicek * Veloxi * DarkeLyte *
+bliu * Slaor * Maddi * Qrias * xaotik * Blair * Slippy *
+Lord QDaan * A2597 * Lord Darkstar * Mr_Torgo * Rhett *
+Col. Blackwolf * starbird34 * fattytheking * Maurader *
+FS_Lancer * GreenJedi * Mopar * Bloodborg * tyrkina *
+amwhere * Bollinger * texmurph * trancetopia * XPav *
+Fallen_angel * panick * Game Ender * Spector445 * Magus *
+Darrylbar * Kallis * river * Stuntie * Kurimuzon * Ace1 *
+John Rowan * Matti Kuokkanen * Parias * Livid Hybrid *
+Mutos * Seawolf156 * Leonides * Elenkis * RedMenace *
+Bob McDobb * bk_raven * Dekzar * Mark Garanchon * jwal *
+Mark Hymer * Ploppy * Red Menace * Rick BC * dukrous *
+nanoprobe * Vespero * Alex Belton * Brian Rubin * Jason
+Ross * John Magarrell * Pumpkin Patch * Tony Molder
+
+
+<font Limerick12>CREATIVE CONSULTANTS<font Verdana>
+
+<color bbbbb8>Design<color ffffff>\t\t\t\t\t\tGreg Eakin
+<color bbbbb8>Graphics<color ffffff>\t\t\t\t\t\tMark DiCamillo
+
+<font Limerick12>TECHNICAL CONSULTANTS<font Verdana>
+
+<color bbbbb8>Aerodynamics<color ffffff>\t\t\t\tJoseph R. DiCamillo
+<color bbbbb8>Digital Control Systems<color ffffff>\t\tDavid Jenkins
+<color bbbbb8>Dynamic Campaign<color ffffff>\t\t\tJohn Walker
+
+<font Limerick12>SPECIAL THANKS<font Verdana>
+
+Ken Beckett
+Richard Brewer
+David Coy
+Dan Foy
+Jill Goldworn
+Marc Hudgins
+Randy Littlejohn
+Jack Nichols
+Jay Patel
+David Ray
+Jeff Reitman
+John Walker
+
+NaturalPoint
+Prime Sounds
+Propellerheads
+Sound Ideas
+Xiphophorous
+
+<font Limerick12>EXTRA SPECIAL THANKS<font Verdana>
+
+Mary DiCamillo
+Marisa DiCamillo
+Michael DiCamillo
+Connor DiCamillo
+
+<font Limerick12>TEAM MASCOT<font Verdana>
+
+Jake
+
+<font Limerick12>PUBLIC RELATIONS<font Verdana>
+
+http://www.starshatter.com
+milo@starshatter.com
+
diff --git a/data/shatter/magic.fx b/data/shatter/magic.fx
new file mode 100644
index 0000000..ce688f5
--- /dev/null
+++ b/data/shatter/magic.fx
@@ -0,0 +1,847 @@
+/* Project Starshatter 4.5
+ Destroyer Studios LLC
+ Copyright © 1997-2005. All Rights Reserved.
+
+ SUBSYSTEM: Stars.exe
+ FILE: magic.fx
+ AUTHOR: John DiCamillo
+
+
+ OVERVIEW
+ ========
+ DirectX9 rendering effects for solid objects
+*/
+
+
+float4 eye = { 0, 0, 0, 1 };
+float4 black : COLOR = { 0, 0, 0, 1 };
+float4 cheat : COLOR = { 0.1, 0.1, 0.1, 1 };
+float4 white : COLOR = { 1, 1, 1, 1 };
+float4 red : COLOR = { 1, 0, 0, 0 };
+
+/*********** Material Properties ***********/
+
+float4 Ka : Ambient = { 0.2f, 0.2f, 0.2f, 1.0f };
+float4 Kd : Diffuse = { 1.0f, 1.0f, 1.0f, 1.0f };
+float4 Ks : Specular = { 0.2f, 0.2f, 0.2f, 1.0f };
+float Ns : SpecularPower = 20;
+float4 Ke : Emissive = { 0.0f, 0.0f, 0.0f, 0.0f };
+float offsetAmp = 0.001;
+float bias = -0.00001;
+
+texture tex_d : DiffuseMap;
+texture tex_s : SpecularMap;
+texture tex_n : NormalMap;
+texture tex_e : EmissiveMap;
+texture tex_x : DiffuseMap;
+
+/************** light info *****************/
+
+float4 ambientColor : LIGHTCOLOR = { 0.2f, 0.2f, 0.2f, 1.0f };
+float4 light1Pos : POSITION = { 100, 100, 100, 1 };
+float4 light1Dir : DIRECTION = {-100,-100,-100, 1 };
+float4 light1Color : LIGHTCOLOR = { 1, 0, 0, 1 };
+
+/************** xform matrices *************/
+
+float4x4 world : World;
+float4x4 view : View;
+float4x4 proj : Projection;
+float4x4 wvp : WorldViewProjection;
+float4x4 worldInv : WorldInverse;
+
+float4 eyeObj : POSITION = { 0, 0, 0, 1 };
+
+/********** SAMPLERS ***********************/
+
+sampler2D diffuseSampler = sampler_state
+{
+ Texture = <tex_d>;
+ MinFilter = Linear;
+ MagFilter = Linear;
+ MipFilter = Linear;
+};
+
+sampler2D specularSampler = sampler_state
+{
+ Texture = <tex_s>;
+ MinFilter = Linear;
+ MagFilter = Linear;
+ MipFilter = Linear;
+};
+
+sampler2D normalSampler = sampler_state
+{
+ Texture = <tex_n>;
+ MinFilter = Linear;
+ MagFilter = Linear;
+ MipFilter = Linear;
+};
+
+sampler2D emissiveSampler = sampler_state
+{
+ Texture = <tex_e>;
+ MinFilter = Linear;
+ MagFilter = Linear;
+ MipFilter = Linear;
+};
+
+sampler2D extraSampler = sampler_state
+{
+ Texture = <tex_x>;
+ MinFilter = Linear;
+ MagFilter = Linear;
+ MipFilter = Linear;
+};
+
+
+/****************************************************/
+
+struct VS_OUTPUT_NOPS
+{
+ float4 position : POSITION;
+ float3 lightVec : COLOR0;
+ float3 specular : COLOR1;
+ float2 tex0 : TEXCOORD0;
+ float2 tex1 : TEXCOORD1;
+ float2 tex2 : TEXCOORD2;
+};
+
+struct VS_OUTPUT
+{
+ float4 position : POSITION;
+ float2 tex0 : TEXCOORD0;
+ float3 lightVec : TEXCOORD1;
+ float3 eyeVec : TEXCOORD2;
+};
+
+struct VS_OUTPUT_SIMPLE
+{
+ float4 position : POSITION;
+ float4 diffuse : COLOR0;
+ float4 specular : COLOR1;
+ float2 tex0 : TEXCOORD0;
+};
+
+/**************************************/
+/***** VERTEX SHADER ******************/
+/**************************************/
+
+VS_OUTPUT_SIMPLE
+vtxSimple(
+ float4 position : POSITION,
+ float3 normal : NORMAL,
+ float2 tex0 : TEXCOORD0)
+{
+ VS_OUTPUT_SIMPLE Out;
+
+ // transform vertex position to homogeneous clip space
+ Out.position = mul(position, wvp);
+
+ float4x4 wv = mul(world, view);
+
+ float3 L = normalize(mul(-light1Dir.xyz, (float3x3) view));
+ float3 N = normalize(mul(normal, (float3x3) wv));
+ float3 P = mul(position, (float4x3) wv); // position (view space)
+ float3 R = normalize(2 * dot(N, L) * N - L); // reflection vector (view space)
+ float3 V = -normalize(P); // view direction (view space)
+
+ Out.diffuse = ambientColor * Ka +
+ light1Color * Kd * max(0, dot(N, L));
+ Out.specular = light1Color * Ks * pow(max(0, dot(R, V)), Ns);
+ Out.tex0 = tex0;
+
+ return Out;
+}
+
+VS_OUTPUT_NOPS
+vtxNormalNoPS(
+ float4 position : POSITION,
+ float3 normal : NORMAL,
+ float2 tex0 : TEXCOORD0,
+ float2 tex1 : TEXCOORD1,
+ float3 tangent : TANGENT2,
+ float3 binormal : BINORMAL3)
+{
+ VS_OUTPUT_NOPS Out;
+
+ // transform vertex position to homogeneous clip space
+ Out.position = mul(position, wvp);
+
+ //pass texture coordinates
+ Out.tex0 = tex0;
+ Out.tex1 = tex0;
+ Out.tex2 = tex0;
+
+ // compute the 3x3 tranform from object space to tangent space
+ float3x3 obj2tan;
+
+ obj2tan[0] = tangent;
+ obj2tan[1] = binormal;
+ obj2tan[2] = normal;
+
+ // Transform light vector to tangent space
+ float3 L = mul(obj2tan, -light1Dir.xyz);
+
+ // Normalize and bias transformed light vector
+ L = normalize(L) * 0.5 + 0.5;
+
+ Out.lightVec = L;
+
+ float3 N = normal;
+ float3 V = normalize(eyeObj.xyz - position.xyz);
+ L = normalize(-light1Dir.xyz);
+ float3 H = normalize(V+L);
+
+ float N_dot_L = dot(N,L);
+ float N_dot_H = dot(N,H);
+ bool2 test;
+ test.x = N_dot_L > 0;
+ test.y = N_dot_H > 0;
+
+ if (all(test)) {
+ Out.specular = Ks * pow(N_dot_H, Ns);
+ }
+ else {
+ Out.specular = black;
+ }
+
+ return Out;
+}
+
+VS_OUTPUT vtxNormal(
+ float4 position : POSITION,
+ float3 normal : NORMAL,
+ float2 tex0 : TEXCOORD0,
+ float2 tex1 : TEXCOORD1,
+ float3 tangent : TANGENT2,
+ float3 binormal : BINORMAL3)
+{
+ VS_OUTPUT Out;
+
+ // transform vertex position to homogeneous clip space
+ Out.position = mul(position, wvp);
+
+ //pass texture coordinates
+ Out.tex0 = tex0;
+
+ // compute the 3x3 tranform from object space to tangent space
+ float3x3 obj2tan;
+
+ obj2tan[0] = tangent;
+ obj2tan[1] = binormal;
+ obj2tan[2] = normal;
+
+ // Transform light vector to tangent space
+ float3 L = mul(obj2tan, -light1Dir.xyz);
+
+ // Normalize transformed light vector
+ Out.lightVec = normalize(L);
+
+ // Transform eye vector from obj space to tangent space
+ float3 objEyeVec = eyeObj.xyz - position.xyz;
+
+ Out.eyeVec = normalize(mul(obj2tan, objEyeVec));
+
+ return Out;
+}
+
+VS_OUTPUT_SIMPLE
+vtxAtmosphere(
+ float4 position : POSITION,
+ float3 normal : NORMAL,
+ float2 tex0 : TEXCOORD0)
+{
+ VS_OUTPUT_SIMPLE Out;
+
+ // transform vertex position to homogeneous clip space
+ float4 tmp = position;
+ tmp.xyz *= 1.04;
+ Out.position = mul(tmp, wvp);
+
+ float4x4 wv = mul(world, view);
+
+ float3 L = normalize(mul(-light1Dir.xyz, (float3x3) view));
+ float3 N = normalize(mul(normal, (float3x3) wv));
+ float3 V = normalize(eyeObj - position); // eye ray
+
+ float n = clamp(dot(V, normal), 0, 1);
+ float a = pow(1-n, 2);
+
+ Out.diffuse = Ka * abs(clamp(dot(N, L), -0.2, 1));
+ Out.specular = black;
+ Out.tex0 = float2(0, 1-a);
+
+ return Out;
+}
+
+/**************************************/
+/********* PIXEL SHADER ***************/
+/**************************************/
+
+float4 pixDiffuse(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D diffTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+
+ return In.diffuse * diffuse + In.specular;
+}
+
+float4 pixSpecular(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D diffTex,
+ uniform sampler2D specTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float4 specular = tex2D(specTex, In.tex0);
+
+ return In.diffuse * diffuse + In.specular * specular;
+}
+
+float4 pixEmissive(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D diffTex,
+ uniform sampler2D glowTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float4 emissive = tex2D(glowTex, In.tex0);
+
+ return In.diffuse * diffuse + In.specular + emissive;
+}
+
+float4 pixEmissiveSpecular(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D diffTex,
+ uniform sampler2D glowTex,
+ uniform sampler2D specTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float4 emissive = tex2D(glowTex, In.tex0);
+ float4 specular = tex2D(specTex, In.tex0);
+
+ return In.diffuse * diffuse + In.specular * specular + emissive;
+}
+
+float4 pixNightLightSpecular(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D diffTex,
+ uniform sampler2D glowTex,
+ uniform sampler2D specTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float4 emissive = tex2D(glowTex, In.tex0);
+ float4 specular = tex2D(specTex, In.tex0);
+ float inv_diff = 1 - In.diffuse.b;
+ float4 night = float4(inv_diff, inv_diff, inv_diff, 0);
+
+ return In.diffuse * diffuse + In.specular * specular + emissive * night;
+}
+
+float4 pixNormalSpecular(
+ VS_OUTPUT In,
+ uniform sampler2D diffTex,
+ uniform sampler2D specTex,
+ uniform sampler2D normTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float4 specular = tex2D(specTex, In.tex0);
+ float3 normal = tex2D(normTex, In.tex0).xyz * 2.0 - 1.0;
+ float3 N = normalize(normal);
+ float3 V = In.eyeVec; //normalize(In.eyeVec);
+ float3 L = In.lightVec; //normalize(In.lightVec);
+ float3 H = normalize(V+L);
+ float4 coeff = lit(dot(N,L), dot(N,H), Ns);
+
+ return light1Color * (Kd*diffuse*coeff.y + Ks*specular*coeff.z);
+}
+
+float4 pixNormal(
+ VS_OUTPUT In,
+ uniform sampler2D diffTex,
+ uniform sampler2D normTex
+ ) : COLOR
+{
+ float4 diffuse = tex2D(diffTex, In.tex0);
+ float3 normal = tex2D(normTex, In.tex0).xyz * 2.0 - 1.0;
+ float3 N = normalize(normal);
+ float3 V = normalize(In.eyeVec);
+ float3 L = normalize(In.lightVec);
+ float3 H = normalize(V+L);
+ float4 coeff = lit(dot(N,L), dot(N,H), Ns);
+
+ return light1Color * (Kd*diffuse*coeff.y + Ks*coeff.z);
+}
+
+float4 pixAtmosphere(
+ VS_OUTPUT_SIMPLE In,
+ uniform sampler2D limbTex
+ ) : COLOR
+{
+ float4 limb = tex2D(limbTex, In.tex0);
+ return In.diffuse * limb;
+}
+
+
+/****************************************************/
+/********** TECHNIQUES ******************************/
+/****************************************************/
+
+technique SimplePix
+{
+ pass P0
+ {
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixDiffuse(diffuseSampler);
+ }
+}
+
+technique SpecMapPix
+{
+ pass P0
+ {
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixSpecular(diffuseSampler,specularSampler);
+ }
+}
+
+technique EmissivePix
+{
+ pass P0
+ {
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixEmissive(diffuseSampler,emissiveSampler);
+ }
+}
+
+technique EmissiveSpecMapPix
+{
+ pass P0
+ {
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixEmissiveSpecular(diffuseSampler,emissiveSampler,specularSampler);
+ }
+}
+
+technique BumpSpecMapPix
+{
+ pass P0
+ {
+ TexCoordIndex[0] = 0;
+ TexCoordIndex[1] = 1;
+ TexCoordIndex[2] = 2;
+ TexCoordIndex[3] = 3;
+
+ DepthBias = (bias);
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxNormal();
+ PixelShader = compile ps_2_0 pixNormalSpecular(diffuseSampler,specularSampler,normalSampler);
+ }
+}
+
+technique BumpSpecMap
+{
+ pass P0
+ {
+ Sampler[0] = (normalSampler);
+ Sampler[1] = (diffuseSampler);
+ Sampler[2] = (specularSampler);
+
+ ColorOp[0] = DOTPRODUCT3;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = SELECTARG1;
+ AlphaArg1[0] = TEXTURE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = MODULATE;
+ ColorArg1[1] = TEXTURE;
+ ColorArg2[1] = CURRENT;
+ AlphaOp[1] = SELECTARG1;
+ AlphaArg1[1] = TEXTURE;
+ TexCoordIndex[1] = 1;
+
+ ColorOp[2] = MULTIPLYADD;
+ ColorArg1[2] = TEXTURE;
+ ColorArg2[2] = SPECULAR;
+ AlphaOp[2] = SELECTARG1;
+ AlphaArg1[2] = TEXTURE;
+ TexCoordIndex[2] = 2;
+
+ ColorOp[3] = DISABLE;
+ AlphaOp[3] = DISABLE;
+ TexCoordIndex[3] = 3;
+
+ DepthBias = (bias);
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxNormalNoPS();
+ PixelShader = NULL;
+ }
+}
+
+technique BumpMapPix
+{
+ pass P0
+ {
+ TexCoordIndex[0] = 0;
+ TexCoordIndex[1] = 1;
+ TexCoordIndex[2] = 2;
+ TexCoordIndex[3] = 3;
+
+ DepthBias = (bias);
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxNormal();
+ PixelShader = compile ps_2_0 pixNormal(diffuseSampler,normalSampler);
+ }
+}
+
+technique BumpMap
+{
+ pass P0
+ {
+ Sampler[0] = (normalSampler);
+ Sampler[1] = (diffuseSampler);
+
+ ColorOp[0] = DOTPRODUCT3;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = SELECTARG1;
+ AlphaArg1[0] = TEXTURE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = MODULATE;
+ ColorArg1[1] = TEXTURE;
+ ColorArg2[1] = CURRENT;
+ AlphaOp[1] = SELECTARG1;
+ AlphaArg1[1] = TEXTURE;
+ TexCoordIndex[1] = 1;
+
+ ColorOp[2] = DISABLE;
+ AlphaOp[2] = DISABLE;
+ TexCoordIndex[2] = 2;
+
+ DepthBias = (bias);
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxNormalNoPS();
+ PixelShader = NULL;
+ }
+}
+
+technique SimpleMaterial
+{
+ pass P0
+ {
+ //FogEnable = false;
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (Ke);
+
+ Lighting = TRUE;
+ SpecularEnable = TRUE;
+
+ // NO textures
+
+ ColorOp[0] = DISABLE;
+ AlphaOp[0] = DISABLE;
+
+ // NO shaders
+
+ VertexShader = NULL;
+ PixelShader = NULL;
+ }
+}
+
+technique SimpleTexture
+{
+ pass P0
+ {
+ //FogEnable = false;
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (black);
+
+ Lighting = TRUE;
+ SpecularEnable = TRUE;
+
+ Sampler[0] = (diffuseSampler);
+
+
+ // texture stages
+
+ ColorOp[0] = MODULATE;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = MODULATE;
+ AlphaArg1[0] = TEXTURE;
+ AlphaArg2[0] = DIFFUSE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = DISABLE;
+ AlphaOp[1] = DISABLE;
+
+
+ // NO shaders
+
+ VertexShader = NULL;
+ PixelShader = NULL;
+ }
+}
+
+
+technique SpecularTexture
+{
+ pass P0
+ {
+ //FogEnable = false;
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (Ke);
+
+ Lighting = TRUE;
+ SpecularEnable = TRUE;
+
+ Sampler[0] = (diffuseSampler);
+ Sampler[1] = (specularSampler);
+
+ // texture stages
+
+ ColorOp[0] = MODULATE;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = MODULATE;
+ AlphaArg1[0] = TEXTURE;
+ AlphaArg2[0] = DIFFUSE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = MULTIPLYADD;
+ ColorArg1[1] = TEXTURE;
+ ColorArg2[1] = SPECULAR;
+ AlphaOp[1] = SELECTARG1;
+ AlphaArg1[1] = CURRENT;
+ TexCoordIndex[1] = 0;
+
+ ColorOp[2] = DISABLE;
+ AlphaOp[2] = DISABLE;
+
+ // NO shaders
+
+ VertexShader = NULL;
+ PixelShader = NULL;
+ }
+}
+
+technique EmissiveTexture
+{
+ pass P0
+ {
+ //FogEnable = false;
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (black);
+
+ Lighting = TRUE;
+ SpecularEnable = FALSE;
+
+ Sampler[0] = (diffuseSampler);
+ Sampler[1] = (emissiveSampler);
+
+ // texture stages
+
+ ColorOp[0] = MODULATE;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = MODULATE;
+ AlphaArg1[0] = TEXTURE;
+ AlphaArg2[0] = DIFFUSE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = ADD;
+ ColorArg1[1] = TEXTURE;
+ ColorArg2[1] = CURRENT;
+ AlphaOp[1] = SELECTARG1;
+ AlphaArg1[1] = CURRENT;
+ TexCoordIndex[1] = 0;
+
+ ColorOp[2] = DISABLE;
+ AlphaOp[2] = DISABLE;
+
+ // NO shaders
+
+ VertexShader = NULL;
+ PixelShader = NULL;
+ }
+}
+
+technique EmissiveSpecularTexture
+{
+ pass P0
+ {
+ //FogEnable = false;
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (black);
+
+ Lighting = TRUE;
+ SpecularEnable = TRUE;
+
+ Sampler[0] = (diffuseSampler);
+ Sampler[1] = (specularSampler);
+ Sampler[2] = (emissiveSampler);
+
+ // texture stages
+
+ ColorOp[0] = MODULATE;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = MODULATE;
+ AlphaArg1[0] = TEXTURE;
+ AlphaArg2[0] = DIFFUSE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = MULTIPLYADD;
+ ColorArg1[1] = TEXTURE;
+ ColorArg2[1] = SPECULAR;
+ AlphaOp[1] = SELECTARG1;
+ AlphaArg1[1] = CURRENT;
+ TexCoordIndex[1] = 0;
+
+ ColorOp[2] = ADD;
+ ColorArg1[2] = TEXTURE;
+ ColorArg2[2] = CURRENT;
+ AlphaOp[2] = SELECTARG1;
+ AlphaArg1[2] = CURRENT;
+ TexCoordIndex[2] = 0;
+
+ ColorOp[3] = DISABLE;
+ AlphaOp[3] = DISABLE;
+
+ // NO shaders
+
+ VertexShader = NULL;
+ PixelShader = NULL;
+ }
+}
+
+
+technique PlanetSurf
+{
+ pass P0
+ {
+ AlphaBlendEnable = true;
+ BlendOp = ADD;
+ SrcBlend = ONE;
+ DestBlend = ONE;
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixEmissiveSpecular(diffuseSampler,emissiveSampler,specularSampler);
+ }
+}
+
+technique PlanetSurfNightLight
+{
+ pass P0
+ {
+ AlphaBlendEnable = true;
+ BlendOp = ADD;
+ SrcBlend = ONE;
+ DestBlend = ONE;
+ FogEnable = false;
+ VertexShader = compile vs_1_1 vtxSimple();
+ PixelShader = compile ps_2_0 pixNightLightSpecular(diffuseSampler,emissiveSampler,specularSampler);
+ }
+}
+
+technique PlanetLimb
+{
+ pass P0
+ {
+ AlphaBlendEnable = true;
+ SrcBlend = SRCALPHA;
+ DestBlend = INVSRCALPHA;
+ FogEnable = false;
+
+ VertexShader = compile vs_1_1 vtxAtmosphere();
+ PixelShader = compile ps_2_0 pixAtmosphere(diffuseSampler);
+ }
+}
+
+
+matrix mID; // Identity transform
+matrix env_matrix; // Environment map transform
+textureCUBE env_cube; // Cubic environment map
+
+technique WaterReflections
+{
+ pass P0
+ {
+ VertexShader = null;
+
+ MaterialAmbient = (Ka);
+ MaterialDiffuse = (Kd);
+ MaterialSpecular = (Ks);
+ MaterialPower = (Ns);
+ MaterialEmissive = (black);
+
+ Lighting = TRUE;
+ SpecularEnable = TRUE;
+
+ Sampler[0] = (diffuseSampler);
+
+
+ ColorOp[0] = MODULATE;
+ ColorArg1[0] = TEXTURE;
+ ColorArg2[0] = DIFFUSE;
+ AlphaOp[0] = MODULATE;
+ AlphaArg1[0] = TEXTURE;
+ AlphaArg2[0] = DIFFUSE;
+ TexCoordIndex[0] = 0;
+
+ ColorOp[1] = DISABLE;
+ AlphaOp[1] = DISABLE;
+
+
+
+ // Stage2
+ /*
+ ColorOp[1] = BlendCurrentAlpha;
+ ColorArg1[1] = Texture;
+ ColorArg2[1] = Current;
+ AlphaOp[1] = SelectArg2;
+ AlphaArg2[1] = Current;
+
+ MinFilter[1] = Linear;
+ MagFilter[1] = Linear;
+ MipFilter[1] = Point;
+
+ Texture[1] = <env_cube>;
+ TextureTransform[1] = <env_matrix>;
+ TextureTransformFlags[1] = Count3;
+ TexCoordIndex[1] = CameraSpaceReflectionVector;
+
+ // Stage3
+ ColorOp[2] = Disable;
+ AlphaOp[2] = Disable;
+ */
+ }
+}
+