summaryrefslogtreecommitdiffhomepage
path: root/data/content/Campaigns/02/Templates
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/content/Campaigns/02/Templates
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/content/Campaigns/02/Templates')
-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
13 files changed, 2279 insertions, 0 deletions
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,
+}