Skip to content

Commit

Permalink
Campaign balance updates
Browse files Browse the repository at this point in the history
Main points of interest:

Cyborgs do more damage than their tank variants. New Cannon, Rocket, and Flamer cyborgs added in Beta campaign.
Heavy Gunner cyborg is based off Medium Cannon instead of Light Cannon to be of better use.

All Nexus units spawned or manufactured use the internal sensor "NavGunSensor".
Gamma 9 hack event tweaks and fixes. Mega VTOL anti-cheese abilities added to the HQ, VTOLs not initially blown up anymore upon seeing the final base.

Various improvements to some VTOL weapons from previous balance update.
Enemy VTOL wave spawn amounts tweaked to be more forgiving where necessary.

New Depleted Uranium Mk3 upgrade unlocked during Gamma 4 artifact tech so Assault Gun can be not too shabby up to Pulse Laser (which obsoletes AG and Inferno at the same time).

First Scavenger factory on Alpha 8 rotated to face North rather than South, preventing units sometimes getting trapped behind the Cannon Tower next to the factory.
  • Loading branch information
KJeff01 committed Jan 13, 2024
1 parent e40b8ee commit 5811cda
Show file tree
Hide file tree
Showing 31 changed files with 469 additions and 127 deletions.
33 changes: 33 additions & 0 deletions data/base/messages/resmessages2.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@
"Requires Cyborg factory to produce"
]
},
"RES_CYW_CN2": {
"id": "RES_CYW_CN2",
"imdName": "MICAPSUL.pie",
"sequenceName": "res_droid.ogg",
"text": [
"New Cyborg Available",
"Armed with Cyborg Hyper Velocity Cannon",
"Body Points: Medium",
"Requires Cyborg factory to produce"
]
},
"RES_CYW_FL2": {
"id": "RES_CYW_FL2",
"imdName": "MICAPSUL.pie",
"sequenceName": "res_droid.ogg",
"text": [
"New Cyborg Available",
"Armed with Cyborg Thermite flamer",
"Body Points: Medium",
"Requires Cyborg factory to produce"
]
},
"RES_CYW_MG4": {
"id": "RES_CYW_MG4",
"imdName": "MICAPSUL.pie",
Expand All @@ -32,6 +54,17 @@
"Requires Cyborg factory to produce"
]
},
"RES_CYW_RK2": {
"id": "RES_CYW_RK2",
"imdName": "MICAPSUL.pie",
"sequenceName": "res_droid.ogg",
"text": [
"New Cyborg Available",
"Armed with Cyborg Tank Killer rocket",
"Body Points: Medium",
"Requires Cyborg factory to produce"
]
},
"RES_CY_AH1": {
"id": "RES_CY_AH1",
"imdName": "MICAPSUL.pie",
Expand Down
7 changes: 4 additions & 3 deletions data/base/script/campaign/cam2-2.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ function wave2()
{
const list = [cTempl.colatv, cTempl.colatv];
const ext = {
limit: [4, 4], //paired with list array
limit: [3, 3], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -109,7 +109,7 @@ function wave3()
{
const list = [cTempl.colcbv, cTempl.colcbv];
const ext = {
limit: [4, 4], //paired with list array
limit: [3, 3], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -120,7 +120,7 @@ function vtolAttack()
{
const list = [cTempl.colpbv, cTempl.colpbv];
const ext = {
limit: [4, 4], //paired with list array
limit: [3, 3], //paired with list array
alternate: true,
altIdx: 0
};
Expand Down Expand Up @@ -207,6 +207,7 @@ function eventStartLevel()
{
camUpgradeOnMapTemplates(cTempl.commc, cTempl.commrp, CAM_THE_COLLECTIVE);
}
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COEastBase": {
Expand Down
7 changes: 5 additions & 2 deletions data/base/script/campaign/cam2-5.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ function eventStartLevel()
{
camUpgradeOnMapTemplates(cTempl.commc, cTempl.commrp, CAM_THE_COLLECTIVE);
}
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybc, cTempl.cocybsn, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybr, cTempl.cocybtk, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COEastBase": {
Expand Down Expand Up @@ -160,7 +163,7 @@ function eventStartLevel()
repair: 30,
count: -1,
},
templates: [cTempl.cocybag, cTempl.npcybf, cTempl.npcybr]
templates: [cTempl.cocybag, cTempl.cocybth, cTempl.cocybtk]
},
"COCyborgFactoryR": {
assembly: "COCyborgFactoryRAssembly",
Expand All @@ -172,7 +175,7 @@ function eventStartLevel()
repair: 30,
count: -1,
},
templates: [cTempl.npcybr, cTempl.npcybc]
templates: [cTempl.cocybtk, cTempl.cocybsn]
},
});

Expand Down
10 changes: 7 additions & 3 deletions data/base/script/campaign/cam2-6.js
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,10 @@ function eventStartLevel()

camCompleteRequiredResearch(mis_collectiveRes, CAM_THE_COLLECTIVE);

camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybc, cTempl.cocybsn, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybr, cTempl.cocybtk, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COUplinkBase": {
cleanup: "uplinkBaseCleanup",
Expand Down Expand Up @@ -171,7 +175,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.npcybf, cTempl.cocybag, cTempl.npcybr]
templates: [cTempl.cocybsn, cTempl.cocybth, cTempl.cocybag, cTempl.cocybtk]
},
"COCyborgFactory-b1": {
assembly: "COCyborgFactory-b1Assembly",
Expand All @@ -183,7 +187,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.cocybag, cTempl.npcybr]
templates: [cTempl.cocybag, cTempl.cocybtk]
},
"COCyborgFactory-b2": {
assembly: "COCyborgFactory-b2Assembly",
Expand All @@ -195,7 +199,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.npcybf]
templates: [cTempl.cocybsn, cTempl.cocybth]
},
"COHeavyFactory-b2L": {
assembly: "COHeavyFactory-b2LAssembly",
Expand Down
11 changes: 7 additions & 4 deletions data/base/script/campaign/cam2-7.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,9 @@ function eventStartLevel()
camCompleteRequiredResearch(mis_collectiveRes, CAM_THE_COLLECTIVE);

camUpgradeOnMapTemplates(cTempl.commc, cTempl.cohact, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybc, cTempl.cocybsn, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybr, cTempl.cocybtk, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COBase1": {
Expand Down Expand Up @@ -178,7 +181,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.cocybag]
templates: [cTempl.cocybsn, cTempl.cocybag]
},
"COCyborgFac-b3": {
assembly: "base3CybAssembly",
Expand All @@ -190,7 +193,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybf, cTempl.npcybr]
templates: [cTempl.cocybth, cTempl.cocybtk]
},
"COHeavyFac-b4": {
assembly: "base4HeavyAssembly",
Expand All @@ -214,7 +217,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.cocybag, cTempl.npcybc, cTempl.npcybr]
templates: [cTempl.cocybag, cTempl.cocybsn, cTempl.cocybtk]
},
"COVtolFactory-b4": {
assembly: "base4VTOLAssembly",
Expand All @@ -225,7 +228,7 @@ function eventStartLevel()
regroup: false,
count: -1,
},
templates: [cTempl.colagv, cTempl.commorv, cTempl.commorvt]
templates: [cTempl.colagv, cTempl.commorv, cTempl.commorvt, cTempl.colhvat]
},
});

