diff --git a/messages/resmessagesall.json b/messages/resmessagesall.json index e306781..648f330 100644 --- a/messages/resmessagesall.json +++ b/messages/resmessagesall.json @@ -349,5 +349,16 @@ "Automatically targets enemies within sensor range", "Defensive Strength: Medium" ] + }, + "RES_DEF_ASSTOW": { + "id": "RES_DEF_ASSTOW", + "imdName": "MICAPSUL.pie", + "sequenceName": "res_struttech.ogg", + "text": [ + "New Defensive Structure Available", + "Armored guard tower with Assault Gun", + "Automatically targets enemies within sensor range", + "Defensive Strength: Medium" + ] } } diff --git a/script/campaign/cam1-3.js b/script/campaign/cam1-3.js index 6126bba..22e7840 100644 --- a/script/campaign/cam1-3.js +++ b/script/campaign/cam1-3.js @@ -231,8 +231,8 @@ function eventStartLevel() }, groupSize: 4, // sic! scouts, at most maxSize: 20, - throttle: camChangeOnDiff(camSecondsToMilliseconds(40)), - templates: [ cTempl.nppod, cTempl.nphmg, cTempl.npsmc ] + throttle: camChangeOnDiff(camSecondsToMilliseconds(60)), + templates: [ cTempl.nppod, cTempl.nphmg, cTempl.npsmc, cTempl.npflam ] }, }); diff --git a/script/campaign/cam1-d.js b/script/campaign/cam1-d.js index f9652c3..a39f95e 100644 --- a/script/campaign/cam1-d.js +++ b/script/campaign/cam1-d.js @@ -217,7 +217,7 @@ function eventStartLevel() repair: 33, count: -1, }, - templates: [ cTempl.npltat, cTempl.npmsens, cTempl.npmorb, cTempl.npsmct, cTempl.nphct ] //variety + templates: [ cTempl.npltat, cTempl.npmsens, cTempl.npmorb, cTempl.npsmct, cTempl.nphct, cTempl.npflam ] //variety }, "NPFactoryNE": { assembly: "NPFactoryNEAssembly", diff --git a/script/campaign/cam2-8.js b/script/campaign/cam2-8.js index 8314949..925a6ca 100644 --- a/script/campaign/cam2-8.js +++ b/script/campaign/cam2-8.js @@ -155,7 +155,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.comhpv, cTempl.cohact] + templates: [cTempl.comhpv, cTempl.cohact, cTempl.comagt] }, "COHeavyFacR-b2": { assembly: "COHeavyFacR-b2Assembly", @@ -167,7 +167,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.comrotmh, cTempl.cohct] + templates: [cTempl.comrotmh, cTempl.cohct, cTempl.comrlt] }, "COVtolFac-b3": { order: CAM_ORDER_ATTACK, diff --git a/script/campaign/cam2-a.js b/script/campaign/cam2-a.js index fb61ef2..5814f9f 100644 --- a/script/campaign/cam2-a.js +++ b/script/campaign/cam2-a.js @@ -52,7 +52,7 @@ function getDroidsForCOLZ() if (camRand(100) < 50) { - templates = [cTempl.npcybm, cTempl.commgt, cTempl.npcybc, cTempl.npcybr, cTempl.npcybg, cTempl.comrlt]; + templates = [cTempl.npcybm, cTempl.commgt, cTempl.npcybc, cTempl.npcybr, cTempl.npcybg, cTempl.copodt]; } else { @@ -133,7 +133,7 @@ function sendPlayerTransporter() function mapEdgeDroids() { var TankNum = 8 + camRand(6); - var list = [cTempl.npcybm, cTempl.npcybr, cTempl.npcybg, cTempl.comct, cTempl.cohct]; + var list = [cTempl.npcybm, cTempl.npcybr, cTempl.npcybg, cTempl.coscymc, cTempl.comct, cTempl.cohct, cTempl.copodt]; var droids = []; for (var i = 0; i < TankNum; ++i) diff --git a/script/campaign/cam2-d.js b/script/campaign/cam2-d.js index 79bbe1d..45af195 100644 --- a/script/campaign/cam2-d.js +++ b/script/campaign/cam2-d.js @@ -128,7 +128,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt] + templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt, cTempl.copodt] }, "COHeavyFactoryB": { assembly: "COHeavyFactoryAssembly", @@ -140,7 +140,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt] + templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt, cTempl.copodt] }, "COHeavyFactoryC": { assembly: "COHeavyFactoryAssembly", @@ -152,7 +152,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt] + templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt, cTempl.copodt] }, "COHeavyFactoryD": { assembly: "COHeavyFactoryAssembly", @@ -164,7 +164,7 @@ function eventStartLevel() repair: 20, count: -1, }, - templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt] + templates: [cTempl.cohhpv, cTempl.comhltat, cTempl.cohct, cTempl.comrlt, cTempl.copodt] }, "COSouthCyborgFactory": { assembly: "COSouthCyborgFactoryAssembly", @@ -184,7 +184,10 @@ function eventStartLevel() truckDefense(); hackAddMessage("C2D_OBJ1", PROX_MSG, CAM_HUMAN_PLAYER, true); - camEnableFactory("COHeavyFactory"); + camEnableFactory("COHeavyFactoryA"); + camEnableFactory("COHeavyFactoryB"); + camEnableFactory("COHeavyFactoryC"); + camEnableFactory("COHeavyFactoryD"); camEnableFactory("COSouthCyborgFactory"); queue("vtolAttack", camMinutesToMilliseconds(2)); diff --git a/script/campaign/cam2-end.js b/script/campaign/cam2-end.js index 1ea30cb..1c634e5 100644 --- a/script/campaign/cam2-end.js +++ b/script/campaign/cam2-end.js @@ -111,7 +111,7 @@ function tankAttack() var northTankAssembly = {"x": 95, "y": 3}; //var westTankAssembly = {"x": 3, "y": 112}; //This was unused. - var list = [cTempl.comhltat, cTempl.cohact, cTempl.cohct, cTempl.comagt, cTempl.cohbbt]; + var list = [cTempl.comhltat, cTempl.cohact, cTempl.cohct, cTempl.comagt, cTempl.cohbbt, cTempl.comrlt]; var pos = []; pos.push(northTankAssembly); diff --git a/script/campaign/cam3-1.js b/script/campaign/cam3-1.js index c8cdfb8..ed18db0 100644 --- a/script/campaign/cam3-1.js +++ b/script/campaign/cam3-1.js @@ -292,7 +292,7 @@ function eventStartLevel() camSetStandardWinLossConditions(CAM_VICTORY_OFFWORLD, "CAM_3B", { area: "RTLZ", - reinforcements: camMinutesToSeconds(3), + reinforcements: camMinutesToSeconds(2), callback: "unitsInValley" }); diff --git a/script/campaign/cam3-4.js b/script/campaign/cam3-4.js index 9ed3b98..15c37ef 100644 --- a/script/campaign/cam3-4.js +++ b/script/campaign/cam3-4.js @@ -299,7 +299,7 @@ function eventStartLevel() repair: 45, count: -1, }, - templates: [cTempl.nxmheapv, cTempl.nxlscouv] + templates: [cTempl.nxmheapv, cTempl.nxlscouv, cTempl.nxhrailv] }, "NX-VtolFactory2": { assembly: "NX-VtolFactory2Assembly", diff --git a/script/campaign/cam3-ab.js b/script/campaign/cam3-ab.js index dad4be2..3d48a1b 100644 --- a/script/campaign/cam3-ab.js +++ b/script/campaign/cam3-ab.js @@ -14,6 +14,8 @@ const NEXUS_RES = [ ]; var edgeMapCounter; //how many Nexus reinforcement runs have happened. var winFlag; +var edgeTimer = 1.5; // Default attack delay 1.5 minutes. +var delayMultiplier; // Modifier for how quickly enemy attacks occur. //Remove Nexus VTOL droids. camAreaEvent("vtolRemoveZone", function(droid) @@ -56,14 +58,8 @@ function sendEdgeMapDroids() } ); - var edgeTimer = 1.5; // Default to 1.5 minutes. - if (winFlag) - { - edgeTimer = edgeTimer / 2; // Send units twice as fast if winFlag is true. - } - edgeMapCounter += 1; - queue("sendEdgeMapDroids", camChangeOnDiff(camMinutesToMilliseconds(edgeTimer))); + queue("sendEdgeMapDroids", camChangeOnDiff(camMinutesToMilliseconds(edgeTimer * delayMultiplier))); // Send units faster if circuits mk2 is researched } //Setup Nexus VTOL hit and runners. NOTE: These do not go away in this mission. @@ -186,6 +182,10 @@ function eventResearched(research, structure, player) { camSetNexusState(false); } + if (research.name === "R-Sys-Resistance-Upgrade02") + { + delayMultiplier = 0.5; + } if (research.name === "R-Sys-Resistance-Upgrade03") { winFlag = true; @@ -242,6 +242,7 @@ function eventStartLevel() enableResearch("R-Sys-Resistance-Upgrade01", CAM_HUMAN_PLAYER); winFlag = false; + delayMultiplier = 1; vtolAttack(); diff --git a/script/campaign/cam3-ad2.js b/script/campaign/cam3-ad2.js index e7ae568..118a828 100644 --- a/script/campaign/cam3-ad2.js +++ b/script/campaign/cam3-ad2.js @@ -60,7 +60,7 @@ function randomTemplates(list) //Chose a random spawn point for the VTOLs. function vtolAttack() { - var list = [cTempl.nxmheapv, cTempl.nxlpulsev]; + var list = [cTempl.nxmheapv, cTempl.nxlpulsev, cTempl.nxhrailv, cTempl.nxlscouv]; camSetVtolData(NEXUS, VTOL_POSITIONS, "vtolRemovePos", list, camChangeOnDiff(camMinutesToMilliseconds(1.5))); } diff --git a/script/campaign/templates.js b/script/campaign/templates.js index abe764d..ddea6fd 100644 --- a/script/campaign/templates.js +++ b/script/campaign/templates.js @@ -58,6 +58,8 @@ comct: { body: "Body6SUPP", prop: "tracked01", weap: "Cannon2A-TMk1" }, comorb: { body: "Body6SUPP", prop: "HalfTrack", weap: "Mortar2Mk1" }, colcbv: { body: "Body2SUP", prop: "V-Tol", weap: "Bomb1-VTOL-LtHE" }, colatv: { body: "Body2SUP", prop: "V-Tol", weap: "Rocket-VTOL-LtA-T" }, +copodt: { body: "Body2SUP", prop: "tracked01", weap: "Rocket-Pod" }, // Light Mini-Rocket Pod Tank +coscymc: { body: "CyborgHeavyBody", prop: "CyborgLegs", weap: "Cyb-Hvywpn-Mcannon" }, // Super Heavy-Gunner prtruck: { body: "Body5REC", prop: "tracked01", weap: "Spade1Mk1" }, prhhpvt: { body: "Body11ABT", prop: "tracked01", weap: "Cannon4AUTOMk1" }, // HPV cannon tank (Swapped with Heavy Cannon) prltat: { body: "Body5REC", prop: "tracked01", weap: "Rocket-LtA-T" }, @@ -69,10 +71,8 @@ comatt: { body: "Body6SUPP", prop: "tracked01", weap: "Rocket-LtA-T" }, comit: { body: "Body6SUPP", prop: "tracked01", weap: "Flame2" }, comrept: { body: "Body6SUPP", prop: "tracked01", weap: "LightRepair1" }, comorbt: { body: "Body6SUPP", prop: "tracked01", weap: "Mortar2Mk1" }, -coscymc: { body: "CyborgHeavyBody", prop: "CyborgLegs", weap: "Cyb-Hvywpn-Mcannon" }, // Super Heavy-Gunner cocybtf: { body: "CyborgLightBody", prop: "CyborgLegs", weap: "Cyb-Wpn-Thermite" }, // Thermite Flamer Cyborg comrlt: { body: "Body6SUPP", prop: "tracked01", weap: "Rocket-MRL" }, // Medium Mini-Rocket Array Tank -copodt: { body: "Body2SUP", prop: "tracked01", weap: "Rocket-Pod" }, // Light Mini-Rocket Pod Tank // CAM_2_2 comtath: { body: "Body6SUPP", prop: "hover01", weap: "Rocket-LtA-T" }, diff --git a/stats/research.json b/stats/research.json index 5a0ca36..cbc1c81 100644 --- a/stats/research.json +++ b/stats/research.json @@ -3752,7 +3752,7 @@ "R-Defense-RotMG": { "iconID": "IMAGE_RES_DEFENCE", "id": "R-Defense-RotMG", - "msgName": "RES_DEF_RotMG", + "msgName": "RES_DEF_ASSTOW", "name": "Assault Gun Tower", "requiredResearch": [ "R-Wpn-MG4" diff --git a/wrf/cam2/sub2-d/labels.json b/wrf/cam2/sub2-d/labels.json index a980157..1fd68f2 100644 --- a/wrf/cam2/sub2-d/labels.json +++ b/wrf/cam2/sub2-d/labels.json @@ -41,7 +41,7 @@ }, "position_10": { "label": "COHeavyFactoryAssembly", - "pos": [4928, 4544] + "pos": [5248, 3200] }, "position_11": { "label": "COSouthCyborgFactoryAssembly",