diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js index cd67c3ba8ea7ed09a6af49d0e1a6dfba5f404bb9..c48fd73fcf03afa07776f075d359876360d0e56e 100644 --- a/js/003-data/gameVariableData.js +++ b/js/003-data/gameVariableData.js @@ -1163,7 +1163,10 @@ App.Data.resetOnNGPlus = { cumTotal: 0, foodTotal: 0, birthsTotal: 0, + abortionsTotal: 0, + miscarriagesTotal: 0, pitKillsTotal: 0, + pitFightsTotal: 0, collaboration: 0, traitor: 0, diff --git a/player variables documentation - Pregmod.txt b/player variables documentation - Pregmod.txt index 3fa9a587f2fdb8fcbdeb2d556f8b196d20732380..3536d47f5d3ddd3f79150c2642c1feb79d2ab0e2 100644 --- a/player variables documentation - Pregmod.txt +++ b/player variables documentation - Pregmod.txt @@ -433,6 +433,16 @@ counter: how many children you've had accepts int + abortions: + + number of abortions you've had + accepts int + + miscarriages: + + number of miscarriage you've had + accepts int + birthElite: how many children you've carried for the SE diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index abd14f0b624e22222cdbf216300d68e159629f5c..eabbe801fc77140bd94c81fb153d3a2ad0c7de5f 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -3238,6 +3238,16 @@ counter.birthsTotal: How many known times the slave has given birth. accepts int +counter.abortions: + +number of abortions as your slave +accepts int + +counter.miscarriages: + +number of miscarriage as your slave +accepts int + counter.oral: oral sex count @@ -3273,6 +3283,16 @@ counter.pitKills: number of slaves killed in pit fights accepts int +counter.pitWins: + +number of pit fights won +accepts int + +counter.pitLosses: + +number of pit fights lost +accepts int + counter.slavesFathered: How many slaves she has sired under your ownership. diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index b79ddeac5bf44aa395948d524c2909b831150389..29e758ebb74fc57968a4e1450ef65dd189769808 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.5.0", - release: 1069, + release: 1070, }; /* Use release as save version */ diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index 94396d71f5d5ebfbce997f884c6976db2bd4a3ed..c7d950bdbd1cd8ab3e7df0dee0dae4f5a5f2b1a6 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1004,10 +1004,14 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { slave.counter.mammary = Math.max(+slave.counter.mammary, 0) || 0; slave.counter.penetrative = Math.max(+slave.counter.penetrative, 0) || 0; slave.counter.pitKills = Math.max(+slave.counter.pitKills, 0) || 0; + slave.counter.pitWins = Math.max(+slave.counter.pitWins, 0) || 0; + slave.counter.pitLosses = Math.max(+slave.counter.pitLosses, 0) || 0; slave.counter.milk = Math.max(+slave.counter.milk, 0) || 0; slave.counter.cum = Math.max(+slave.counter.cum, 0) || 0; slave.counter.births = Math.max(+slave.counter.births, 0) || 0; slave.counter.birthsTotal = Math.max(+slave.counter.birthsTotal, 0) || slave.counter.births; + slave.counter.abortions = Math.max(+slave.counter.abortions, 0) || 0; + slave.counter.miscarriages = Math.max(+slave.counter.miscarriages, 0) || 0; slave.counter.laborCount = Math.max(+slave.counter.laborCount, 0) || slave.counter.birthsTotal; slave.counter.slavesFathered = Math.max(+slave.counter.slavesFathered, 0) || 0; slave.counter.PCChildrenFathered = Math.max(+slave.counter.PCChildrenFathered, 0) || 0; diff --git a/src/endWeek/saClothes.js b/src/endWeek/saClothes.js index 4139ed3b0f1bfd280a92327d15392d1c823dfdad..f0d53042d2426cb85e3f572df28bf9928669223a 100644 --- a/src/endWeek/saClothes.js +++ b/src/endWeek/saClothes.js @@ -633,6 +633,8 @@ App.SlaveAssignment.clothes = (function() { slave.preg = 0; } TerminatePregnancy(slave); + slave.counter.miscarriages++; + V.miscarriagesTotal++; if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") { if (slave.devotion < -50) { r.push(`${He} is <span class="mediumorchid">filled with violent, consuming hatred</span> and <span class="gold">fear.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it and views you as its killer.`); @@ -1057,6 +1059,8 @@ App.SlaveAssignment.clothes = (function() { slave.preg = 0; } TerminatePregnancy(slave); + slave.counter.miscarriages++; + V.miscarriagesTotal++; r.push(`${He} is`); if (slave.devotion < -50) { r.push(`<span class="mediumorchid">filled with violent, consuming hatred</span> and <span class="gold">fear.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it and views you as its killer.`); diff --git a/src/endWeek/saDrugs.js b/src/endWeek/saDrugs.js index 57f984b3f9ad6429e028a8a74a37a5ee5148edec..4dd9ee17e127ed2d2b6af0f3305f04d55150d4c3 100644 --- a/src/endWeek/saDrugs.js +++ b/src/endWeek/saDrugs.js @@ -1588,6 +1588,8 @@ App.SlaveAssignment.drugs = (function() { slave.preg = 0; } TerminatePregnancy(slave); + slave.counter.miscarriages++; + V.miscarriagesTotal++; if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) { r += ` ${He} is`; if (slave.devotion < -50) { diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index e0de72364001cb3464adfac424a4536766258758..59edd1eda8d33003f784bf069605d71d1fae4bd3 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -1079,6 +1079,8 @@ globalThis.DefaultRules = (function() { } if (WL === 0) { TerminatePregnancy(slave); + slave.counter.abortions++; + V.abortionsTotal++; } } return res; @@ -1137,6 +1139,8 @@ globalThis.DefaultRules = (function() { V.reservedChildren = FetusGlobalReserveCount("incubator"); V.reservedChildrenNursery = FetusGlobalReserveCount("nursery"); TerminatePregnancy(slave); + slave.counter.abortions++; + V.abortionsTotal++; } else if (ar === "male") { if (conditionalTermination(slave, fetus => fetus.genetics.gender === "XY")) { r += `<br>${slave.slaveName}'s male fetuses have been terminated.`; diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 6dac7d2d3868405278ef5dbf1095aa4115ccab17..586b3d545fee312bd68379fe71c8a7ea738ce25e 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -260,6 +260,10 @@ App.Entity.SlaveActionsCountersState = class { this.births = 0; /** How many known times the slave has given birth. */ this.birthsTotal = 0; + /** number of abortions as your slave */ + this.abortions = 0; + /** number of miscarriages as your slave */ + this.miscarriages = 0; this.laborCount = 0; /** oral sex count */ this.oral = 0; @@ -275,6 +279,10 @@ App.Entity.SlaveActionsCountersState = class { this.publicUse = 0; /** number of slaves killed in pit fights*/ this.pitKills = 0; + /** number of pit fights won */ + this.pitWins = 0; + /** number of pit fights lost */ + this.pitLosses = 0; /** How many slaves she has sired under your ownership. */ this.slavesFathered = 0; /** How many children she has fucked into you that you later birthed. */ diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js index b880d2d4ee5b41a0d5af05c249c98c77f94ca153..d16edf5e01fe60817d3fe0225560d4856da1a986 100644 --- a/src/js/descriptionWidgets.js +++ b/src/js/descriptionWidgets.js @@ -1705,6 +1705,14 @@ App.Desc.sexualHistory = function(slave) { } r += `within the walls of ${V.arcologies[0].name}. `; } + + if (slave.counter.abortions > 0) { + r += `${He} has had a total of ${numberWithPluralOne(slave.counter.abortions, "abortion")}. `; + } + + if (slave.counter.miscarriages > 0) { + r += `${He} has had a total of ${numberWithPluralOne(slave.counter.miscarriages, "miscarriage")}. `; + } if (slave.counter.slavesKnockedUp > 0) { r += `${He}'s knocked up ${numberWithPluralOne(slave.counter.slavesKnockedUp, "other slave girl")} `; diff --git a/src/npc/interaction/passage/abort.tw b/src/npc/interaction/passage/abort.tw index 408f3dedcc939ccb2f33f6f06a633f96c4525c4b..599532ce574a4b864b3a70a5362161871c9753f0 100644 --- a/src/npc/interaction/passage/abort.tw +++ b/src/npc/interaction/passage/abort.tw @@ -48,3 +48,5 @@ The remote surgery makes aborting a pregnancy quick and efficient. <<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>> <<run TerminatePregnancy(getSlave($AS))>> +<<set getSlave($AS).counter.abortions++>> +<<set $abortionsTotal++>> diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js index c555ba67c2a3f734de1a5c7fd85ea7735c37aaef..f3274d7f283508f575a871711d91309f122e1cc6 100644 --- a/src/player/js/PlayerState.js +++ b/src/player/js/PlayerState.js @@ -111,6 +111,10 @@ App.Entity.PlayerActionsCountersState = class { this.cum = 0; /** number of births as your slave */ this.birthsTotal = 0; + /** number of abortions as your slave */ + this.abortions = 0; + /** number of miscarriages as your slave */ + this.miscarriages = 0; this.laborCount = 0; /** How many slaves you have sired. */ this.slavesFathered = 0; diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw index 521dd15035e23a955ccbe4e0e3cc5a8cfd821399..c00ff1bb8c0f3792cef9d13973b36b46efe4149a 100644 --- a/src/uncategorized/lawCompliance.tw +++ b/src/uncategorized/lawCompliance.tw @@ -105,6 +105,8 @@ <<if $arcologies[0].FSRestartSMR == 1>> <<if $activeSlave.balls > 0 || $activeSlave.ovaries > 0>> <<run TerminatePregnancy($activeSlave)>> + <<set $activeSlave.counter.abortions++>> + <<set $abortionsTotal++>> <<set $activeSlave.balls = 0>> <<set $activeSlave.ovaries = 0>> As a member of the lowest class,<<if $activeSlave.preg > 0>> $his pregnancy is immediately terminated, and<</if>> $he is promptly sterilized to prevent $him from passing on $his useless genes. @@ -488,6 +490,8 @@ to prevent $him from passing on $his inferior genes, @@.mediumorchid;infuriating@@ and @@.gold;terrifying@@ $him. Furthermore, $his <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him. <<run TerminatePregnancy($activeSlave)>> + <<set $activeSlave.counter.abortions++>> + <<set $abortionsTotal++>> <<set $activeSlave.devotion -= 30>> <<set $activeSlave.trust -= 30>> <<elseif $activeSlave.balls > 0>> @@ -505,6 +509,8 @@ <<elseif (isFertile($activeSlave) || $activeSlave.preg > 0)>> $His <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him. <<run TerminatePregnancy($activeSlave)>> + <<set $activeSlave.counter.abortions++>> + <<set $abortionsTotal++>> <<set $activeSlave.devotion -= 10>> <<set $activeSlave.trust -= 10>> <<else>> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 82cb1109e2488a930f43cb0df1d06e543e66a0ea..bac49ca9540a416b652e8e95f992f4a8251cc607 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1725,6 +1725,10 @@ $He is <</if>> <</if>> +<<if ($activeSlave.counter.pitWins + $activeSlave.counter.pitLosses) > 0>> + $He has participated in <<print num($activeSlave.counter.pitWins + $activeSlave.counter.pitLosses)>> pit fights, with $activeSlave.counter.pitWins wins and $activeSlave.counter.pitLosses losses. +<</if>> + <<if $activeSlave.counter.pitKills > 0>> $activeSlave.counter.pitKills slaves have died by $his hand in pit fights. <</if>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index 5f423039632b0614ae05d8a10dc9d6126feda593..d8fd49b3dedfe970039a2f64c92251440e0ae294 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -489,14 +489,29 @@ <p> Your slaves have participated in approximately <<print num($oralTotal+$vaginalTotal+$analTotal)>> sexual encounters: <<print num($oralTotal)>> primarily oral, <<print num($vaginalTotal)>> vanilla, <<print num($mammaryTotal)>> mammary, <<print num($analTotal)>> anal, and <<print num($penetrativeTotal)>> with the slave penetrating another. They have produced about <<print num($milkTotal)>> liters of marketable milk, <<if $seeDicks != 0>>about <<print num($cumTotal)>> deciliters of marketable cum, <</if>>and have given birth <<print num($birthsTotal)>> times. - <<if $pitKillsTotal > 0>> - $pitKillsTotal slaves have died in your fighting pit. + <<if $abortionsTotal > 0 && $miscarriagesTotal > 0>> + They have had a total of <<print num($abortionsTotal)>> abortions and <<print num($miscarriagesTotal)>> miscarriages. + <<elseif $abortionsTotal > 0>> + They have had a total of <<print num($abortionsTotal)>> abortions. + <<elseif $miscarriagesTotal > 0>> + They have had a total of <<print num($miscarriagesTotal)>> miscarriages. <</if>> + <<if $fuckdollsSold > 0>> $fuckdollsSold mindbroken arcade slaves have been converted into Fuckdolls and sold. <</if>> </p> +<<if $pitFightsTotal > 0 && $pitKillsTotal > 0>> + <p> + $arcologies[0].name has hosted <<print num ($pitFightsTotal)>> pit fights, and <<print num ($pitKillsTotal)>> slaves have died in your pit. + </p> +<<elseif $pitFightsTotal > 0>> + <p> + $arcologies[0].name has hosted <<print num ($pitFightsTotal)>> pit fights. + </p> +<</if>> + <<if $secExpEnabled == 1 && $SecExp.settings.battle.enabled == 1>> <p> <<if $SF.Toggle === 0||$SF.Active === 0>> diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw index 5a4d78de3f99c4360ed3eec653019ab2fe52eb53..1e4aaaf8e54290366c2ef77e0855ccd332ddae0e 100644 --- a/src/uncategorized/newSlaveIntro.tw +++ b/src/uncategorized/newSlaveIntro.tw @@ -711,6 +711,8 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav <<set $activeSlave.devotion += 4>> <<set $activeSlave.trust += 3>> <<run TerminatePregnancy($activeSlave)>> + <<set $activeSlave.counter.abortions++>> + <<set $abortionsTotal++>> <</link>> <br> <<case "$He submitted to enslavement for a better chance at survival than $he had as a migrant.">> @@ -1356,6 +1358,8 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav <<set TerminatePregnancy($activeSlave)>> <<set $activeSlave.preg = -3>> <<set $activeSlave.ovaries = 0>> + <<set $activeSlave.counter.abortions++>> + <<set $abortionsTotal++>> <<run surgeryDamage($activeSlave, 10)>> <</link>> <</if>> @@ -1448,7 +1452,7 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav <<= FutureSocieties.Change("Eugenics", 3)>> <</if>> <</replace>> - <<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, TerminatePregnancy($activeSlave), $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>> + <<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, TerminatePregnancy($activeSlave), $activeSlave.counter.abortions++, $abortionsTotal++, $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>> <<run surgeryDamage($activeSlave, 10)>> <<set $activeSlave.trust = Math.clamp($activeSlave.trust-100, -100, 100)>> <</link>> diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw index 3ec0c7850056f06a79422e6b85d56e39555e0e86..ce99360e93a19e189938fea75cfc55bac0ca5500 100644 --- a/src/uncategorized/pePitFight.tw +++ b/src/uncategorized/pePitFight.tw @@ -193,6 +193,7 @@ The umpire announces gravely that the fight is to the death and rings a bell. $activeSlave.slaveName senses that $he is greatly superior, and decides to make a quick end before $his opponent can try something foolish. $He feints high and stabs low; $his enemy just manages to parry the low stab, but is so much weaker that $activeSlave.slaveName simply overpowers _himU, so that _heU falls onto _hisU back with the force of the clash. $activeSlave.slaveName takes one step forward and runs $his sword through the prostrate slave's heart. This victory has @@.green;won you some renown@@ and @@.yellowgreen;a sum of money@@ from each of the spectators. <<run repX(500, "pit", $activeSlave)>> <<run cashX(5000, "pit", $activeSlave)>> + <<set $activeSlave.counter.pitWins += 1>> <<set $activeSlave.counter.pitKills += 1>> <<set $pitKillsTotal += 1>> <<elseif _deadliness > (_opponent)>> @@ -200,6 +201,7 @@ The umpire announces gravely that the fight is to the death and rings a bell. <<run repX(500, "pit", $activeSlave)>> <<run cashX(5000, "pit", $activeSlave)>> <<set $activeSlave.health.condition = -50>> + <<set $activeSlave.counter.pitWins += 1>> <<set $activeSlave.counter.pitKills += 1>> <<set $pitKillsTotal += 1>> <<elseif _deadliness > (_opponent-1)>> @@ -213,3 +215,5 @@ The umpire announces gravely that the fight is to the death and rings a bell. <<if $activeSlave.health.health < -90>> <<= removeActiveSlave() >> <</if>> + +<<set $pitFightsTotal++>> \ No newline at end of file diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw index 3fe8dfad4dc104f5565bae2a8b01f05225ec2483..0bcfe68a2dab80763b62519d42ee48de3170cdf3 100644 --- a/src/uncategorized/saLiveWithHG.tw +++ b/src/uncategorized/saLiveWithHG.tw @@ -372,6 +372,8 @@ <<else>> $HeadGirl.slaveName promptly aborts the child growing in $slaves[$i].slaveName since _he2 prefers _his2 <<= $girl>>s not harboring someone else's child or loaded down with _his2 own unwanted spawn. <<run TerminatePregnancy($slaves[$i])>> + <<set $slaves[$i].counter.abortions++>> + <<set $abortionsTotal++>> <</if>> <</if>> <</if>> diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index c85b4107c7534a3ba1e69e1336633dcb9bcea6f5..33af59b1cc4516c5495954a7c4930042b8bb452b 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -9047,6 +9047,8 @@ <<if $slaves[$i].pregSource != -1 && $slaves[$i].pregSource != -6>> $slaves[$i].slaveName's weekly health checkup revealed $he is pregnant with an unacceptable child. @@.red;Its life has been terminated, you have been fined <<print cashFormat(100000)>>, and your rep among the Elite has been severely damaged.@@ <<run TerminatePregnancy($slaves[$i])>> + <<set $slaves[$i].counter.abortions++>> + <<set $abortionsTotal++>> <<run cashX(-100000, "fines", $slaves[$i])>> <<set $failedElite += 150>> <<if $slaves[$i].abortionTat > -1>> @@ -9178,6 +9180,8 @@ <</if>> <</if>> <<set TerminatePregnancy($slaves[$i])>> + <<set $slaves[$i].counter.abortions++>> + <<set $abortionsTotal++>> <<if $slaves[$i].abortionTat > -1>> <<set $slaves[$i].abortionTat++>> The temporary tattoo of a child has been replaced with $his <<= ordinalSuffix($slaves[$i].abortionTat)>> crossed out infant. diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw index 51ce4fefb42b17e373f55bbcbb5567da4eac21de..6275d330b9b9ac084a85d082a00cd62e7261fa96 100644 --- a/src/uncategorized/seLethalPit.tw +++ b/src/uncategorized/seLethalPit.tw @@ -807,6 +807,7 @@ In any case, <<if $pitAnimal == 0>>both of the slaves have<<else>>the slave and <</if>> <<set _winner.counter.pitKills += 1>> + <<set _winner.counter.pitWins += 1>> <<set $pitKillsTotal += 1>> <<set $slaves[$slaveIndices[_winner.ID]] = _winner>> @@ -821,3 +822,5 @@ In any case, <<if $pitAnimal == 0>>both of the slaves have<<else>>the slave and <<set $activeSlave = getSlave(_loser.ID)>> <<= removeActiveSlave() >> <</if>> + +<<set $pitFightsTotal++>> \ No newline at end of file diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw index 713d53c0879d85c69ec5411811eb66aebe8b3438..8ec6747a67b44dfbc212f91bdf00c41b0e541510 100644 --- a/src/uncategorized/seNonlethalPit.tw +++ b/src/uncategorized/seNonlethalPit.tw @@ -1031,3 +1031,7 @@ <<set $fighterIDs.push(_fighterOne.ID)>> <</if>> <</if>> + +<<set _winner.counter.pitWins += 1>> +<<set _loser.counter.pitLosses += 1>> +<<set $pitFightsTotal++>> \ No newline at end of file