Expand Down
5 changes: 4 additions & 1 deletion data/base/script/campaign/cam2-8.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,9 @@ function eventStartLevel()

camUpgradeOnMapTemplates(cTempl.commc, cTempl.cohhpv, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.comtath, cTempl.comltath, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybc, cTempl.cocybsn, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybr, cTempl.cocybtk, CAM_THE_COLLECTIVE);

//New AC Tiger tracked units for Hard and Insane difficulty
if (difficulty >= HARD)
Expand Down Expand Up @@ -158,7 +161,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.cocybag, cTempl.npcybr]
templates: [cTempl.cocybag, cTempl.cocybtk]
},
"COHeavyFacL-b2": {
assembly: "COHeavyFacL-b2Assembly",
Expand Down
8 changes: 4 additions & 4 deletions data/base/script/campaign/cam2-a.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ function wave2()
{
const list = [cTempl.colatv, cTempl.colatv];
const ext = {
limit: [4, 4], //paired with list array
limit: [3, 3], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -165,7 +165,7 @@ function wave3()
{
const list = [cTempl.colcbv, cTempl.colcbv];
const ext = {
limit: [4, 4], //paired with list array
limit: [2, 2], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -176,7 +176,7 @@ function vtolAttack()
{
const list = [cTempl.colpbv, cTempl.colpbv];
const ext = {
limit: [4, 4], //paired with list array
limit: [2, 2], //paired with list array
alternate: true,
altIdx: 0
};
Expand Down Expand Up @@ -404,7 +404,7 @@ function eventStartLevel()

queue("secondVideo", camSecondsToMilliseconds(12));
queue("groupPatrol", camChangeOnDiff(camMinutesToMilliseconds(1)));
queue("vtolAttack", camChangeOnDiff(camMinutesToMilliseconds(6)));
queue("vtolAttack", camChangeOnDiff(camMinutesToMilliseconds(3)));
setTimer("truckDefense", camChangeOnDiff(camMinutesToMilliseconds(3)));
setTimer("sendCOTransporter", camChangeOnDiff(camMinutesToMilliseconds(4)));
setTimer("mapEdgeDroids", camChangeOnDiff(camMinutesToMilliseconds(7)));
Expand Down
5 changes: 3 additions & 2 deletions data/base/script/campaign/cam2-b.js
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ function eventStartLevel()
{
camUpgradeOnMapTemplates(cTempl.commc, cTempl.commrp, CAM_THE_COLLECTIVE);
}
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);

// New HMG Tiger Tracks units in first attack group
if (difficulty >= HARD)
Expand Down Expand Up @@ -243,7 +244,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.npcybr, cTempl.npcybf, cTempl.npcybm]
templates: [cTempl.npcybc, cTempl.npcybr, cTempl.cocybth, cTempl.npcybm]
},
"COHeavyFac-b4": {
assembly: "COHeavyFac-b4Assembly",
Expand All @@ -267,7 +268,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.npcybr, cTempl.npcybf]
templates: [cTempl.npcybc, cTempl.npcybr, cTempl.cocybth]
},
});

