diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index b6d2f7d04d96dad84685d95ef6a49eab2bf6a3bc..537b1c317072575c71417f758c036552d74b2443 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -3698,6 +3698,12 @@ Can the slave recruit. Non-random slaves should be left off. 0 - no 1 - yes +PCExclude: + +Is the PC permitted to fuck this slave pregnant. +0 - no +1 - yes + HGExclude: Is the Head Girl permitted to fuck this slave pregnant. diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js index 0b8dee56f7365bf3b9d9e30a7400ade70a4f33bd..823b5d93e71bf5dd1aee8d75ca98478747557db1 100644 --- a/src/002-config/fc-version.js +++ b/src/002-config/fc-version.js @@ -2,5 +2,5 @@ App.Version = { base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed. pmod: "3.6.2", commitHash: null, - release: 1080 + release: 1081 }; diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js index 0d0904d701c4157c1a62fdb908e5ed0adc4e1f60..d85fc1d1ebc335ce27eff1e17054486d7b182058 100644 --- a/src/data/backwardsCompatibility/datatypeCleanup.js +++ b/src/data/backwardsCompatibility/datatypeCleanup.js @@ -1044,6 +1044,7 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { slave.useRulesAssistant = 1; } slave.choosesOwnAssignment = Math.clamp(+slave.choosesOwnAssignment, 0) || 0; + slave.PCExclude = Math.clamp(+slave.PCExclude, 0, 1) || 0; slave.HGExclude = Math.clamp(+slave.HGExclude, 0, 1) || 0; slave.StudExclude = Math.clamp(+slave.StudExclude, 0, 1) || 0; slave.choosesOwnChastity = Math.clamp(+slave.choosesOwnChastity, 0, 1) || 0; @@ -1783,7 +1784,7 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() { "counter", "custom", "porn", "prestige", "prestigeDesc", "subTarget", "relationship", "relationshipTarget", "rivalry", "rivalryTarget", - "weekAcquired", "HGExclude", "StudExclude", + "weekAcquired", "PCExclude", "HGExclude", "StudExclude", "daughters", "sisters", "origin", "canRecruit", "choosesOwnAssignment", "assignment", diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js index 36654d15032c2bef163c04c03ec4ba46980bb97c..4abb23938934a18d4f34c620627b15fab148d6b0 100644 --- a/src/interaction/slaveInteract.js +++ b/src/interaction/slaveInteract.js @@ -2032,7 +2032,31 @@ App.UI.SlaveInteract.rules = function(slave) { } = getPronouns(slave); if (V.seePreg !== 0) { p = document.createElement('p'); - if (V.universalRulesImpregnation === "HG") { + if (V.universalRulesImpregnation === "PC") { + if (slave.PCExclude === 0) { + p.append(`Will be bred by you when fertile. `); + p.append( + App.UI.DOM.link( + `Exempt ${him}`, + () => { + slave.PCExclude = 1; + App.UI.SlaveInteract.rules(slave); + } + ) + ) + } else { + p.append(`Will not be bred by you when fertile. `); + p.append( + App.UI.DOM.link( + `Include ${him}`, + () => { + slave.PCExclude = 0; + App.UI.SlaveInteract.rules(slave); + } + ) + ) + } + } else if (V.universalRulesImpregnation === "HG") { if (slave.HGExclude === 0) { p.append(`Will be bred by the Head Girl when fertile. `); p.append( @@ -2043,7 +2067,7 @@ App.UI.SlaveInteract.rules = function(slave) { App.UI.SlaveInteract.rules(slave); } ) - ); + ) } else { p.append(`Will not be bred by the Head Girl when fertile. `); p.append( @@ -2054,7 +2078,7 @@ App.UI.SlaveInteract.rules = function(slave) { App.UI.SlaveInteract.rules(slave); } ) - ); + ) } } else if (V.universalRulesImpregnation === "Stud") { if (slave.StudExclude === 0) { @@ -2067,7 +2091,7 @@ App.UI.SlaveInteract.rules = function(slave) { App.UI.SlaveInteract.rules(slave); } ) - ); + ) } else { p.append(`Will not be bred by your Stud when fertile. `); p.append( @@ -2078,7 +2102,7 @@ App.UI.SlaveInteract.rules = function(slave) { App.UI.SlaveInteract.rules(slave); } ) - ); + ) } } frag.append(p); diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 7a8469dc6fe4b89ee1e84105d53958106b3995ab..c9fc7b51bff3cf4dfb51d387d46e67910c4a3f8f 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -2326,6 +2326,12 @@ App.Entity.SlaveState = class SlaveState { * * 1: yes * * 0: no */ this.breedingMark = 0; + /** Is the PC permitted to fuck this slave pregnant. + * MB Cattle Ranch bulls will ignore this. + * + * * 0: no + * * 1: yes */ + this.PCExclude = 0; /** Is the Head Girl permitted to fuck this slave pregnant. * * * 0: no diff --git a/src/npc/children/ChildState.js b/src/npc/children/ChildState.js index 4adb08d4e2c425c7988eda3e9315ba5bc86acd24..5a07785d9f69cca0de491c60bd1a6c8f20fdead1 100644 --- a/src/npc/children/ChildState.js +++ b/src/npc/children/ChildState.js @@ -1767,6 +1767,10 @@ App.Facilities.Nursery.ChildState = class ChildState { * * 1: yes; 0: no */ this.breedingMark = 0; + /** Is the PC permitted to fuck this slave pregnant. + * + * 0: no; 1: yes */ + this.PCExclude = 0; /** Is the Head Girl permitted to fuck this slave pregnant. * * 0: no; 1: yes */ diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw index e6312eb734162163dd553367be9dc3937d3be5c9..3aae7a82cbe6b94b5673eed574dad05fe8f5520c 100644 --- a/src/uncategorized/saLongTermEffects.tw +++ b/src/uncategorized/saLongTermEffects.tw @@ -4466,7 +4466,7 @@ <<set _conceptionSeed = random(1,100)>> <<set _studIgnoresRules = (_Stud && $universalRulesImpregnation == "Stud" && _Stud.career == "a breeding bull" && _Stud.fetish == "mindbroken" && canMove(_Stud)) ? 1 : 0>> - <<if ($universalRulesImpregnation == "PC") && canImpreg($slaves[$i], $PC)>> + <<if $universalRulesImpregnation == "PC" && canImpreg($slaves[$i], $PC) && $slaves[$i].PCExclude != 1>> $slaves[$i].slaveName is ripe for breeding, so you ejaculate inside $him often. When you bore of $his fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>, you keep $him around as you fuck other slaves so you can pull out of them, shove your cock into $him, and fill $him with your seed anyway. <<if ($slaves[$i].fuckdoll == 0) && ($slaves[$i].fetish != "mindbroken")>> <<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>