diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index 35a951cc169998f404a8493ee18aa7d914539bfc..d0214570e62b34fef2e74608779371cf8388a9a6 100644 --- a/src/002-config/fc-version.js +++ b/src/002-config/fc-version.js @@ -1,7 +1,7 @@ App.Version = { base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed. pmod: "3.4.0", - release: 1067, + release: 1068, }; /* Use release as save version */ diff --git a/src/Mods/SecExp/rebellionOptions.tw b/src/Mods/SecExp/rebellionOptions.tw index 9fb989e19bbb8889b6f223cfc3b70455cf32c447..e314f4c5dd516b3a5af3baab8ef335717a53147e 100644 --- a/src/Mods/SecExp/rebellionOptions.tw +++ b/src/Mods/SecExp/rebellionOptions.tw @@ -97,10 +97,10 @@ <</if>> <</if>> <</for>> - <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.Squad.Troops)>> strong<</if>> + <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.ArmySize)>> strong<</if>> are called to defend the arcology from this menace. <<else>> - <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.Squad.Troops)>> strong<</if>> <</if>> + <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.ArmySize)>> strong<</if>> <</if>> are called to defend the arcology from this menace. <</if>> <hr> @@ -192,10 +192,10 @@ <</if>> <</if>> <</for>> - <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.Squad.Troops)>> strong<</if>> + <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.ArmySize)>> strong<</if>> are called to defend the arcology from this menace. <<else>> - <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.Squad.Troops)>> strong<</if>><</if>> + <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print num($SF.ArmySize)>> strong<</if>><</if>> are called to defend the arcology from this menace. <</if>> <hr> diff --git a/src/Mods/SecExp/unitsBattleReport.tw b/src/Mods/SecExp/unitsBattleReport.tw index 8130374dc3b7954228109f8ef6ce654e00f88819..74082e8238b03b6b7efaee6112785e44639d75c5 100644 --- a/src/Mods/SecExp/unitsBattleReport.tw +++ b/src/Mods/SecExp/unitsBattleReport.tw @@ -7,7 +7,7 @@ <</if>> <<if $SF.Toggle && $SF.Active >= 1 && $SFIntervention>> <br> - <<print num($SF.Squad.Troops)>> soldiers from $SF.Lower joined the battle: no casualties suffered. + <<print num($SF.ArmySize)>> soldiers from $SF.Lower joined the battle: no casualties suffered. <</if>> <<if App.SecExp.conflict.deployedUnits('militia') >= 1>> <<for _j = 0; _j < $militiaUnits.length; _j++>> @@ -122,8 +122,8 @@ <<if $SF.Toggle && $SF.Active >= 1 && $SFIntervention>> <br> <<set _loss = _lossesList.pluck()>> - <<set _loss = Math.clamp(_loss,0,$SF.Squad.Troops)>> - <<print num($SF.Squad.Troops)>> soldiers from $SF.Lower joined the battle: + <<set _loss = Math.clamp(_loss,0,$SF.ArmySize)>> + <<print num($SF.ArmySize)>> soldiers from $SF.Lower joined the battle: <<if _loss <= 0>> no casualties <<elseif _loss <= 10>> @@ -136,7 +136,7 @@ catastrophic casualties <</if>> suffered. - <<set $SF.Squad.Troops -= _loss>> + <<set $SF.ArmySize -= _loss>> <br> <</if>> <<if App.SecExp.conflict.deployedUnits('militia') >= 1>> diff --git a/src/Mods/SecExp/unitsRebellionReport.tw b/src/Mods/SecExp/unitsRebellionReport.tw index 148bf30aa0df6d25d779327cfff2c7db123012d9..65ed13047d18f4cf2de7bc4691be9af413488568 100644 --- a/src/Mods/SecExp/unitsRebellionReport.tw +++ b/src/Mods/SecExp/unitsRebellionReport.tw @@ -9,7 +9,7 @@ Security drones: no casualties suffered. <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <br>$SF.Lower, <<print num($SF.Squad.Troops)>> strong, was called to join the battle: no casualties suffered. + <br>$SF.Lower, <<print num($SF.ArmySize)>> strong, was called to join the battle: no casualties suffered. <</if>> <<set _count = 0>> <<if $loyalID.length > 0>> @@ -359,9 +359,9 @@ <<if $SF.Toggle && $SF.Active >= 1>> <br><br> <<set _loss = _lossesList.pluck()>> - <<set _loss = Math.clamp(_loss,0,$SF.Squad.Troops)>> - <<= App.SF.Caps()>>, $SF.Squad.Troops strong, is called to join the battle: - <<set $SF.Squad.Troops -= _loss>> + <<set _loss = Math.clamp(_loss,0,$SF.ArmySize)>> + <<= App.SF.Caps()>>, $SF.ArmySize strong, is called to join the battle: + <<set $SF.ArmySize -= _loss>> <<if _loss <= 0>> no casualties <<elseif _loss <= 10>> diff --git a/src/Mods/SecExp/widgets/battleWidgets.js b/src/Mods/SecExp/widgets/battleWidgets.js index 4a677410e70014a32111e8fb2db1649f5ca8fb86..c0e7504999eba2ede8800bf271b109ed3c050624 100644 --- a/src/Mods/SecExp/widgets/battleWidgets.js +++ b/src/Mods/SecExp/widgets/battleWidgets.js @@ -11,12 +11,12 @@ globalThis.calcSFStatistics = function() { /* hp */ V.carriableSoldiers = 125 * (V.SF.Squad.GunS + ((V.SF.Squad.AV + V.SF.Squad.TV)/2)); if (!Number.isInteger(V.carriableSoldiers)) { - V.carriableSoldiers = V.SF.Squad.Troops / 10; + V.carriableSoldiers = V.SF.ArmySize / 10; } - if (V.SF.Squad.Troops > V.carriableSoldiers) { + if (V.SF.ArmySize > V.carriableSoldiers) { V.SFhp = V.carriableSoldiers * V.SFBaseHp; } else { - V.carriableSoldiers = V.SF.Squad.Troops; + V.carriableSoldiers = V.SF.ArmySize; V.SFhp = V.carriableSoldiers * V.SFBaseHp; } } else { @@ -24,7 +24,7 @@ globalThis.calcSFStatistics = function() { V.SFatk = Math.trunc(0.75 * upgradesSum); V.SFdef = Math.trunc(0.50 * upgradesSum); /* hp */ - V.SFhp = V.SF.Squad.Troops * V.SFBaseHp; + V.SFhp = V.SF.ArmySize * V.SFBaseHp; } }; diff --git a/src/Mods/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw index 80c7448c379f60bdd1c2a780550ac0265c9dec55..07eb1d1b4200e3c70745ff2435215b9ca2b7d1d9 100644 --- a/src/Mods/SpecialForce/Firebase.tw +++ b/src/Mods/SpecialForce/Firebase.tw @@ -2,7 +2,6 @@ <<= App.SF.Count()>> <<if $SF.FS.Tension > 100>> <<= App.SF.fsIntegration('BadOutcome')>> <<else>> - <<set _S=$SF.Squad>> <<if $SF.tour === 0>> <<switch _Env>> <<case 4>> <<set _EnvCash2 = 450,_EnvCash3 = 200,_EnvCash4 = 100,_EnvProsp = 3>> @@ -156,7 +155,7 @@ <<= App.SF.fsIntegration('OptionsFlavourText',40)>> <<= App.SF.fsIntegration('OptionsFlavourText',-1)>> <<= App.SF.fsIntegration('OptionsFlavourText')>> - <<if _S.Firebase === 10>> + <<if $SF.Squad.Firebase === 10>> <br>The echo of simulated gun fire and explosions can be heard from the state of the art killhouse. The quite hum of fans keeping the faster and much more efficient custom network operational can be heard throughout the firebase.<br> <</if>> @@ -170,8 +169,8 @@ <<= App.SF.UnitText('drugs')>> <<= App.SF.fsIntegration('OptionsFlavourText',45)>> <<= App.SF.UnitText('UAV')>> <<= App.SF.fsIntegration('OptionsFlavourText',55)>> - <<if _G > 0 && _S.Firebase >= 1>> <br><br>''Garage:'' - <<if _S.AV+_S.TV > 0>> <br> ''Vehicles:'' + <<if _G > 0 && $SF.Squad.Firebase >= 1>> <br><br>''Garage:'' + <<if $SF.Squad.AV+$SF.Squad.TV > 0>> <br> ''Vehicles:'' <<= App.SF.UnitText('AV')>> <<= App.SF.UnitText('TV')>> <</if>> <<= App.SF.UnitText('PGT')>> @@ -179,9 +178,9 @@ <<= App.SF.fsIntegration('OptionsFlavourText',65)>> <</if>> - <<if _S.Firebase >= 4>> + <<if $SF.Squad.Firebase >= 4>> <<if _H > 0>> <br><br>''Hangar:'' - <<if _S.AA+_S.TA > 0>> <br> ''Airforce:'' + <<if $SF.Squad.AA+$SF.Squad.TA > 0>> <br> ''Airforce:'' <<= App.SF.UnitText('AA')>> <<= App.SF.UnitText('TA')>> <</if>> <<= App.SF.UnitText('SP')>> <<= App.SF.UnitText('GunS')>> diff --git a/src/Mods/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js index eaa81f40d3207dd7e8403d08c97b419e0e2cfb40..7f7a9b7d592b70a669553be5265de1bd9bcaaa03 100644 --- a/src/Mods/SpecialForce/SpecialForce.js +++ b/src/Mods/SpecialForce/SpecialForce.js @@ -1,5 +1,4 @@ -// V=SugarCube.State.variables, T=SugarCube.State.temporary; - +// T=SugarCube.State.temporary; App.SF.Caps = function() { return capFirstChar(V.SF.Lower); } @@ -24,8 +23,9 @@ App.SF.Init = function() { V.SF.Regs = V.SF.Regs || "strict"; V.SF.Lower = V.SF.Lower || "the special force"; + V.SF.ArmySize = V.SF.ArmySize || 40; + V.SF.Squad = V.SF.Squad || {}; - V.SF.Squad.Troops = V.SF.Squad.Troops || 40; V.SF.Squad.Armoury = V.SF.Squad.Armoury || 0; V.SF.Squad.Firebase = V.SF.Squad.Firebase || 0; V.SF.Squad.AV = V.SF.Squad.AV || 0; @@ -70,7 +70,7 @@ App.SF.Init = function() { Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[] }; - }*/ + } */ }; /* no-usedOnce */ @@ -240,8 +240,10 @@ App.SF.BC = function() { if (V.securityForceHeavyAmphibiousTransport === undefined) { V.securityForceHeavyAmphibiousTransport = 0; } + + V.SF.ArmySize = V.securityForcePersonnel; + V.SF.Squad = { - Troops: V.securityForcePersonnel, Armoury: V.securityForceInfantryPower, Firebase: V.securityForceArcologyUpgrades, AV: V.securityForceVehiclePower, @@ -267,6 +269,11 @@ App.SF.BC = function() { } else if (typeof V.SF === "object") { App.SF.Init(); + if (jsDef(V.SF.Squad.Troops)) { + V.SF.ArmySize = V.SF.Squad.Troops; + delete V.SF.Squad.Troops; + } + if (V.SF.MercCon !== undefined) { if( V.SF.MercCon.View !== undefined) { delete V.SF.MercCon.View; @@ -2223,8 +2230,8 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`) const Obj = { Active: -2, Toggle: V.SF.Toggle, - Squad:{Troops:V.SF.Squad.Troops}, - Size:V.SF.Size, + ArmySize: V.SF.ArmySize, + Size: V.SF.Size, FS: { Tension: V.SF.FS.Tension, BadOutcome: BadOutcome @@ -2293,28 +2300,28 @@ App.SF.AAR = function(endWeekCall = 1) { NO = 1; N1 = 0.1; - if (S.Troops > unitCap) { - S.Troops = unitCap; + if (V.SF.ArmySize > unitCap) { + V.SF.ArmySize = unitCap; } if (endWeekCall > 0) { - if (S.Troops < 100) { - S.Troops += Math.ceil(jsRandom(2, 5)); + if (V.SF.ArmySize < 100) { + V.SF.ArmySize += Math.ceil(jsRandom(2, 5)); } else { if (V.SF.Target === "recruit") { - S.Troops -= Math.ceil(jsRandom(1 * S.Troops / 1000, 0)); + V.SF.ArmySize -= Math.ceil(jsRandom(1 * V.SF.ArmySize / 1000, 0)); } else if (V.SF.Target === "raiding") { - S.Troops -= Math.ceil(jsRandom(1.15 * S.Troops / 1000, -1.20 * S.Troops / 1000)); + V.SF.ArmySize -= Math.ceil(jsRandom(1.15 * V.SF.ArmySize / 1000, -1.20 * V.SF.ArmySize / 1000)); } else { - S.Troops -= Math.ceil(jsRandom(1.10 * S.Troops / 1000, -1.15 * S.Troops / 1000)); + V.SF.ArmySize -= Math.ceil(jsRandom(1.10 * V.SF.ArmySize / 1000, -1.15 * V.SF.ArmySize / 1000)); } } } - if (S.Troops > 200) { - Trade += 0.05 * (S.Troops / 200); - Multiplier.troop += S.Troops / 200; - upkeep += (S.Troops * 25) / cost.a; + if (V.SF.ArmySize > 200) { + Trade += 0.05 * (V.SF.ArmySize / 200); + Multiplier.troop += V.SF.ArmySize / 200; + upkeep += (V.SF.ArmySize * 25) / cost.a; if (V.secExpEnabled > 0 && endWeekCall > 0) { - V.SecExp.core.authority += 25 * (Math.ceil(S.Troops / 200)); + V.SecExp.core.authority += 25 * (Math.ceil(V.SF.ArmySize / 200)); V.SecExp.core.authority += V.SF.Size * 10; V.SecExp.core.authority = Math.clamp(V.SecExp.core.authority, 0, 20000); } @@ -2505,7 +2512,7 @@ App.SF.AAR = function(endWeekCall = 1) { } } - income += ((baseLine * (1 + Multiplier.troop / NO).toFixed(2) * (1 + Multiplier.unit / NO).toFixed(2) * (1 + Multiplier.action / NO).toFixed(2) * (1 + Multiplier.depravity / NO).toFixed(2)) - (upkeep * N1).toFixed(2)) / ((V.SF.Size / 2 + S.Troops / 2) * 5); + income += ((baseLine * (1 + Multiplier.troop / NO).toFixed(2) * (1 + Multiplier.unit / NO).toFixed(2) * (1 + Multiplier.action / NO).toFixed(2) * (1 + Multiplier.depravity / NO).toFixed(2)) - (upkeep * N1).toFixed(2)) / ((V.SF.Size / 2 + V.SF.ArmySize / 2) * 5); if (V.SF.Target === "raiding") { income *= 1.25; } else { @@ -2518,7 +2525,7 @@ App.SF.AAR = function(endWeekCall = 1) { income *= 14.15; } } // Remove line if hard mode ever gets fixed. - if (endWeekCall > 0) { S.Troops += FNG; } + if (endWeekCall > 0) { V.SF.ArmySize += FNG; } income = Math.ceil(income); if (V.debugMode > 0 && endWeekCall > 0) { r += `<br>income:${num(income)}, troop:${num((0.09+Multiplier.troop/NO).toFixed(2))}, unit:${num((0.09+Multiplier.unit/NO).toFixed(2))}, action:${num((0.09+Multiplier.action/NO).toFixed(2))}, depravity:${num((0.09+Multiplier.depravity/NO).toFixed(2))}, upkeep:${num((upkeep*N1).toFixed(2))}`; @@ -2533,8 +2540,8 @@ App.SF.AAR = function(endWeekCall = 1) { if (endWeekCall > 0) { cashX(income, "specialForces"); - if (S.Troops > unitCap) { - S.Troops = unitCap; + if (V.SF.ArmySize > unitCap) { + V.SF.ArmySize = unitCap; } if (V.arcologies[0].prosperity > V.AProsperityCap) { V.arcologies[0].prosperity = V.AProsperityCap; @@ -2550,7 +2557,7 @@ App.SF.AAR = function(endWeekCall = 1) { V.SF.Upgrade = 0; r += `<h3>Week ${V.week} (AO: ${V.terrain}) operational report for ${V.SF.Lower}:</h3>`; - r += `${App.SF.Caps()} focused their ${num(S.Troops)} troops on `; + r += `${App.SF.Caps()} focused their ${num(V.SF.ArmySize)} troops on `; if (V.SF.Target === "recruit") { r += `recruiting and training more personnel. Smaller parties ventured out to protect the arcology's trade routes and strike targets of opportunity.`; @@ -2909,7 +2916,7 @@ App.SF.UnitText = function(input) { let comms = ``, training = ``; - const Quantity = `the ${num(S.Troops)} members of ${V.SF.Lower}`; + const Quantity = `the ${num(V.SF.ArmySize)} members of ${V.SF.Lower}`; let weapons = `The weapons are mostly worn rifles that have already seen years of service before ${V.SF.Lower} acquired them.`; let armor1 = `The body armor is enough to stop smaller calibers, but nothing serious.`; @@ -3162,15 +3169,15 @@ App.SF.UnitText = function(input) { } break; case 'troop': - if (S.Troops > 0) { + if (V.SF.ArmySize > 0) { const text1 = `<br> The large dormitories are`; - if (S.Troops < 100) { + if (V.SF.ArmySize < 100) { return `${text1} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future.`; - } else if (S.Troops < 400) { + } else if (V.SF.ArmySize < 400) { return `${text1} lightly occupied, with ${Quantity} starting to spread out across them.`; - } else if (S.Troops < 800) { + } else if (V.SF.ArmySize < 800) { return `${text1} moderately occupied, though ${Quantity} residing within have a considerable amount of extra room.`; - } else if (S.Troops < 1500) { + } else if (V.SF.ArmySize < 1500) { return `${text1} well-occupied, and ${Quantity} residing within have started to form small cliques based on section and row.`; } else { return `${text1} near capacity, and ${Quantity} often barter their personal loot, whether it be monetary or human, for the choicest bunks.`; diff --git a/src/js/economyJS.js b/src/js/economyJS.js index f78811649b9e65e2839aa745676ad626cd8434ba..34da091ff4ba7f6884c0c36ad680bc213a0a651b 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -879,7 +879,7 @@ globalThis.calculateCosts = (function() { function getSFCosts(costs = 0) { if (V.SF.Toggle && V.SF.Active >= 1 && App.SF.AAR(0)) { - costs += Math.ceil(5000 * (1 + ((V.SF.Squad.Troops / 100) + (V.SF.Size / 100)))); + costs += Math.ceil(5000 * (1 + ((V.SF.ArmySize / 100) + (V.SF.Size / 100)))); } return costs; } diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw index 32433250947b235aac603a21e374c108a6d6de8a..a206119e3a0ce74f11dd2e544359b1366f5a5425 100644 --- a/src/uncategorized/fsDevelopments.tw +++ b/src/uncategorized/fsDevelopments.tw @@ -37,9 +37,9 @@ <<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>> Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to undercover work helps to advance your cultural goals. <<if $SF.UC.Assign === 1>> - <<set _value = $SF.Squad.Troops * 0.05>> + <<set _value = $SF.ArmySize * 0.05>> <<else>> - <<set _value = $SF.Squad.Troops * 0.25>> + <<set _value = $SF.ArmySize * 0.25>> <</if>> <<set _broadProgress += _value/100>> <br> <</if>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index c0704013767dd9b901c2a30a0b3b1b06a18986f4..5f423039632b0614ae05d8a10dc9d6126feda593 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -502,7 +502,7 @@ <<if $SF.Toggle === 0||$SF.Active === 0>> Your army counts <<print num($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower)>> total soldiers. <<elseif $SF.Toggle && $SF.Active >= 1>> - Your army counts <<print num($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower + $SF.Squad.Troops)>> total soldiers of which <<print num($SF.Squad.Troops)>> under the special force command and the rest under your direct control. + Your army counts <<print num($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower + $SF.ArmySize)>> total soldiers of which <<print num($SF.ArmySize)>> under the special force command and the rest under your direct control. <</if>> <<if $hasFoughtOnce == 1>> Your troops were involved in <<print num($battlesCount)>> battles of which <<print num($majorBattlesCount)>> were major engagements. You won diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index b2006cddfecd04fc9247be0b7485c44749d65a57..3386521b4cf15b9783193b48d62ddd4d23411125 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -316,14 +316,14 @@ _enduringRep = $enduringRep>> <<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>> <br>Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to @@.green;undercover work, slightly boosts your reputation.@@ <<if $SF.UC.Assign === 1>> - <<set _value = $SF.Squad.Troops * 0.05>> + <<set _value = $SF.ArmySize * 0.05>> <<else>> - <<set _value = $SF.Squad.Troops * 0.25>> + <<set _value = $SF.ArmySize * 0.25>> <</if>> <<run repX(_value, "specialForces")>> <br> <<elseif $SF.FS.BadOutcome === "ISOLATION">> <br>Your citizens are @@.red;very displeased@@ that you are hosting a legion of heavily armed squatters in your basement. - <<run repX(forceNeg($SF.Squad.Troops+$SF.Size), "specialForces")>> + <<run repX(forceNeg($SF.ArmySize+$SF.Size), "specialForces")>> <</if>> <<if $arcologies[0].FSSupremacist != "unset">> diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw index c11d01e6d8c29646414b9b209cbbebc0d1db8557..9fbed5a3e437ae7aee2600a810428f03149d0a8c 100644 --- a/src/uncategorized/seIndependenceDay.tw +++ b/src/uncategorized/seIndependenceDay.tw @@ -377,10 +377,10 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve <<if $SF.Toggle && $SF.Active >= 1>> <span id="result3"> <br><<link "Host a parade">> <<replace "#result3">><br><br> - <<if $SF.Squad.Troops < 100>> + <<if $SF.ArmySize < 100>> The tiny size of $SF.Lower does not inspire confidence in your citizens. <<run repX(-200, "event")>> - <<elseif $SF.Squad.Troops < 2000>> + <<elseif $SF.ArmySize < 2000>> The almost full size of $SF.Lower inspires confidence in your citizens. <<run repX(1250, "event")>> <</if>>