Expand Down
5 changes: 3 additions & 2 deletions data/base/script/campaign/cam2-c.js
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ function eventStartLevel()
{
camUpgradeOnMapTemplates(cTempl.commc, cTempl.commrp, CAM_THE_COLLECTIVE);
}
camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COAirBase": {
Expand Down Expand Up @@ -360,7 +361,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybf, cTempl.npcybc, cTempl.npcybr]
templates: [cTempl.cocybth, cTempl.npcybc, cTempl.npcybr]
},
"COCyborgFactoryR": {
assembly: "COCyborgFactoryRAssembly",
Expand All @@ -372,7 +373,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybf, cTempl.npcybc, cTempl.npcybr]
templates: [cTempl.cocybth, cTempl.npcybc, cTempl.npcybr]
},
"COVtolFacLeft-Prop": {
order: CAM_ORDER_ATTACK,
Expand Down
14 changes: 9 additions & 5 deletions data/base/script/campaign/cam2-d.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ function truckDefense()
//Attacks every 3 minutes until HQ is destroyed.
function wave2()
{
const list = [cTempl.colatv, cTempl.colatv];
const list = [cTempl.colhvat, cTempl.colhvat];
const ext = {
limit: [4, 4], //paired with list array
limit: [2, 2], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -55,7 +55,7 @@ function wave3()
{
const list = [cTempl.commorv, cTempl.commorv];
const ext = {
limit: [4, 4], //paired with list array
limit: [2, 2], //paired with list array
alternate: true,
altIdx: 0
};
Expand All @@ -66,7 +66,7 @@ function vtolAttack()
{
const list = [cTempl.commorvt, cTempl.commorvt];
const ext = {
limit: [4, 4], //paired with list array
limit: [2, 2], //paired with list array
alternate: true,
altIdx: 0
};
Expand Down Expand Up @@ -135,6 +135,10 @@ function eventStartLevel()

camCompleteRequiredResearch(mis_collectiveRes, CAM_THE_COLLECTIVE);

camUpgradeOnMapTemplates(cTempl.npcybf, cTempl.cocybth, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybc, cTempl.cocybsn, CAM_THE_COLLECTIVE);
camUpgradeOnMapTemplates(cTempl.npcybr, cTempl.cocybtk, CAM_THE_COLLECTIVE);

camSetEnemyBases({
"COSouthEastBase": {
cleanup: "baseCleanup",
Expand Down Expand Up @@ -167,7 +171,7 @@ function eventStartLevel()
repair: 40,
count: -1,
},
templates: [cTempl.npcybc, cTempl.npcybf, cTempl.npcybr, cTempl.cocybag]
templates: [cTempl.cocybsn, cTempl.cocybth, cTempl.cocybtk, cTempl.cocybag]
},
});

Expand Down
4 changes: 2 additions & 2 deletions data/base/script/campaign/cam2-end.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ function vtolAttack()
//SouthEast attackers which are mostly cyborgs.
function cyborgAttack()
{
const list = [cTempl.npcybr, cTempl.cocybag, cTempl.npcybc, cTempl.comhltat, cTempl.cohhpv];
const list = [cTempl.cocybtk, cTempl.cocybag, cTempl.cocybsn, cTempl.comhltat, cTempl.cohhpv];

camSendReinforcement(CAM_THE_COLLECTIVE, camMakePos(mis_Labels.southCyborgAssembly), randomTemplates(list, false, true), CAM_REINFORCE_GROUND, {
data: { regroup: false, count: -1 }
Expand All @@ -144,7 +144,7 @@ function cyborgAttack()

function cyborgAttackRandom()
{
const list = [cTempl.npcybr, cTempl.cocybag, cTempl.npcybc, cTempl.npcybc, cTempl.comrotm]; //favor cannon cyborg
const list = [cTempl.cocybtk, cTempl.cocybag, cTempl.cocybsn, cTempl.cocybsn, cTempl.comrotm]; //favor cannon cyborg

camSendReinforcement(CAM_THE_COLLECTIVE, camMakePos(camGenerateRandomMapEdgeCoordinate(mis_Labels.startPos)), randomTemplates(list, false, true).concat(cTempl.comsens), CAM_REINFORCE_GROUND, {
data: { regroup: false, count: -1 }
Expand Down
Loading

0 comments on commit 5811cda

Please sign in to comment.