diff --git a/src/SecExp/securityReport.tw b/src/SecExp/securityReport.tw index 9a8f36a9742ae47132b02cdeb9c5839d1939ce02..a1c906116d818a35461c71b87114bdbb3c0efab9 100644 --- a/src/SecExp/securityReport.tw +++ b/src/SecExp/securityReport.tw @@ -21,6 +21,12 @@ <br> <strong>Security</strong>: +<<if $terrain === "oceanic">> + Due to the @@.green;massive econimc and logisical infesability@@ of attacking a ocenic arcology, your security force(s) has +<<else>> + The @@.red;econimc and logisical fesability@@ of attacking a $terrain arcology, ensures that your security force(s) do not +<</if>> + the luxury of focusing excusively on internal matters.<br> <<if $secMenials > 0>> <<print num($secMenials)>> slaves work to improve the security of your arcology, <<if $mercenaries >= 1 && $arcologyUpgrade.drones == 1>> diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js index 4b9c3d1d328e3ce72d9b024d6e2e042f5d99c6a7..dc2c50286c2f66f934617931c948c77bb82c7946 100644 --- a/src/SpecialForce/SpecialForce.js +++ b/src/SpecialForce/SpecialForce.js @@ -213,7 +213,7 @@ window.SFBC = function() { window.SFReport = function() { "use strict"; const V = State.variables, T = State.temporary, S = V.SF.Squad; - let target = 50000, baseLine = 5000, profit = 0, upkeep = 0, income = 0; + const target = 50000, baseLine = 5000;let profit = 0, upkeep = 0, income = 0; let Multiplier = {action:1, troop:1, unit:1, depravity:1}; let FNG = 10, unitCap = 2500, Trade = 0.025; let cost = {a:0.01,b:2.5}, NO = 1+(V.SF.Size/5), N1 = 1+(V.SF.Size/5); @@ -242,10 +242,11 @@ window.SFReport = function() { } S.Troops -= V.SF.UC.num; if (S.Troops > 200) { - Trade += 0.05*(Math.ceil(S.Troops/100)); + Trade += 0.05*(S.Troops/200); Multiplier.troop += S.Troops/200; upkeep += (S.Troops*25)/cost.a; if (V.secExp > 0) { - V.authority += 25*(Math.ceil(S.Troops/200)); V.authority = Math.clamp(V.authority, 0, 20000); + V.authority += 25*(Math.ceil(S.Troops/200)); V.authority += V.SF.Size*10; + V.authority = Math.clamp(V.authority, 0, 20000); } } @@ -337,10 +338,11 @@ window.SFReport = function() { if (SFD > -2) Trade *= 1+SFD/2; if (V.SF.Target === "recruit") { - FNG += Math.ceil(FNG*0.95); + FNG += FNG*0.95; } else { - FNG += Math.ceil(FNG*0.25); + FNG += FNG*0.25; } + FNG = Math.ceil(FNG/2); if (V.SF.Target === "secure") { repX((Math.ceil(V.rep*((Trade/100)*0.95))), "specialForces"); @@ -349,13 +351,13 @@ window.SFReport = function() { repX((Math.ceil(V.rep*(Trade/100)*0.25)), "specialForces"); V.arcologies[0].prosperity = Math.ceil(V.arcologies[0].prosperity+(Trade/10)*0.25); } - if (V.secExp > 0) V.authority += V.SF.Size*10; V.authority = Math.clamp(V.authority, 0, 20000); - income += Math.ceil( ( (baseLine* (0.09+Multiplier.troop/NO).toFixed(2) * (0.09+Multiplier.unit/NO).toFixed(2) * (0.09+Multiplier.action/NO).toFixed(2) * (0.09+Multiplier.depravity/NO).toFixed(2) ) - (upkeep*N1).toFixed(2) )/((V.SF.Size/2+S.Troops/2)*5) ); - S.Troops += Math.round(FNG/2); + 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 ); + if (V.SF.Target === "raiding") income *= 1.25; else income *= 1.15; + if (V.economy < 100) if (V.SF.Target === "raiding") income *= 14.25; else income *= 14.15;//Remove line if hard mode ever gets fixed. + S.Troops += FNG; income = Math.ceil(income); if (V.debugMode > 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))}`; - if (V.economy < 100) income *= 83; //Remove line if hard mode ever gets fixed. if (income >= target) profit = 1; delete V.SF.Subsidy; cashX(income, "specialForces"); if (S.Troops > unitCap) S.Troops = unitCap; if (V.arcologies[0].prosperity > V.ProsperityCap) V.arcologies[0].prosperity = V.ProsperityCap; @@ -374,7 +376,7 @@ window.SFReport = function() { if (V.SF.Upgrade !== undefined) V.SF.Upgrade = 0; V.SF.Gift = 0; V.SF.Colonel.Talk = 0; V.SF.Colonel.Fun = 0; - r += `<br>__Week ${V.week} operational report for ${V.SF.Lower}__:`; + r += `<br>__Week ${V.week} (AO:${V.terrain}) operational report for ${V.SF.Lower}__:`; r += `<br>${V.SF.Caps} focused their ${num(S.Troops)} troops on `; if (V.SF.Target === "recruit") { @@ -404,7 +406,7 @@ window.SFReport = function() { r += ` Per the estimates that ${SFC()} provides, an additional <span class='yellowgreen'>${cashFormat(target-income)}</span> is required for sufficient cover.`; } - r += ` ${V.SF.Caps} managed to recruit ${Math.round(FNG/2)} new soldiers this week, and your reputation has <span class='green'>increased through the improvement of trade security</span>.`; + r += ` ${V.SF.Caps} managed to recruit ${FNG} new soldiers this week, and your reputation has <span class='green'>increased through the improvement of trade security</span>.`; r += `<br>//Your instructions to ${SFC()}://`; r += `<br> Deployment focus: `; //The below lines are indented to increase readability. @@ -502,7 +504,7 @@ window.SFNameCapsCheck = function() { }; window.SFUpgradeCost = function(cost,unit) { - "use strict"; const V=State.variables,T = State.temporary,S=V.SF.Squad; let value = 0; + "use strict"; const V = State.variables,T = State.temporary,S = V.SF.Squad; let value = 0; value = cost*T.Env*(1.15+(V.SF.Size/10))*(1.15+(unit/100)); if ([S.Sub,S.AircraftCarrier,S.MissileSilo,S.GiantRobot,S.Satellite.lv,S.GunS,S.SpacePlane,S.Drones].includes(unit)) value *= V.HackingSkillMultiplier; return Math.ceil(value);