diff --git a/devNotes/AnatomyOfAFreeCitiesEvent.txt b/devNotes/AnatomyOfAFreeCitiesEvent.txt index 8d9d406fd85f79d882810eca9565a2c958c34a24..0726e8066d9ba01c1a9699874c42b5b8a4b9345c 100644 --- a/devNotes/AnatomyOfAFreeCitiesEvent.txt +++ b/devNotes/AnatomyOfAFreeCitiesEvent.txt @@ -8,7 +8,7 @@ Nonrandom events Random nonindividual events Random individual events -The differences between them are almost non-existent. If they happen, they happen in this order, so you could say it's a kind of event priority ordering. The last two events pre-select a slave (in $eventSlave), with the "nonindividual" events using all your slaves while the "individual" events use only non-fuckdolls, typically from your penthouse. When writing your event, you're free to ignore this and choose your own slave or create a new one. By convention, scheduled events tend to go back to the "Scheduled Event" passage so that other such events can run; all the others tend to just skip to the next event category. Nothing in code forces you to do it this way for your events. +The differences between them are almost non-existent. If they happen, they happen in this order, so you could say it's a kind of event priority ordering. The last two events pre-select a slave (in $eventSlave), with the "nonindividual" events using all your slaves while the "individual" events use only non-Fuckdolls, typically from your penthouse. When writing your event, you're free to ignore this and choose your own slave or create a new one. By convention, scheduled events tend to go back to the "Scheduled Event" passage so that other such events can run; all the others tend to just skip to the next event category. Nothing in code forces you to do it this way for your events. Preconditions Most events have some kind of precondition for when they happen. Scheduled events always happen when their preconditions are true. Nonrandom events happen when their preconditions are true and no other nonrandom events get picked first (so writing a too-often-true precondition is a good way to break the game by blocking any further such events). The two other types of events get put in a pool ($events) if they match the precondition, then at most one event gets pulled from the pool per type. diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw index e6f679132fcca15f96c063d5ab0ce69a6b7594b3..6d7a08be76ce60d8022490ba043651f9f3cb7b81 100644 --- a/src/SecExp/attackHandler.tw +++ b/src/SecExp/attackHandler.tw @@ -177,9 +177,11 @@ <<= IncreasePCSkills('warfare', 10)>> <<set $PC.warfare = Math.clamp($PC.warfare,-100,100)>> <</if>> - /* does the PC get wounded? */ + /* does the PC get wounded? */ <<if $PC.career == "mercenary" || $PC.career == "gang">> <<set _woundChance -= 3>> + <<elseif $PC.warfare >= 75>> + <<set _woundChance -= 2>> <</if>> <<if $PC.physicalAge >= 60>> <<set _woundChance += 1>> diff --git a/src/SecExp/encyclopediaSecExpBattles.tw b/src/SecExp/encyclopediaSecExpBattles.tw index e261224ded36c89123b4a55ae78b14ab00abb9d9..8bc76fda39f593ec776584763450dd1f988ef0a9 100644 --- a/src/SecExp/encyclopediaSecExpBattles.tw +++ b/src/SecExp/encyclopediaSecExpBattles.tw @@ -47,9 +47,15 @@ <br><strong>The Arcology Owner</strong>: You can join the fray yourself. Your performance will depend greatly on your warfare skill and your past. The troops will react to your presence depending on your social standing and your past as well. Do note however there is the possibility of getting wounded, which makes you unable to focus on any task for a few weeks. - <br><strong>Your Bodyguard</strong>: Your bodyguard can guide the troops. Her performance will greatly depend on her intelligence and past. Slaves will be happy to be lead by one of them, but militia and mercenaries will not, unless your own authority is high enough to make up for the fact they are being lead by a slave. - - <br><strong>Your Head Girl</strong>: Your Head Girl can guide the troops. She acts very similarly to the bodyguard in battle. Be aware that both she and the bodyguard run the risk of getting wounded, potentially with grave wounds like blindness or limb loss. + <<if $Bodyguard != 0>> + <<setLocalPronouns $Bodyguard>> + <</if>> + <br><strong>Your Bodyguard</strong>: Your bodyguard can guide the troops. $His performance will greatly depend on $his intelligence and past. Slaves will be happy to be lead by one of them, but militia and mercenaries will not, unless your own authority is high enough to make up for the fact they are being lead by a slave. + + <<if $HeadGirl != 0>> + <<setLocalPronouns $HeadGirl>> + <</if>> + <br><strong>Your Head Girl</strong>: Your Head Girl can guide the troops. $He acts very similarly to the bodyguard in battle. Be aware that both $he and the bodyguard run the risk of getting wounded, potentially with grave wounds like blindness or limb loss. <br><strong>An Outstanding Citizen</strong>: One of your citizens can take the leading role. Their performance will be average; however the militia will be pleased to be guided by one of them. diff --git a/src/SecExp/rebellionReport.tw b/src/SecExp/rebellionReport.tw index de82a59cda086e76adce24fd7102adbd55debe29..d2688fa4829d72d71661587d31e21e2d9f9c1b23 100644 --- a/src/SecExp/rebellionReport.tw +++ b/src/SecExp/rebellionReport.tw @@ -580,6 +580,8 @@ <<set _woundChance = 0>> <<if $PC.career == "mercenary" || $PC.career == "gang">> <<set _woundChance -= 5>> + <<elseif $PC.warfare >= 75>> + <<set _woundChance -= 3>> <</if>> <<if $personalArms >= 1>> <<set _woundChance -= 5>> @@ -751,6 +753,8 @@ <<set _woundChance = 0>> <<if $PC.career == "mercenary" || $PC.career == "gang">> <<set _woundChance -= 5>> + <<elseif $PC.warfare >= 75>> + <<set _woundChance -= 3>> <</if>> <<if $personalArms >= 1>> <<set _woundChance -= 5>> @@ -861,6 +865,8 @@ <<set _woundChance = 0>> <<if $PC.career == "mercenary" || $PC.career == "gang">> <<set _woundChance -= 5>> + <<elseif $PC.warfare >= 75>> + <<set _woundChance -= 3>> <</if>> <<if $personalArms >= 1>> <<set _woundChance -= 5>> diff --git a/src/js/storyJS.js b/src/js/storyJS.js index 8ece004e7cc16fd8ffee8c90c85b13c94448ba4c..334ef73520b739334e382cbf528b25b28877c364 100644 --- a/src/js/storyJS.js +++ b/src/js/storyJS.js @@ -396,9 +396,9 @@ window.overpowerCheck = /** @param {App.Entity.SlaveState} slave */ function (sl if (State.variables.arcologies[0].FSPhysicalIdealist !== "unset") { if (PC.title === 1) { - strength = 130; + strength = 80; } else { - strength = 100; + strength = 60; } } else if (PC.title === 1) { strength = 50; @@ -407,6 +407,8 @@ window.overpowerCheck = /** @param {App.Entity.SlaveState} slave */ function (sl } strength += (185-slave.height); strength -= (PC.belly/1000); + strength += (PC.warfare/3); + strength -= (State.variables.PCWoundCooldown * 15); return strength; }; diff --git a/src/pregmod/pRaped.tw b/src/pregmod/pRaped.tw index ea0c45e4942f1dae025593242a1c1bd42692f46f..4351875166e0ed445b3bce3404bf5797d2702102 100644 --- a/src/pregmod/pRaped.tw +++ b/src/pregmod/pRaped.tw @@ -2,18 +2,43 @@ <<set $raped = 1, $nextLink = "Nonrandom Event", $returnTo = "Nonrandom Event">> +<<set $activeSlaveOneTimeMinAge = 16>> +<<set $oneTimeDisableDisability = 1>> +<<if $arcologies[0].FSSupremacistLawME == 1>> + <<set $fixedRace = $arcologies[0].FSSupremacistRace>> +<<elseif $arcologies[0].FSSubjugationistLawME == 1>> + <<set _races = setup.filterRacesLowercase.filter(race => race !== $arcologies[0].FSSubjugationistRace)>> + <<set $fixedRace = _races.random()>> +<</if>> +<<include "Generate XY Slave">> +<<set $activeSlave.origin = "You sentenced her to enslavement for the attempted rape of a free woman.">> +<<set $activeSlave.devotion = -100>> +<<set $activeSlave.trust = -100>> +<<set $activeSlave.health = random(-50,-20)>> +<<set $activeSlave.anus = 0>> +<<set $activeSlave.dick = 6>> +<<set $activeSlave.balls = 5>> +<<set $activeSlave.boobs = 0>> +<<set $activeSlave.waist = 50>> +<<set $activeSlave.skill.oral = 0>> +<<set $activeSlave.skill.anal = 0>> +<<set $activeSlave.behavioralFlaw = "arrogant">> +<<set $activeSlave.sexualFlaw = "judgemental">> + <<setPlayerPronouns>> While returning from a meeting with a prospective investor, an unfortunate wrong turn has led you into a rather seedy area of your arcology. You feel distinctly uncomfortable for some reason. -<<if $PC.career == "mercenary">> - The moment you hear the sound of the knife unsheathe your reflexes take over. With a single strike, the man tailing you lies in a heap on the ground. - <<set $raped = 0>> -<<elseif $PC.career == "slaver">> - The moment you notice an arm coming around from behind you does your training kick in. You quickly disarm the assailant and knock them to the floor before placing them in a chokehold. Once they are subdued, you stand back to decide what to do next. - <<set $raped = 0>> -<<elseif $PC.career == "gang">> - The moment you hear the sound of the knife unsheathe your reflexes take over. With a single stab, your own shiv is buried in his chest, incapacitating him. +<<if overpowerCheck($activeSlave, $PC) >= random(1,100)>> + <<if $PC.career == "mercenary" || $PC.warfare >= 85>> + The moment you hear the sound of the knife unsheathe your reflexes take over. With a single strike, the man tailing you lies in a heap on the ground. + <<elseif $PC.career == "slaver" || $PC.warfare >= 45>> + The moment you notice an arm coming around from behind you does your training kick in. You quickly disarm the assailant and knock them to the floor before placing them in a chokehold. Once they are subdued, you stand back to decide what to do next. + <<elseif $PC.career == "gang">> + The moment you hear the sound of the knife unsheathe your reflexes take over. With a single stab, your own shiv is buried in his chest, incapacitating him. + <<else>> + The moment you feel someone grab your arm you your instincts kick in. You quickly break free from your assailant's grip, spin around, and punch him square in the face. It's a lucky strike; you manage to knock him unconscious in one hit. + <</if>> <<set $raped = 0>> <<else>> You stifle a scream when you feel your arm grabbed and the knife pressed to your throat, knowing that it will only end badly for you in this place. @@ -115,29 +140,6 @@ It would be prudent to up security in your arcology. That or take a guard along <<else>> -<<set $activeSlaveOneTimeMinAge = 16>> -<<set $oneTimeDisableDisability = 1>> -<<if $arcologies[0].FSSupremacistLawME == 1>> - <<set $fixedRace = $arcologies[0].FSSupremacistRace>> -<<elseif $arcologies[0].FSSubjugationistLawME == 1>> - <<set _races = setup.filterRacesLowercase.filter(race => race !== $arcologies[0].FSSubjugationistRace)>> - <<set $fixedRace = _races.random()>> -<</if>> -<<include "Generate XY Slave">> -<<set $activeSlave.origin = "You sentenced her to enslavement for the attempted rape of a free woman.">> -<<set $activeSlave.devotion = -100>> -<<set $activeSlave.trust = -100>> -<<set $activeSlave.health = random(-50,-20)>> -<<set $activeSlave.anus = 0>> -<<set $activeSlave.dick = 6>> -<<set $activeSlave.balls = 5>> -<<set $activeSlave.boobs = 0>> -<<set $activeSlave.waist = 50>> -<<set $activeSlave.skill.oral = 0>> -<<set $activeSlave.skill.anal = 0>> -<<set $activeSlave.behavioralFlaw = "arrogant">> -<<set $activeSlave.sexualFlaw = "judgemental">> - <br><br> Now the only question is what to do with the would-be rapist. You could toss them out of the arcology, but it might be more fun to turn the tables on them. diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw index b63f2b979b304e72b007882bde361518a21f9e6c..584f989697060e7a9c1d7502063007528ee8d29b 100644 --- a/src/uncategorized/RESS.tw +++ b/src/uncategorized/RESS.tw @@ -201,31 +201,29 @@ $He was mindbroken, but seems to have snapped out of it due to a deep love of yo <<set $mutinery = 1>> Finishing your work, you lean back for a break well deserved break. Your peace is quickly disturbed by several loud smashes from down the penthouse hall. As you get up from your desk, you hear somebody running down the hallway, and before you know it, <<EventNameLink>> is inside. $He is looking quite treacherous and <<if $activeSlave.skill.combat > 0>>relatively confident<<else>>somewhat unsure<</if>>. $He quickly reaches in to grab you, -<<if ($PC.career == "gang")>> - <<if ($personalArms != 0)>> - but when you point your handgun towards $him, $he stutters back with $his hands pointing upwards. - <<else>> - but you just have to reach for your trusty handgun to make the slave step back in fear. - <</if>> - <<set $mutinery = 0>> -<<elseif ($PC.career == "mercenary")>> - <<if ($personalArms != 0)>> - but you quickly draw the weapon you always keep close at hand, forcing the slave to put $his hands on the back of $his head. - <<else>> - but you quickly grab $his arm, pull it towards you and lock it in $his back, pushing $him over the desk. +<<if overpowerCheck($activeSlave, $PC) >= random(1,100)>> + <<if ($PC.career == "gang")>> + <<if ($personalArms != 0)>> + but when you point your handgun towards $him, $he stutters back with $his hands pointing upwards. + <<else>> + but you just have to reach for your trusty handgun to make the slave step back in fear. + <</if>> + <<elseif ($PC.career == "mercenary")>> + <<if ($personalArms != 0)>> + but you quickly draw the weapon you always keep close at hand, forcing the slave to put $his hands on the back of $his head. + <<else>> + but you quickly grab $his arm, pull it towards you and lock it in $his back, pushing $him over the desk. + <</if>> + <<elseif ($PC.career == "escort")>> + but you simply give $him a kick to the groin; $he wouldn't be the first person to try this shit on you. + <<elseif ($PC.career == "slaver") || $PC.slaving >= 20>> + but you simply give $him a kick to the groin, a little trick you remember from your early memories on how to deal with rebellious slaves. + <<elseif ($PC.warfare >= 20)>> + but you have no problem grabbing $him and pushing $him to the ground, grabbing both $his arms to make sure $he doesn't try to step up. + <<elseif $arcologies[0].FSPhysicalIdealist != "unset">> + but you are far stronger, easily lifting $him into the air and slamming $him back to the ground. <</if>> <<set $mutinery = 0>> -<<elseif ($PC.career == "escort")>> - but you simply give $him a kick to the groin; $he wouldn't be the first person to try this shit on you. -<<elseif ($PC.career == "slaver") || $PC.slaving >= 20>> - but you simply give $him a kick to the groin, a little trick you remember from your early memories on how to deal with rebellious slaves. - <<set $mutinery = 0>> -<<elseif ($PC.warfare >= 20)>> - but you have no problem grabbing $him and pushing $him to the ground, grabbing both $his arms to make sure $he doesn't try to step up. - <<set $mutinery = 0>> -<<elseif $arcologies[0].FSPhysicalIdealist != "unset">> - but you are far stronger, easily lifting $him into the air and slamming $him back to the ground. - <<set $mutinery = 0>> <<else>> and despite your attempts at fighting $him off, $he manages to get a hold on your body. <</if>> @@ -5328,8 +5326,8 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<link "Push $him off of you">> <<EventNameDelink $activeSlave>> <<replace "#result">> - <<if $arcologies[0].FSPhysicalIdealist != "unset">> - You struggle underneath $his grip and manage to wriggle your arms free. You grab the amorous bull and effortlessly flip $him off of you. $He might be strong, but you are a chiseled goddess. You <<if $PC.dick == 0>>grab your biggest strap-on<<else>>stroke your growing erection<</if>> as $he struggles to right $himself, catching $his hips as $he tries to escape. You show no mercy as you force yourself into $his <<if $activeSlave.anus == 0>>virgin<</if>> ass and viciously fuck $him like $he intended to do to you. You savor the sight of your every thrust against $his prostate forcing spurts of precum out $his gigantic, throbbing erection. You pick up the pace as $he climaxes, soaking the sheets beneath $him; $he's not getting out of this until you are satisfied. By the end of things, the master suite reeks of fresh cum and $activeSlave.slaveName's twitching body is the center piece of $his semen puddle. The sheets will definitely need a changing, you note, as $his semi-erect cock twitches and a thick rope of jism sprays forth. + <<if overpowerCheck($activeSlave, $PC) >= random(1,100)>> + You struggle underneath $his grip and manage to wriggle your arms free. You grab the amorous bull and effortlessly flip $him off of you. $He might be strong, but you are <<if $arcologies[0].FSPhysicalIdealist != "unset">>a chiseled god<<if $PC.title == 0>>dess<</if>><<else>>far stronger<</if>>. You <<if $PC.dick == 0>>grab your biggest strap-on<<else>>stroke your growing erection<</if>> as $he struggles to right $himself, catching $his hips as $he tries to escape. You show no mercy as you force yourself into $his <<if $activeSlave.anus == 0>>virgin<</if>> ass and viciously fuck $him like $he intended to do to you. You savor the sight of your every thrust against $his prostate forcing spurts of precum out $his gigantic, throbbing erection. You pick up the pace as $he climaxes, soaking the sheets beneath $him; $he's not getting out of this until you are satisfied. By the end of things, the master suite reeks of fresh cum and $activeSlave.slaveName's twitching body is the center piece of $his semen puddle. The sheets will definitely need a changing, you note, as $his semi-erect cock twitches and a thick rope of jism sprays forth. <<= AnalVCheck(5)>> <<else>> You struggle underneath $his grip and manage to wriggle your arms free. You push at the amorous bull and attempt to lift the heavy $girl off you. $activeSlave.slaveName takes this poorly and rams $his gigantic dick straight into your vagina and through your cervix. You pass out from the pain. @@ -5339,7 +5337,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<set $activeSlave.counter.penetrative += 4, $penetrativeTotal += 4>> <</if>> <</replace>> -<</link>><<if ($activeSlave.anus == 0) && $arcologies[0].FSPhysicalIdealist != "unset">> //This option will take anal virginity//<</if>> +<</link>><<if ($activeSlave.anus == 0)>> //This option will take anal virginity//<</if>> <br><<link "Wait for a chance to escape">> <<EventNameDelink $activeSlave>> <<replace "#result">> @@ -5410,7 +5408,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He <<replace "#result">> <<if ($activeSlave.diet == "fattening" || $activeSlave.dietMilk > 0) && $activeSlave.intelligence+$activeSlave.intelligenceImplant > 15>> <<if canTalk($activeSlave)>> - "<<S>>o the diet i<<s>> working well, <<Master>>? That'<<s>> good, I <<s>>uppo<<s>>e. I'm ju<<s>>t a bit <<sh>>ocked at how hone<<s>>t you were, people u<<s>>ually try to dodge that que<<s>>tion or outright lie." + "<<S>>o the diet i<<s>> working well, <<Master>>? That'<<s>> good, I <<s>>uppo<<s>>e. I'm ju<<s>>t a bit <<sh>>ocked at how hone<<s>>t you were; people u<<s>>ually try to dodge that que<<s>>tion or outright lie." <<else>> $He smiles before explaining $he knows you want $him plumper and that $he accepts it, but is surprised by your honesty to such a question. <</if>> @@ -13613,7 +13611,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address <<if $activeSlave.physicalAge > 30>> MILF. <<elseif $activeSlave.physicalAge > 17>> - slavegirl. + slave<<= $girl>>. <<elseif $activeSlave.physicalAge > 12>> teenager. <<else>> diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw index 107b728f9f873af7d979d42d5aa12fb8e0afb02a..32419af2e4cdd5afed0c21d436198237a3e303ed 100644 --- a/src/uncategorized/costsBudget.tw +++ b/src/uncategorized/costsBudget.tw @@ -306,7 +306,7 @@ for (var i = 0; i < State.variables.lastWeeksCashIncome.length; i++){ <<print budgetLine("mercenaries", "Security: <<if $barracks>>[[$mercenariesTitle|Barracks][$nextButton = \"Back to Budget\", $nextLink = \"Costs Budget\"]] <<else>>Mercenaries<br>//@@.red;Cost increased by the lack of an armory to house them.@@//<</if>> - <<if ($PC.warfare >= 100) || ($PC.career == \"arcology owner\")>><br>//Cost reduced by your @@.springgreen;mercenary contacts.@@//<</if>> + <<if ($PC.warfare >= 100) || ($PC.career == "arcology owner")>><br>//Cost reduced by your @@.springgreen;mercenary contacts.@@//<</if>> ")>> <<print budgetLine("securityExpansion", "Security expansion")>>