diff --git a/compile.bat b/compile.bat index c45ac210f0969a67af76b21fdc116e53f388dbe2..ac1bb770ee1a70e6a490379eecd9b98d1b7111da 100644 --- a/compile.bat +++ b/compile.bat @@ -5,8 +5,6 @@ pushd %~dp0 :: See if we can find a git installation -setlocal enabledelayedexpansion - set GITFOUND=no for %%k in (HKCU HKLM) do ( for %%w in (\ \Wow6432Node\) do ( diff --git a/compile_debug+sanityCheck.bat b/compile_debug+sanityCheck.bat index 0eb2efb2b96238402e7b1cbc25e8ed66ec66ccd0..6091542f890e9d59ef9ba4932c14d7fd3cb985ee 100644 --- a/compile_debug+sanityCheck.bat +++ b/compile_debug+sanityCheck.bat @@ -5,8 +5,6 @@ pushd %~dp0 :: See if we can find a git installation -setlocal enabledelayedexpansion - set GITFOUND=no for %%k in (HKCU HKLM) do ( for %%w in (\ \Wow6432Node\) do ( diff --git a/js/003-data/policiesData.js b/js/003-data/policiesData.js index 4b56d17639f47ab1305a3d77c958938a5f91dd15..ac51caf38135945eae4ff7bdff0a72d75f04503a 100644 --- a/js/003-data/policiesData.js +++ b/js/003-data/policiesData.js @@ -809,11 +809,11 @@ App.Data.Policies.Selection = { "policies.retirement.milk": [ { title: "Productive Cow Retirement", - get text() { return `slaves will be rewarded with their freedom once they have been fucked ${num(V.policies.retirement.milk)} times.`; }, + get text() { return `slaves will be rewarded with their freedom once they have given ${num(V.policies.retirement.milk)} liters of milk.`; }, get activatedText() { const el = new DocumentFragment; let div = document.createElement('div'); - el.append(`slaves are rewarded with their freedom once they have been fucked ${num(V.policies.retirement.milk)} times.`); + el.append(`slaves are rewarded with their freedom once they have given ${num(V.policies.retirement.milk)} liters of milk.`); div.append(`Set a new retirement requirement:`); div.append( App.UI.DOM.makeElement( diff --git a/src/Mods/SecExp/secExpSmilingMan.tw b/src/Mods/SecExp/secExpSmilingMan.tw index 0b772539da302b45c92a89cb337d527e2df51df9..a153b6de275c59cd7de9db843a3ccbf5c0cea4a6 100644 --- a/src/Mods/SecExp/secExpSmilingMan.tw +++ b/src/Mods/SecExp/secExpSmilingMan.tw @@ -1,227 +1,275 @@ :: secExpSmilingMan [nobr] -<strong>The Smiling Man</strong> <br> +<h2>The Smiling Man</h2> <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> <<setAssistantPronouns>> <<if $smilingManProgress == 0>> <<set $fcnn.push("...encryption techniques: how to protect you and your loved ones from hackers ...")>> - - <br> - During your morning routine, a peculiar report appears: it's been several weeks since your arcology was the victim of a series of cyber-crimes conducted by a mysterious figure. - The egocentric criminal apparently took great pride in their acts, to the point of signing them with a symbol: a stylized smiling face. Your arcology was not the only one under assault by the - machinations of the one the media quickly nicknamed //the Smiling Man//. - <br>Despite the sheer damage this criminal did, you cannot help but admire the skill with which every misdeed was performed — the worst white collar crimes of the century, carried out with such elegance - that they almost seemed the product of natural laws, rather than masterful manipulation of the digital market. - While sifting through the report, $assistant.name remains strangely quiet. "I'm worried, <<= properTitle()>> — this individual seems to be able to penetrate whichever system garners his attention. I... feel vulnerable," _heA says. "It's not something I'm used to." - <br>Fortunately you have not been hit directly by this criminal — yet. Still, the repercussions of numerous bankruptcies take their toll on your arcology, whose @@.red;prosperity suffers.@@ - <br><<set $arcologies[0].prosperity *= random(80,90) * 0.01>> - <br> - <span id="result"> - <br> - <<if $cash >= 10000>> - <<link "Devote funds to the search for this dangerous criminal">> - <<run cashX(-10000, "event")>> - <<set $investedFunds = 1>> - <<set $relationshipLM++>> - <<set $smilingManProgress++>> - <<replace "#result">> - You devote funds to capture and neutralize the threat. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? - <</replace>> - <</link>> - <br> - <<link "Attempt to contact the mysterious figure">> - <<run cashX(-10000, "event")>> - <<set $investedFunds = 1>> - <<set $relationshipLM += 2>> - <<set $smilingManProgress++>> - <<replace "#result">> - You devote funds to an attempt at communicating with the smiling man. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? - <</replace>> - <</link>> - <br> - <<link "Invest funds to increase the cyber-security of the arcology">> - <<run cashX(-10000, "event")>> - <<set $investedFunds = 1>> - <<set $relationshipLM += random(5,10)>> - <<set $smilingManProgress++>> - <<replace "#result">> - You devote funds to the improvement of the cyber-security of your arcology. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? - <</replace>> - <</link>> - <<else>> - Not enough funds to take further action. - <</if>> - <br> - <<link "Ignore the issue">> - <<set $smilingManProgress++>> - <<replace "#result">> - You do not consider this individual a threat. - <</replace>> - <</link>> - </span> + <p> + During your morning routine, a peculiar report appears: it's been several weeks since your arcology was the victim of a series of cyber-crimes conducted by a mysterious figure. + The egocentric criminal apparently took great pride in their acts, to the point of signing them with a symbol: a stylized smiling face. Your arcology was not the only one under assault by the + machinations of the one the media quickly nicknamed <span style="font-style:italic">the Smiling Man</span>. + </p> + <p> + Despite the sheer damage this criminal did, you cannot help but admire the skill with which every misdeed was performed — the worst white collar crimes of the century, carried out with such elegance that they almost seemed the product of natural laws, rather than masterful manipulation of the digital market. While sifting through the report, $assistant.name remains strangely quiet. "I'm worried, <<= properTitle()>> — this individual seems to be able to penetrate whichever system garners his attention. I... feel vulnerable," _heA says. "It's not something I'm used to." + </p> + <p> + Fortunately you have not been hit directly by this criminal — yet. Still, the repercussions of numerous bankruptcies take their toll on your arcology, whose <span class="red">prosperity suffers.</span> + <<set $arcologies[0].prosperity *= random(80,90) * 0.01>> + </p> + <p id="result"> + <<if $cash >= 10000>> + <div> + <<link "Devote funds to the search for this dangerous criminal">> + <<run cashX(-10000, "event")>> + <<set $investedFunds = 1>> + <<set $relationshipLM++>> + <<set $smilingManProgress++>> + <<replace "#result">> + You devote funds to capture and neutralize the threat. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? + <</replace>> + <</link>> + </div> + <div> + <<link "Attempt to contact the mysterious figure">> + <<run cashX(-10000, "event")>> + <<set $investedFunds = 1>> + <<set $relationshipLM += 2>> + <<set $smilingManProgress++>> + <<replace "#result">> + You devote funds to an attempt at communicating with the smiling man. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? + <</replace>> + <</link>> + </div> + <div> + <<link "Invest funds to increase the cyber-security of the arcology">> + <<run cashX(-10000, "event")>> + <<set $investedFunds = 1>> + <<set $relationshipLM += random(5,10)>> + <<set $smilingManProgress++>> + <<replace "#result">> + You devote funds to the improvement of the cyber-security of your arcology. You cannot help but wonder what the end game of this "smiling man" is. Money? Fame? Or is he on an ideological crusade? + <</replace>> + <</link>> + </div> + <<else>> + <div> + Not enough funds to take further action. + </div> + <</if>> + <div> + <<link "Ignore the issue">> + <<set $smilingManProgress++>> + <<replace "#result">> + You do not consider this individual a threat. + <</replace>> + <</link>> + </div> + </p> <<elseif $smilingManProgress == 1>> <<set $fcnn.push("...cybersecurity market is booming thanks to a series of recent high-profile attacks...")>> - - <br> - You have just reached your penthouse when your faithful assistant appears in front of you, evidently excited. - "<<= properTitle()>>, I have just received news of a new attack by the Smiling Man. It appears a few hours ago he infiltrated another arcology and caused a catastrophic failure of its power plant. - Between old debts and the loss of value for his shares, the owner went bankrupt in minutes. It seems the Smiling Man managed to keep a small auxiliary generator functioning enough to project a giant holographic picture of his symbol on the arcology's walls. - Say what you will about his actions, but you can't deny he has style... Anyways, this opens up a great opportunity to gain control of the structure for ourselves." - It is indeed a great opportunity, one you cannot resist. You quickly organize the affair and in a few minutes a message reaches your assistant. - <br>"Should I open it?" your assistant asks. You silently nod. - <br>Suddenly the room flashes red, while your assistant fades for half a second. When _heA reappears, _hisA face has been replaced by a stylized smiling face. - <br>"Hello, my dear $PC.birthName. I can call you $PC.birthName, right? I've been keeping an eye on you for so long now, it feels like we're friends! I am terribly sorry for my unannounced visit, but I wanted to meet face to face... well, face to hologram." it says, letting out a childlike giggle. - "I'm sure you're aware of my recent activities around this rock of ours, and, well, to put it simply, it's your turn to contribute to my great project! You'll love it when you see it, I'm sure! By the way, thanks for the offer — it's so nice to see people contribute to a worthy cause so generously! Well, I've taken enough of your time, see you soon!" - <br>The lights flicker once more and an instant later your assistant returns to _hisA usual self. - <br>"I... I — I couldn't stop him! I'm sorry, <<= properTitle()>>." - <br>You waste no time in rushing to the console and checking your finances. It's as you feared, @@.red;you have been robbed.@@ + <p> + You have just reached your penthouse when your faithful assistant appears in front of you, evidently excited. + "<<= properTitle()>>, I have just received news of a new attack by the Smiling Man. It appears a few hours ago he infiltrated another arcology and caused a catastrophic failure of its power plant. + Between old debts and the loss of value for his shares, the owner went bankrupt in minutes. It seems the Smiling Man managed to keep a small auxiliary generator functioning enough to project a giant holographic picture of his symbol on the arcology's walls. + Say what you will about his actions, but you can't deny he has style... Anyways, this opens up a great opportunity to gain control of the structure for ourselves." + It is indeed a great opportunity, one you cannot resist. You quickly organize the affair and in a few minutes a message reaches your assistant. + </p> + <p> + "Should I open it?" your assistant asks. You silently nod. + </p> + <p> + Suddenly the room flashes red, while your assistant fades for half a second. When _heA reappears, _hisA face has been replaced by a stylized smiling face. + </p> + <p> + "Hello, my dear $PC.birthName. I can call you $PC.birthName, right? I've been keeping an eye on you for so long now, it feels like we're friends! I am terribly sorry for my unannounced visit, but I wanted to meet face to face... well, face to hologram." it says, letting out a childlike giggle. + "I'm sure you're aware of my recent activities around this rock of ours, and, well, to put it simply, it's your turn to contribute to my great project! You'll love it when you see it, I'm sure! By the way, thanks for the offer — it's so nice to see people contribute to a worthy cause so generously! Well, I've taken enough of your time, see you soon!" + </p> + <p> + The lights flicker once more and an instant later your assistant returns to _hisA usual self. + </p> + <p> + "I... I — I couldn't stop him! I'm sorry, <<= properTitle()>>." + </p> + <p> + You waste no time in rushing to the console and checking your finances. It's as you feared, <span class="cash.dec">you have been robbed.</span> + </p> <<set _lostCash = Math.clamp(50000 * Math.trunc($week / 20), 50000, 1000000)>> <<if $assistant.power >= 1>> - <br>Fortunately, the computing power available to $assistant.name allowed _himA to - <<if $assistant.power == 1>> - <<set _lostCash -= Math.min(20000, _lostCash)>> - somewhat - <<elseif $assistant.power == 2>> - <<set _lostCash -= Math.min(30000, _lostCash)>> - <<elseif $assistant.power >= 3>> - <<set _lostCash -= Math.min(40000, _lostCash)>> - significantly - <</if>> + <p> + Fortunately, the computing power available to $assistant.name allowed _himA to + <<if $assistant.power == 1>> + <<set _lostCash -= Math.min(20000, _lostCash)>> + somewhat + <<elseif $assistant.power == 2>> + <<set _lostCash -= Math.min(30000, _lostCash)>> + <<elseif $assistant.power >= 3>> + <<set _lostCash -= Math.min(40000, _lostCash)>> + significantly + <</if>> limit the damage. + </p> <</if>> - <<if $secUpgrades.cyberBots == 1>> - <<set _lostCash -= Math.min(30000, _lostCash)>> - The additional cyber defenses acquired and running in the security HQ <<if _lostCash < 200000>>further<</if>> limit the damage. - <</if>> - <<if $investedFunds == 1>> - <<set _lostCash -= Math.min(20000, _lostCash)>> - The funding you dedicated to the Smiling Man case saved some of the assets that would have been otherwise lost. - <</if>> + <p> + <<if $secUpgrades.cyberBots == 1>> + <<set _lostCash -= Math.min(30000, _lostCash)>> + The additional cyber defenses acquired and running in the security HQ <<if _lostCash < 200000>>further<</if>> limit the damage. + <</if>> + <<if $investedFunds == 1>> + <<set _lostCash -= Math.min(20000, _lostCash)>> + The funding you dedicated to the Smiling Man case saved some of the assets that would have been otherwise lost. + <</if>> + </p> <<run cashX(forceNeg(_lostCash), "event")>> - <br> - <br> - <span id="result"> - <br> - <<link ""I want him dead. Now."">> - <<set $relationshipLM-->> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to double down on the search and elimination of the threat. - <</replace>> - <</link>> - <br> - <<link ""I want him, dead or alive!"">> - <<set $relationshipLM++>> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to double down on the search and capture of the threat. - <</replace>> - <</link>> - <br> - <<link ""If we don't find him soon, we will regret it."">> - <<set $relationshipLM += 2>> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to double down on the search and neutralization of the threat. - <</replace>> - <</link>> - <br> - <<link ""He got what he wanted. Hopefully, we will be left in peace."">> - <<set $smilingManProgress++>> - <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> - <<replace "#result">> - You take no further action. Hopefully this ordeal is over. - <</replace>> - <</link>> - </span> + <p id="result"> + <div> + <<link ""I want him dead. Now."">> + <<set $relationshipLM-->> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to double down on the search and elimination of the threat. + <</replace>> + <</link>> + </div> + <div> + <<link ""I want him, dead or alive!"">> + <<set $relationshipLM++>> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to double down on the search and capture of the threat. + <</replace>> + <</link>> + </div> + <div> + <<link ""If we don't find him soon, we will regret it."">> + <<set $relationshipLM += 2>> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to double down on the search and neutralization of the threat. + <</replace>> + <</link>> + </div> + <div> + <<link ""He got what he wanted. Hopefully, we will be left in peace."">> + <<set $smilingManProgress++>> + <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> + <<replace "#result">> + You take no further action. Hopefully this ordeal is over. + <</replace>> + <</link>> + </div> + </p> <<elseif $smilingManProgress == 2>> <<set $fcnn.push("...my money safe the old-fashioned way: I store it all underneath my mattress...")>> - - <br> <<set $smilingManWeek = $week>> - When $assistant.name violently wakes you up, _hisA worried expression can mean only one thing: the Smiling Man had been back. "We were anonymously sent a link to a new website: it's a very simple site, no visuals, no text; only a countdown ticking away. It will reach zero this evening." your assistant says. - This is troubling, yet somewhat exciting. The Smiling Man never failed to cause damage, but his ego had gotten the best of him this time — having time to prepare before their attack will give you a chance to find them. For the rest of the day you do your best to plan, prepare and focus. - <br> - <br>Evening came faster than you anticipated. Your security team was already at full alert, waiting for any signal on the horizon. The die was cast. - <br>Suddenly all the computers in the room begin to act strangely, and then it happened. On all of the screens across the arcology the Smiling Man's icon appears, then every speaker begins broadcasting the same voice, one that you have already heard once before: - <br>"Hello citizens of $arcologies[0].name! I am here on this special day to relay to you a very important message: we find ourselves in very peculiar times, times of strife and suffering! But these are also times of change and regeneration! Indeed, I say humanity itself is regenerating, turning into a new being for which the - ideals of the old world no longer hold meaning. A new blank page from which humanity can begin to prosper again. - <br>Alas, my friends, not all is good, as in this rebirth a great injustice is being perpetrated. If we truly want to ascend to this new form of humanity the old must give way to the new. If we must cleanse our mind of old ideas, our world must cleanse itself of them as well. - It's to fix this injustice, that I worked so hard all this time! To cleanse the world of the old, we must get rid of our precious, precious data. At the end of this message every digital device will see its memory erased, every archive cleaned, every drive deleted. - <br>It will be a true rebirth! A true new beginning! No longer will the chains of the past keep humanity anchored!" - <br>The voice stopped for a second. - <br>"Have a good day," it simply concluded. - <br>Then it happened. - <br>In little more than seconds all the data collected in the years past vanished. It's a disaster. - The vast majority of currency is digital, so the actions of the Smiling Man have a devastating effect on the money supply. - <<if $cash < 0>> - Luckily for you this means that your @@.yellowgreen;debt is reduced.@@ - <<else>> - Unfortunately this means that your @@.red;cash reserves are gutted.@@ - <</if>> - <<run cashX(($cash * 0.2)-$cash, "event")>> - You are not the only one affected by this however. @@.red;The economy of the entire world is severely affected@@ by the loss of vast quantities of currency. Who knows how long will it take for the global economy to recover. - <<set $globalCrisisWeeks = random(8,16)>> - Trade is @@.red;severely affected.@@ - <<set $SecExp.core.trade *= 0.2>> - With the loss of so much information, most of your accomplishments are simply forgotten, so @@.red;your reputation suffers.@@ - <<run repX(($rep * 0.6)-$rep, "event")>> + <p style="margin-bottom: 2em"> + When $assistant.name violently wakes you up, _hisA worried expression can mean only one thing: the Smiling Man had been back. "We were anonymously sent a link to a new website: it's a very simple site, no visuals, no text; only a countdown ticking away. It will reach zero this evening." your assistant says. + This is troubling, yet somewhat exciting. The Smiling Man never failed to cause damage, but his ego had gotten the best of him this time — having time to prepare before their attack will give you a chance to find them. For the rest of the day you do your best to plan, prepare and focus. + </p> - <<if $arcologies[0].ownership >= 60>> - <<if $SecExp.core.authority <= 10000>> - <<set _cells = $building.findCells(cell => cell.canBeSold())>> - <<set jsEither(_cells).owner = 0>> - Vast amount of data relative to the ownership of the arcology is lost. You lost all legal claims to one of the sectors. + <p> + Evening came faster than you anticipated. Your security team was already at full alert, waiting for any signal on the horizon. The die was cast. + </p> + <p> + Suddenly all the computers in the room begin to act strangely, and then it happened. On all of the screens across the arcology the Smiling Man's icon appears, then every speaker begins broadcasting the same voice, one that you have already heard once before: + </p> + <p> + "Hello citizens of $arcologies[0].name! I am here on this special day to relay to you a very important message: we find ourselves in very peculiar times, times of strife and suffering! But these are also times of change and regeneration! Indeed, I say humanity itself is regenerating, turning into a new being for which the + ideals of the old world no longer hold meaning. A new blank page from which humanity can begin to prosper again. + </p> + <p> + Alas, my friends, not all is good, as in this rebirth a great injustice is being perpetrated. If we truly want to ascend to this new form of humanity the old must give way to the new. If we must cleanse our mind of old ideas, our world must cleanse itself of them as well. + It's to fix this injustice, that I worked so hard all this time! To cleanse the world of the old, we must get rid of our precious, precious data. At the end of this message every digital device will see its memory erased, every archive cleaned, every drive deleted. + </p> + <p> + It will be a true rebirth! A true new beginning! No longer will the chains of the past keep humanity anchored!" + </p> + <p> + The voice stopped for a second. + </p> + <p> + "Have a good day," it simply concluded. + </p> + <p> + Then it happened. + </p> + <p> + In little more than seconds all the data collected in the years past vanished. It's a disaster. + The vast majority of currency is digital, so the actions of the Smiling Man have a devastating effect on the money supply. + <<if $cash < 0>> + Luckily for you this means that your <span class="cash.inc">debt is reduced.</span> <<else>> - Vast amount of data relative to the ownership of the arcology is lost. You would've run the risk of losing ownership of one of the sectors, but fortunately your authority is so high your citizens do not dare question your claims even in the absence of a valid legal case. + Unfortunately this means that your <span class="cash.dec">cash reserves are gutted.</span> <</if>> - <</if>> - <<if $secUpgrades.coldstorage > 3>> - Your cold storage facility has ensured that the Smiling Man's destruction of the primary archives was unable to damage the security of your arcology. - <<elseif $secUpgrades.coldstorage == 0>> - Your security department sees its archives butchered by the Smiling Man. Almost all data on criminals, citizens, and operations are lost. The @@.red;security of the arcology is greatly reduced.@@ Criminals, on the other hand, with their past erased, cannot wait to join this new world, so @@.red;crime will inevitably increase.@@ - <<set $SecExp.security.cap = Math.clamp($SecExp.security.cap * 0.2,0,100)>> - <<set $SecExp.core.crimeLow = Math.clamp($SecExp.core.crimeLow * 1.5, 20,100)>> - <</if>> + <<run cashX(($cash * 0.2)-$cash, "event")>> + You are not the only one affected by this however. <span class="red">The economy of the entire world is severely affected</span> by the loss of vast quantities of currency. Who knows how long will it take for the global economy to recover. + <<set $globalCrisisWeeks = random(8,16)>> + Trade is <span class="red">severely affected.</span> + <<set $SecExp.core.trade *= 0.2>> + With the loss of so much information, most of your accomplishments are simply forgotten, so <span class="reputation.dec">your reputation suffers.</span> + <<run repX(($rep * 0.6)-$rep, "event")>> - <br>A short, meek man approaches you with a weak smile. "Not all is lost, <<= properTitle()>>. We have a lead on him — he is here, in $arcologies[0].name." - <br>Despite the bleak situation, you cannot help but smile back. - <br> - <br> - <span id="result"> - <br> - <<link ""Eliminate the threat, once and for all."">> - <<set $relationshipLM-->> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to prepare for a manhunt. - <</replace>> - <</link>> - <br> - <<link ""Bring him to me."">> - <<set $relationshipLM++>> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to prepare for a manhunt. - <</replace>> - <</link>> - <br> - <<link ""Such skill on my side would be a great boon. Find him."">> - <<set $relationshipLM += 2>> - <<set $smilingManProgress++>> - <<replace "#result">> - You command your loyal operatives to prepare for a manhunt. - <</replace>> - <</link>> - <br> - <<link ""He finally got what he always wanted. Let him have his victory, we have better things to do."">> - <<set $smilingManProgress++>> - <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> - <<replace "#result">> - You take no further action. Hopefully this ordeal is finally over. - <</replace>> - <</link>> - </span> + <<if $arcologies[0].ownership >= 60>> + <<if $SecExp.core.authority <= 10000>> + <<set _cells = $building.findCells(cell => cell.canBeSold())>> + <<set jsEither(_cells).owner = 0>> + Vast amount of data relative to the ownership of the arcology is lost. You lost all legal claims to one of the sectors. + <<else>> + Vast amount of data relative to the ownership of the arcology is lost. You would've run the risk of losing ownership of one of the sectors, but fortunately your authority is so high your citizens do not dare question your claims even in the absence of a valid legal case. + <</if>> + <</if>> + <<if $secUpgrades.coldstorage > 3>> + Your cold storage facility has ensured that the Smiling Man's destruction of the primary archives was unable to damage the security of your arcology. + <<elseif $secUpgrades.coldstorage == 0>> + Your security department sees its archives butchered by the Smiling Man. Almost all data on criminals, citizens, and operations are lost. The <span class="red">security of the arcology is greatly reduced.</span> Criminals, on the other hand, with their past erased, cannot wait to join this new world, so <span class="red">crime will inevitably increase.</span> + <<set $SecExp.security.cap = Math.clamp($SecExp.security.cap * 0.2,0,100)>> + <<set $SecExp.core.crimeLow = Math.clamp($SecExp.core.crimeLow * 1.5, 20,100)>> + <</if>> + </p> + <p> + A short, meek man approaches you with a weak smile. "Not all is lost, <<= properTitle()>>. We have a lead on him — he is here, in $arcologies[0].name." + </p> + <p> + Despite the bleak situation, you cannot help but smile back. + </p> + <p id="result"> + <div> + <<link ""Eliminate the threat, once and for all."">> + <<set $relationshipLM-->> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to prepare for a manhunt. + <</replace>> + <</link>> + </div> + <div> + <<link ""Bring him to me."">> + <<set $relationshipLM++>> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to prepare for a manhunt. + <</replace>> + <</link>> + </div> + <div> + <<link ""Such skill on my side would be a great boon. Find him."">> + <<set $relationshipLM += 2>> + <<set $smilingManProgress++>> + <<replace "#result">> + You command your loyal operatives to prepare for a manhunt. + <</replace>> + <</link>> + </div> + <div> + <<link ""He finally got what he always wanted. Let him have his victory, we have better things to do."">> + <<set $smilingManProgress++>> + <<set $nextButton = "Continue", $nextLink = "Random Nonindividual Event">> + <<replace "#result">> + You take no further action. Hopefully this ordeal is finally over. + <</replace>> + <</link>> + </div> + </p> <<elseif $smilingManProgress == 3>> <<set $nextButton = " ">> <<set $fcnn.push("...sometimes high-tech problems have low-tech solutions. Back to you in the...")>> @@ -283,106 +331,136 @@ <<set $activeSlave.clothes = "a military uniform">> /*closest thing to commie/punk we have at the moment*/ <<setLocalPronouns $activeSlave>> - <br> - The day has come to finally put an end to this story. Your men are ready to go, waiting only on your signal. You quickly don your protective gear and proceed down the busy streets of your arcology. - You carefully planned the day so that nothing could exit the arcology without being scanned at least three times and poked twice. The Smiling Man has no escape. - <br>After a short walk you are in front of the criminal's lair, a rundown old apartment in a scarcely populated part of the arcology. You give the order to breach and your men rush inside without problems. - After a couple of seconds pass without a single noise coming from the apartment, you begin to worry. Then you hear the captain - - <span id="continue"> + <p> + The day has come to finally put an end to this story. Your men are ready to go, waiting only on your signal. You quickly don your protective gear and proceed down the busy streets of your arcology. + You carefully planned the day so that nothing could exit the arcology without being scanned at least three times and poked twice. The Smiling Man has no escape. + </p> + <p> + After a short walk you are in front of the criminal's lair, a rundown old apartment in a scarcely populated part of the arcology. You give the order to breach and your men rush inside without problems. + After a couple of seconds pass without a single noise coming from the apartment, you begin to worry. Then you hear the captain - <<link "calling you inside.">> - <<replace "#continue">> - /* 000-250-006 */ - <<if $seeImages == 1>> - <div class="imageRef medImg"><<= SlaveArt($activeSlave, 2, 0)>></div> - <</if>> - /* 000-250-006 */ - calling you inside. - <br><br>"So it was you to find me first. - <<if $relationshipLM > 2>> - I was hoping you would be the one! - <<else>> - I expected you would be the one. - <</if>> - Well, I hope I'm everything you expected," you hear a voice say. Despite recognizing it, you struggle to convince yourself that the little $girl in front of you is indeed the famous criminal mastermind. - <br>"As you can see, I have no intention of escaping. I knew my life was over the second my plan went into effect. I accepted my end a long time ago, so feel free to do your worst; my life has already ended in triumph." - <br>You evaluate the situation: the burning desire of vengeance for all the damage that little twerp caused is hard to ignore, but equally so is the admiration for $his skill and determination. Indeed, $he would be a great addition to your court, as a free individual or not. - - <span id="result"> <br><br> - - <<link "Offer $him a new life">> - <<set $smilingManFate = 0>> - <<replace "#result">> - <br>You decide it would be criminally wasteful to throw away such talent. You offer $him a new life at your side. $His expertise will surely guarantee safety, if not supremacy, to your arcology in cyberspace, while $he will have safety and luxury in the physical world. - <br> - <<link "Continue">> - <<set $smilingManProgress++>> - <<goto "secExpSmilingMan">> - <</link>> - <</replace>> - <</link>> + <span id="continue"> + <<link "calling you inside.">> + <<replace "#continue">> + calling you inside. + <p> + <<if $seeImages == 1>> + <div class="imageRef medImg"><<= SlaveArt($activeSlave, 2, 0)>></div> + <</if>> + "So it was you to find me first. + <<if $relationshipLM > 2>> + I was hoping you would be the one! + <<else>> + I expected you would be the one. + <</if>> + Well, I hope I'm everything you expected," you hear a voice say. Despite recognizing it, you struggle to convince yourself that the little $girl in front of you is indeed the famous criminal mastermind. + </p> + <p style="margin-bottom: 2em"> + "As you can see, I have no intention of escaping. I knew my life was over the second my plan went into effect. I accepted my end a long time ago, so feel free to do your worst; my life has already ended in triumph." + </p> + <p> + You evaluate the situation: the burning desire of vengeance for all the damage that little twerp caused is hard to ignore, but equally so is the admiration for $his skill and determination. Indeed, $he would be a great addition to your court, as a free individual or not. + </p> - <br> <<link "Make $him pay">> - <<set $smilingManFate = 1>> - <<replace "#result">> - <br>You decide to end $his pitiful life. $He has crossed the wrong master of the new world $he worked so hard to create. No mercy was asked for and no mercy will be given. - <br> - <<link "Continue">> - <<set $smilingManProgress++>> - <<goto "secExpSmilingMan">> - <</link>> - <</replace>> - <</link>> - <br> <<link "Enslave $him">> - <<set $smilingManFate = 2>> - <<replace "#result">> - <br>You decide to enslave the $girl. $His skill may be great, but $his crimes are equally so, which makes it all the sweeter to turn $him into an obedient little toy to play with. - <br> - <<link "Continue">> - <<set $smilingManProgress++>> - <<goto "secExpSmilingMan">> - <</link>> - <</replace>> - <</link>> - </span> - <</replace>> /* closes replace "#continue" */ - <</link>> - </span> /* closes id="continue" */ + <p id="result"> + <div> + <<link "Offer $him a new life">> + <<set $smilingManFate = 0>> + <<replace "#result">> + <div> + You decide it would be criminally wasteful to throw away such talent. You offer $him a new life at your side. $His expertise will surely guarantee safety, if not supremacy, to your arcology in cyberspace, while $he will have safety and luxury in the physical world. + </div> + <div> + <<link "Continue">> + <<set $smilingManProgress++>> + <<goto "secExpSmilingMan">> + <</link>> + </div> + <</replace>> + <</link>> + </div> + <div> + <<link "Make $him pay">> + <<set $smilingManFate = 1>> + <<replace "#result">> + <div> + You decide to end $his pitiful life. $He has crossed the wrong master of the new world $he worked so hard to create. No mercy was asked for and no mercy will be given. + </div> + <div> + <<link "Continue">> + <<set $smilingManProgress++>> + <<goto "secExpSmilingMan">> + <</link>> + </div> + <</replace>> + <</link>> + </div> + <div> + <<link "Enslave $him">> + <<set $smilingManFate = 2>> + <<replace "#result">> + <div> + You decide to enslave the $girl. $His skill may be great, but $his crimes are equally so, which makes it all the sweeter to turn $him into an obedient little toy to play with. + </div> + <div> + <<link "Continue">> + <<set $smilingManProgress++>> + <<goto "secExpSmilingMan">> + <</link>> + </div> + <</replace>> + <</link>> + </div> + </p> + <</replace>> /* closes replace "#continue" */ + <</link>> + </span> /* closes id="continue" */ + </p> <<else>> <<if $smilingManFate < 2>> /* 000-250-006 */ <<if $seeImages == 1>> - <div class="imageRef medImg"><<= SlaveArt($activeSlave, 2, 0)>></div> + <div class="imageRef medImg"><<= SlaveArt($activeSlave, 2, 0)>></div> <</if>> /* 000-250-006 */ <<if $smilingManFate == 0>> - The $girl asks for a few minutes to think about your offer, - <<if $relationshipLM >= 4>> - but $he quickly comes to terms with the situation and accepts. - <<else>> - and after some time $he reluctantly accepts. - <</if>> - In the following weeks $he will get acquainted with the security network of the arcology and work to protect $his new home in the new world $he has created. - The world will never find out the truth of the Smiling Man and his legend will only grow with time, outliving his creator and maybe even $his new employer. - <br>The collaboration of the ex-Smiling Man permanently increases @@.green;security and the rate of prosperity growth.@@ @@.limegreen;Cash will be also provided,@@ but you're better off not knowing the sources. + <p> + The $girl asks for a few minutes to think about your offer, + <<if $relationshipLM >= 4>> + but $he quickly comes to terms with the situation and accepts. + <<else>> + and after some time $he reluctantly accepts. + <</if>> + In the following weeks $he will get acquainted with the security network of the arcology and work to protect $his new home in the new world $he has created. + The world will never find out the truth of the Smiling Man and his legend will only grow with time, outliving his creator and maybe even $his new employer. + </p> + <p> + The collaboration of the ex-Smiling Man permanently increases <span class="green">security and the rate of prosperity growth.</span> <span class="cash.inc">Cash will be also provided,</span> but you're better off not knowing the sources. + </p> <<elseif $smilingManFate == 1>> <<set $activeSlave.clothes = "no clothing">> - For such a criminal a simple execution is not enough. You order the $girl captured and crucified outside the city, with a mask resembling $his famous symbol. Your men quickly obey. $He never once shows sign of pain or fear, remaining stoic and proud to the end. - Once $his life ends, you order a statue erected in commemoration of the death of the Smiling Man. From this day forward the statue of the crucified criminal will adorn your arcology and his legend will be forever entangled with yours. - <br>Having dealt with the Smiling Man will provide @@.green;a large boost to your reputation, as well as a moderate amount of reputation each week.@@ + <p> + For such a criminal a simple execution is not enough. You order the $girl captured and crucified outside the city, with a mask resembling $his famous symbol. Your men quickly obey. $He never once shows sign of pain or fear, remaining stoic and proud to the end. + Once $his life ends, you order a statue erected in commemoration of the death of the Smiling Man. From this day forward the statue of the crucified criminal will adorn your arcology and his legend will be forever entangled with yours. + </p> + <p> + Having dealt with the Smiling Man will provide <span class="reputation.inc">a large boost to your reputation, as well as a moderate amount of reputation each week.</span> + </p> <<run repX(10000, "architecture")>> <</if>> <<elseif $smilingManFate == 2>> <<set $activeSlave.clothes = "no clothing">> - Your men move to immobilize $him. Terror flashes through $his eyes for - <<if $relationshipLM >= 4>> - a second, but $he quickly recovers $his usual demeanor. - <<else>> - a second — $he barely manages to recover $his usual demeanor. - <</if>> - <br><br> + <p style="margin-bottom: 2em"> + Your men move to immobilize $him. Terror flashes through $his eyes for + <<if $relationshipLM >= 4>> + a second, but $he quickly recovers $his usual demeanor. + <<else>> + a second — $he barely manages to recover $his usual demeanor. + <</if>> + </p> <<includeDOM App.Desc.longSlave(V.activeSlave)>> - <br> <<include "New Slave Intro">> + <p> + <<include "New Slave Intro">> + </p> <</if>> <</if>> diff --git a/src/Mods/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw index 9e5a96b6d74d621d862326690d9a411187c23bdc..0c6badff365ef2eba86ec341c323161047f8e5af 100644 --- a/src/Mods/SpecialForce/Firebase.tw +++ b/src/Mods/SpecialForce/Firebase.tw @@ -52,12 +52,13 @@ <div id="Actions" class="tabcontent"> <div class="content"> - <<if $SF.MercCon.CanAttend === 0>> - <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SF.Colonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, back when I was a merc me and a couple of my old friends would have a meetup every several months. Drinking, fucking, drugs... a little poker. It eventually grew into a whole thing, and now we bring our latest and greatest toys to show off, maybe make some money off selling the schematics. I'd like to continue going, for old times' sake." - <br>[[Grant leave|Firebase][$SF.MercCon.CanAttend = 1]] - <br>[[Request she remain on base|Firebase][$SF.MercCon.CanAttend = -2]]<br> - <<elseif $SF.MercCon.History >= 1 && ((Math.trunc($week/24) === ($week/24)) && $SF.MercCon.CanAttend === -1)>> - <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SF.Colonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, that biannual merc meetup has come around again. You've already gave me leave to attend, but I just wanted to be sure I'm still clear to go." + <<if $SF.MercCon.CanAttend === 0 || $SF.MercCon.History >= 1 && ((Math.trunc($week/24) === ($week/24)) && $SF.MercCon.CanAttend === -1)>> + Her expression changes as something jogs her memory. "Before we begin <<if $SF.Colonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>> + <<if $SF.MercCon.CanAttend === 0>> + , back when I was a merc me and a couple of my old friends would have a meetup every several months. Drinking, fucking, drugs... a little poker. It eventually grew into a whole thing, and now we bring our latest and greatest toys to show off, maybe make some money off selling the schematics. I'd like to continue going, for old times' sake." + <<elseif $SF.MercCon.History >= 1 && ((Math.trunc($week/24) === ($week/24)) && $SF.MercCon.CanAttend === -1)>> + , that biannual merc meetup has come around again. You've already gave me leave to attend, but I just wanted to be sure I'm still clear to go." + <</if>> <br>[[Grant leave|Firebase][$SF.MercCon.CanAttend = 1]] <br>[[Request she remain on site|Firebase][$SF.MercCon.CanAttend = -2]]<br> <</if>> @@ -108,4 +109,4 @@ <div id="FS" class="tabcontent"> <div class="content"> <<= App.SF.fsIntegration()>> </div> </div> -<</if>> \ No newline at end of file +<</if>> diff --git a/src/Mods/SpecialForce/FirebaseTour.tw b/src/Mods/SpecialForce/FirebaseTour.tw index 82125801272756a23aac444b4d1387fd78b6da3b..eea27b8dc25379cf0015749354a54c18cda1f3a0 100644 --- a/src/Mods/SpecialForce/FirebaseTour.tw +++ b/src/Mods/SpecialForce/FirebaseTour.tw @@ -105,13 +105,11 @@ As you approach, The Colonel <<= App.SF.fsIntegration('OptionsFlavourText',65)>> <</if>> -<<if App.SF.unlocked.hangar()>> - <<if _H > 0>> <br><br>''Hangar:'' - <<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')>> +<<if App.SF.unlocked.hangar()>> <br><br>''Hangar:'' + <<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')>> <<= App.SF.fsIntegration('OptionsFlavourText',70)>> <<= App.SF.fsIntegration('OptionsFlavourText',75)>> <</if>> diff --git a/src/Mods/SpecialForce/Upgrades.tw b/src/Mods/SpecialForce/Upgrades.tw index 539360722e394426fea40ade9708c406d31a3b4b..bcb3527cc9bdc22e51b333191a9b8a4a7d9efceb 100644 --- a/src/Mods/SpecialForce/Upgrades.tw +++ b/src/Mods/SpecialForce/Upgrades.tw @@ -1,9 +1,8 @@ :: Upgrades [nobr] -<br>Which facility or equipment do you wish to upgrade this week? <br> +<<set _fullyUpgraded = []>> <br>Which facility or equipment do you wish to upgrade this week? <br> -<<set _FU = App.SF.upgrades.currentUnitMax('Firebase')>> -<<if $SF.Squad.Firebase < _FU>> +<<if $SF.Squad.Firebase < App.SF.upgrades.currentUnitMax('Firebase')>> <<set _cF = App.SF.UpgradeCost(100000,$SF.Squad.Firebase)>> <<if $cash >= _cF>> <br> [[Upgrade Firebase|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.Firebase++, cashX(-(_cF), "specialForces")]] @@ -11,12 +10,11 @@ //Cannot afford to upgrade the Firebase.// <</if>> //Costs @@.red;<<print cashFormat(_cF)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Firebase)>> </span> <br> -<<elseif $SF.Squad.Firebase === _FU>> - //The Firebase has been fully upgraded.// <br> +<<elseif $SF.Squad.Firebase === 10>> + <<set _fullyUpgraded.push('Firebase')>> <</if>> -<<set _AU = App.SF.upgrades.currentUnitMax('Armoury')>> -<<if $SF.Squad.Armoury < _AU>> +<<if $SF.Squad.Armoury < App.SF.upgrades.currentUnitMax('Armoury')>> <<set _cA = App.SF.UpgradeCost(40000,$SF.Squad.Armoury)>> <<if $cash >= _cA>> [[Upgrade Armory|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.Armoury++, cashX(-(_cA), "specialForces")]] @@ -24,12 +22,11 @@ //Cannot afford to upgrade the Armory.// <</if>> //Costs @@.red;<<print cashFormat(_cA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Armoury)>> </span> <br> -<<elseif $SF.Squad.Armoury === _AU>> - //The Armory has been fully upgraded.// <br> +<<elseif $SF.Squad.Armoury === 10>> + <<set _fullyUpgraded.push('Armory')>> <</if>> -<<set _DrugsU = App.SF.upgrades.currentUnitMax('Drugs')>> -<<if $SF.Squad.Drugs < _DrugsU>> +<<if $SF.Squad.Drugs < App.SF.upgrades.currentUnitMax('Drugs')>> <<set _cDrugs = App.SF.UpgradeCost(40000,$SF.Squad.Drugs)>> <<if $cash >= _cDrugs>> [[Upgrade Drug Lab|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.Drugs++, cashX(-(_cDrugs), "specialForces")]] @@ -37,12 +34,11 @@ //Cannot afford to upgrade the Drug Lab.// <</if>> //Costs @@.red;<<print cashFormat(_cDrugs)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Drugs)>> </span> <br> -<<elseif $SF.Squad.Drugs === _DrugsU>> - //The Drug Lab has been fully upgraded.// <br> +<<elseif $SF.Squad.Drugs === 10>> + <<set _fullyUpgraded.push('Drug Lab')>> <</if>> -<<set _DU = App.SF.upgrades.currentUnitMax('Drones')>> -<<if $SF.Squad.Firebase >= 2 && $SF.Squad.Drones < _DU>> +<<if $SF.Squad.Firebase >= 2 && $SF.Squad.Drones < App.SF.upgrades.currentUnitMax('Drones')>> <<set _cDrones = App.SF.UpgradeCost(45000,$SF.Squad.Drones)>> <<if $cash >= _cDrones>> [[Upgrade Drone Bay|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.Drones++, cashX(-(_cDrones), "specialForces")]] @@ -50,14 +46,13 @@ //Cannot afford to upgrade the Drone Bay.// <</if>> //Costs @@.red;<<print cashFormat(_cDrones)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Drones)>> </span> <br> -<<elseif $SF.Squad.Drones === _DU>> - //The Drone Bay has been fully upgraded.// <br> +<<elseif $SF.Squad.Drones === 10>> + <<set _fullyUpgraded.push('Drone Bay')>> <</if>> <<if App.SF.unlocked.garage()>> <br>''Garage''<br> <div style="margin-left:2em"> - <<set _AVU = App.SF.upgrades.currentUnitMax('AV')>> - <<if $SF.Squad.AV < _AVU>> + <<if $SF.Squad.AV < App.SF.upgrades.currentUnitMax('AV')>> <<set _cAV = App.SF.UpgradeCost(60000,$SF.Squad.AV)>> <<if $cash >= _cAV>> [[Upgrade Attack Vehicle Fleet|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.AV++, cashX(-(_cAV), "specialForces")]] @@ -65,14 +60,13 @@ //Cannot afford to upgrade the Attack Vehicle Fleet.// <</if>> //Costs @@.red;<<print cashFormat(_cAV)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.AV)>> </span> <br> - <<elseif $SF.Squad.AV === _AVU>> - //The Attack Vehicle Fleet has been fully upgraded.// <br> + <<elseif $SF.Squad.AV === 10>> + <<set _fullyUpgraded.push('Attack Vehicle Fleet')>> <</if>> </div> <div style="margin-left:2em"> - <<set _TVU = App.SF.upgrades.currentUnitMax('TV')>> - <<if $SF.Squad.TV < _TVU>> + <<if $SF.Squad.TV < App.SF.upgrades.currentUnitMax('TV')>> <<set _cTV = App.SF.UpgradeCost(60000,$SF.Squad.TV)>> <<if $cash >= _cTV>> [[Upgrade Transport Vehicle Fleet|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.TV++, cashX(-(_cTV), "specialForces")]] @@ -80,8 +74,8 @@ //Cannot afford to upgrade Transport Vehicle Fleet.// <</if>> //Costs @@.red;<<print cashFormat(_cTV)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.TV)>> </span> <br> - <<elseif $SF.Squad.TV === _TVU>> - //The Transport Vehicle Fleet has been fully upgraded.// <br> + <<elseif $SF.Squad.TV === 10>> + <<set _fullyUpgraded.push('Transport Vehicle Fleet')>> <</if>> </div> @@ -98,15 +92,14 @@ <<elseif $SF.Squad.PGT === _PGTU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.PGT)>> </span> <br> <<elseif $SF.Squad.PGT === _PGTU>> - //The Prototype Goliath Tank has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Prototype Goliath Tank')>> <</if>> </div> <</if>> /*Closes garage.*/ <<if App.SF.unlocked.hangar()>>''Hangar''<br> <div style="margin-left:2em"> - <<set _AAU = App.SF.upgrades.currentUnitMax('AA')>> - <<if $SF.Squad.AA < _AAU>> + <<if $SF.Squad.AA < App.SF.upgrades.currentUnitMax('AA')>> <<set _cAA = App.SF.UpgradeCost(70000,$SF.Squad.AA)>> <<if $cash >= _cAA>> [[Upgrade Attack Aircraft Fleet|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.AA++, cashX(-(_cAA), "specialForces")]] @@ -114,14 +107,13 @@ //Cannot afford to upgrade Attack Aircraft Fleet.// <</if>> //Costs @@.red;<<print cashFormat(_cAA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.AA)>> </span> <br> - <<elseif $SF.Squad.AA === _AAU>> - //The Attack Aircraft Fleet has been fully upgraded.// <br> + <<elseif $SF.Squad.AA === 10>> + <<set _fullyUpgraded.push('Attack Aircraft Fleet')>> <</if>> </div> <div style="margin-left:2em"> - <<set _TAU = App.SF.upgrades.currentUnitMax('TA')>> - <<if $SF.Squad.TA < _TAU>> + <<if $SF.Squad.TA < App.SF.upgrades.currentUnitMax('TA')>> <<set _cTA = App.SF.UpgradeCost(70000,$SF.Squad.TA)>> <<if $cash >= _cTA>> [[Upgrade Transport Aircraft Fleet|Firebase][$SF.Upgrade = 1, $SF.Colonel.Talk += 1, $SF.Squad.TA++, cashX(-(_cTA), "specialForces")]] @@ -129,8 +121,8 @@ //Cannot afford to upgrade the Transport Aircraft Fleet.// <</if>> //Costs @@.red;<<print cashFormat(_cTA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.TA)>> </span> <br> - <<elseif $SF.Squad.TA === _TAU>> - //The Transport Aircraft Fleet has been fully upgraded.// <br> + <<elseif $SF.Squad.TA === 10>> + <<set _fullyUpgraded.push('Transport Aircraft Fleet')>> <</if>> </div> @@ -147,7 +139,7 @@ <<elseif $SF.Squad.SpacePlane === _SPU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.SpacePlane)>> </span> <br> <<elseif $SF.Squad.SpacePlane === _SPU>> - //The Spaceplane has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Spaceplane')>> <</if>> </div> @@ -164,7 +156,7 @@ <<elseif $SF.Squad.GunS === _GunSU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GunS)>> </span> <br> <<elseif $SF.Squad.GunS === _GunSU>> - //The Gunship has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Gunship')>> <</if>> </div> <</if>> /*Closes hangar.*/ @@ -183,7 +175,7 @@ <<elseif $SF.Squad.Satellite === _SatU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Satellite)>> </span> <br> <<else>> - //The Satellite has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Satellite')>> <</if>> </div> @@ -201,7 +193,7 @@ <<elseif $SF.Squad.GiantRobot === _GRU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GiantRobot)>> </span> <br> <<else>> - //The Giant Robot has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Giant Robot')>> <</if>> </div> @@ -218,7 +210,7 @@ <<elseif $SF.Squad.MissileSilo === _MSU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.MissileSilo)>> </span> <br> <<else>> - //The Cruise Missile has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Cruise Missile')>> <</if>> </div> <</if>> @@ -238,7 +230,7 @@ <<elseif $SF.Squad.AircraftCarrier === _ACU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.AircraftCarrier)>> </span> <br> <<else>> - //The Aircraft Carrier has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Aircraft Carrier')>> <</if>> </div> @@ -255,7 +247,7 @@ <<elseif $SF.Squad.Sub === _SubU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Sub)>> </span> <<else>> - //The Submarine has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Submarine')>> <</if>> </div> @@ -272,7 +264,9 @@ <<elseif $SF.Squad.HAT === _HATU && $PC.skill.warfare < 75>> //Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.HAT)>> </span> <br> <<else>> - //The Amphibious Transport has been fully upgraded.// <br> + <<set _fullyUpgraded.push('Amphibious Transport')>> <</if>> </div> -<</if>> /*Closes Naval Yard.*/ \ No newline at end of file +<</if>> /*Closes Naval Yard.*/ + +<<if _fullyUpgraded.length > 0>> <br>//The following units are fully upgraded: <<= _fullyUpgraded>>//. <</if>> \ No newline at end of file diff --git a/src/endWeek/saServeYourOtherSlaves.js b/src/endWeek/saServeYourOtherSlaves.js index 8af5b173289fba69f893a6638348d64d17113f2d..7b04d0277c3bf73b92fff0008ffff98e6f6ab720 100644 --- a/src/endWeek/saServeYourOtherSlaves.js +++ b/src/endWeek/saServeYourOtherSlaves.js @@ -1485,7 +1485,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { break; case "submissive": if (slave.fetish !== "dom") { - r.push(`${domName}'s sexual submission has a lasting effect on ${subName}; <span class="lightcoral">${he}'s grown a taste for dominating otherse.</span>`); + r.push(`${domName}'s sexual submission has a lasting effect on ${subName}; <span class="lightcoral">${he}'s grown a taste for dominating others.</span>`); slave.fetish = "dom"; slave.fetishStrength = 35; slave.fetishKnown = 1; @@ -1703,7 +1703,7 @@ App.SlaveAssignment.serveYourOtherSlaves = (function() { slave.trust -= 5; } else { if (slave.devotion > 20) { - r.push(`${He} is accustomed enough to slave life to porperly manage ${his} time.`); + r.push(`${He} is accustomed enough to slave life to properly manage ${his} time.`); } else { r.push(`${He} <span class="red">wastes time and energy resisting</span> where a properly broken slave would accept what is happening and take it.`); } diff --git a/src/events/RETS/reSiblingTussle.js b/src/events/RETS/reSiblingTussle.js index 4c7e8301aa4c3920df3ad8b437da658ad5eb9fc8..0de2800b7683d71d43c64b95b20ed053f1283332 100644 --- a/src/events/RETS/reSiblingTussle.js +++ b/src/events/RETS/reSiblingTussle.js @@ -145,7 +145,7 @@ App.Events.RETSSiblingTussle = class RETSSiblingTussle extends App.Events.BaseEv t = []; t.push(`Once you think your message has gotten through, you pull ${sib1.slaveName} off your ${V.PC.dick > 0 ? "dick" : "strap-on"} with a pop, pull ${sib2.slaveName} to ${his2} knees and repeat your chosen punishment on ${him2}.`); t.push(`${sib1.slaveName} kneels obediently, crying quietly as you abuse ${his} ${relativeTerm(sib1, sib2)}.`); - t.push(`When you've finished, you're sure both siblings are more likely to <span class="trust dec">respect the rules</span>, out of fear if nothing else.`); + t.push(`When you've finished, you're sure both siblings are more likely to <span class="trust dec">respect the rules,</span> out of fear if nothing else.`); App.Events.addParagraph(frag, t); sib1.trust -= 5; diff --git a/src/js/economyJS.js b/src/js/economyJS.js index 38d74caa88fd2dd9ba802190b60253cf25982051..5a1c2afdc3711f96811f7e0f639e82eba9f526c0 100644 --- a/src/js/economyJS.js +++ b/src/js/economyJS.js @@ -1042,7 +1042,7 @@ globalThis.getSlaveCostArray = function(s) { } } if (s.drugs === 'appetite suppressors') { - retval.push({text: "Food saved via supressed appetite", value: -Math.abs(foodCost)}); + retval.push({text: "Food saved via suppressed appetite", value: -Math.abs(foodCost)}); } if (s.lactation > 0) { t = "Food to support ";