diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw index c80108559c2e7e24ac0e9e8e1fc0717e86fa1841..b1cdc3cfb29e790631efa15610fb3c921614f7f4 100644 --- a/src/gui/Encyclopedia/encyclopedia.tw +++ b/src/gui/Encyclopedia/encyclopedia.tw @@ -929,6 +929,7 @@ __I do not give credit without explicit permission to do so.__ If you have contr ''anon'' for additional bodyguard weapons. ''anon'' for HGExclusion and animal pregnancy work. ''anon'' for putting up with my javascript incompetence. +''anon'' for player family listing. ''Bane70'' optimized huge swaths of code with notable professionalism. ''Circle Tritagonist'' provided several new collars and outfits. ''Qotsafan'' submitted bugfixes. diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 97e7b4a2ebcbbcb9d8222979bc134202626065ec..99e6b324447962da830e0cc793fe46bcd4e75e5f 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -507,7 +507,7 @@ DairyRestraintsSetting($dairyRestraintsSetting) <<set $spaNameCaps = "The Spa">> <<set $incubator = 0>> <<set $incubatorSlaves = 0>> -<<set $incubatorUpgradeSpeed = 0>> +<<set $incubatorUpgradeSpeed = 5>> <<set $incubatorUpgradeWeight = 0>> <<set $incubatorUpgradeMuscles = 0>> <<set $incubatorUpgradeReproduction = 0>> diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index 42daf8e0dde81672c18327a7f1734e942ff159cb..55a040e4935cd783ae13337389b546c7fe5e0086 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -1913,4 +1913,21 @@ window.randomParent = function(slave) { window.randomAvailableParent = function(slave) { return randomRelatedSlave(slave, function(s, index, array) { return isSlaveAvailable(s) && (s.ID == slave.mother || s.ID == slave.father); }); -} \ No newline at end of file +} + +window.totalPlayerRelatives = function(pc) { + var relatives = 0; + if (pc.mother > 0) { + relatives += 1 + } + if (pc.father > 0) { + relatives += 1 + } + if (pc.daughters > 0) { + relatives += pc.daughters + } + if (pc.sisters > 0) { + relatives += pc.sisters + } + return relatives +}; \ No newline at end of file diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw index bbb546e6e53e37ca253afc710801040c3537931f..200bb0b50d1fdc433a4c1fa9f2049fbf0ca4de58 100644 --- a/src/pregmod/incubator.tw +++ b/src/pregmod/incubator.tw @@ -45,21 +45,16 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu //Setting will not be applied to tanks in use.// <br> -<<if $incubatorUpgradeSpeed == 4>> +<<if $incubatorUpgradeSpeed == 52>> It has been upgraded with perfected growth accelerants; children grow at the rate of 1 week to 1 year. - <<set _speed = 12>> -<<elseif $incubatorUpgradeSpeed == 3>> - It has been upgraded with advanced experimental growth accelerants; children grow at the rate of 3 weeks to 1 year. [[Fund speculative research into maximizing growth rate|Incubator][$cash -= Math.trunc(500000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 4]] //Costs ¤<<print Math.trunc(500000*$upgradeMultiplierArcology)>> and will increase upkeep costs// - <<set _speed = 9>> -<<elseif $incubatorUpgradeSpeed == 2>> - It has been upgraded with advanced growth accelerants; children grow at the rate of 6 weeks to 1 year. [[Fund research into increasing growth rate even further|Incubator][$cash -= Math.trunc(75000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 3]] //Costs ¤<<print Math.trunc(75000*$upgradeMultiplierArcology)>> and will increase upkeep costs// - <<set _speed = 6>> -<<elseif $incubatorUpgradeSpeed == 1>> - It has been upgraded with growth accelerants; children grow at the rate of 9 weeks to 1 year. [[Further upgrade the incubators with specialized stem cells to speed growth|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 2]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// - <<set _speed = 6>> -<<else>> - The incubation tanks are basic; children grow at the rate of 12 weeks to 1 year. [[Upgrade the incubators with growth accelerating drugs|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 1]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// - <<set _speed = 1>> +<<elseif $incubatorUpgradeSpeed == 18>> + It has been upgraded with advanced experimental growth accelerants; children grow at the rate of 3 weeks to 1 year. [[Fund speculative research into maximizing growth rate|Incubator][$cash -= Math.trunc(500000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 52]] //Costs ¤<<print Math.trunc(500000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 9>> + It has been upgraded with advanced growth accelerants; children grow at the rate of 6 weeks to 1 year. [[Fund research into increasing growth rate even further|Incubator][$cash -= Math.trunc(75000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 18]] //Costs ¤<<print Math.trunc(75000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 6>> + It has been upgraded with growth accelerants; children grow at the rate of 9 weeks to 1 year. [[Further upgrade the incubators with specialized stem cells to speed growth|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 9]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// +<<elseif $incubatorUpgradeSpeed == 5>> + The incubation tanks are basic; children grow at the rate of 12 weeks to 1 year. [[Upgrade the incubators with growth accelerating drugs|Incubator][$cash -= Math.trunc(30000*$upgradeMultiplierArcology), $incubatorUpgradeSpeed to 6]] //Costs ¤<<print Math.trunc(30000*$upgradeMultiplierArcology)>> and will increase upkeep costs// <</if>> <br> @@ -87,7 +82,7 @@ Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimu <<if $tanks[$i] == 0>> <br><br>Tank #<<print $i + 1>> is currently empty. <<else>> - <br><br>Tank #<<print $i + 1>> is currently accelerating <<print $tanks[$i].slaveName>>'s growth. She will be ready for release in about Math.round($tanks[$i].growth/_speed) weeks. + <br><br>Tank #<<print $i + 1>> is currently accelerating <<print $tanks[$i].slaveName>>'s growth. She will be ready for release in about Math.round($tanks[$i].growth/$incubatorUpgradeSpeed) weeks. <<if $incubatorUpgradeWeight == 1>> <br> <<if $incubatorWeightSetting == 1>> diff --git a/src/pregmod/incubatorReport.tw b/src/pregmod/incubatorReport.tw index 6d46cf2006f938803301c91d501378057b880cb5..b919d75cba3a47d6fd091047980d8968bbe1101c 100644 --- a/src/pregmod/incubatorReport.tw +++ b/src/pregmod/incubatorReport.tw @@ -1,16 +1,101 @@ :: Incubator Report [nobr] ''Incubator Report''<hr style="margin:0"> - <<set $incubatorSlaves to 0>> +/* + <<if $incubatorUpgradeSpeed == 52>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<elseif $incubatorUpgradeSpeed == 5>> + <</if>> +*/ + <<for $i to 0; $i < $tanks.length; $i++>> <<if $tanks[$i] > 0>> <<set $incubatorSlaves += 1>> + <br>Tank #<<print $i + 1>> is currently accelerating <<print $tanks[$i].slaveName>>'s growth. She will be ready for release in about Math.round($tanks[$i].growth/$incubatorUpgradeSpeed) weeks. + <<if $tanks[$i].growth > 0>> + <<set $tanks[$i].growth -= $incubatorUpgradeSpeed>> + <</if>> + <<if $incubatorUpgradeWeight == 1>> + <<if $incubatorWeightSetting == 1>> + <<if $tanks[$i].weight < 100>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight += 70>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight += 40>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight += 20>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight += 10>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight += 5>> + <</if>> + <</if>> + The weight monitoring systems are overloading her intake with colories causing @@color:red;rapid weight gain.@@ + <<elseif $incubatorWeightSetting == 2>> + <<if $tanks[$i].weight > 10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight -= 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight -= 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight -= 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight -= 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight -= 1>> + <</if>> + The weight monitoring systems detect she is overweight and @@color:green;decrease her coloric intake.@@ + <<elseif $tanks[$i].weight < -10>> + <<if $incubatorUpgradeSpeed == 52>> + <<set $tanks[$i].weight += 30>> + <<elseif $incubatorUpgradeSpeed == 18>> + <<set $tanks[$i].weight += 10>> + <<elseif $incubatorUpgradeSpeed == 9>> + <<set $tanks[$i].weight += 5>> + <<elseif $incubatorUpgradeSpeed == 6>> + <<set $tanks[$i].weight += 2>> + <<elseif $incubatorUpgradeSpeed == 5>> + <<set $tanks[$i].weight += 1>> + <</if>> + The weight monitoring systems detect she is underweight and @@color:green;increase her coloric intake.@@ + <<else>> + She is @color:lime;currently a healthy weight;@@ efforts will be made to maintain it. + <</if>> + <<elseif $incubatorWeightSetting == 0>> + <<if $tanks[$i].weight > -100>> + Her developing body quickly sheds its gained weight. + <</if>> + <</if>> + <</if>> + + <<if $incubatorUpgradeMuscles == 1>> + <br> + <<if $incubatorMusclesSetting == 2>> + Her strength levels are purposefully set highter than recommended; excessive muscle gain likely. + <<elseif $incubatorMusclesSetting == 1>> + Her musculature is being carefully managed; she will be released with near normal strength. + <<elseif $incubatorMusclesSetting == 0>> + Strength management systems are offline; she will likely be released extremely weak. + <</if>> + <</if>> + <<if $incubatorUpgradeReproduction == 1>> + <br> + <<if $incubatorReproductionSetting == 2>> + Her hormone levels are purposefully set highter than recommended; over-active reproductive systems likely. + <<elseif $incubatorReproductionSetting == 1>> + Her hormone levels are being carefully managed; she will be released with with fully functional reproductive organs. + <<elseif $incubatorReproductionSetting == 0>> + Reproduction management systems are offline; she will undergo normal puberty. + <</if>> + <</if>> + +<<else>> + <br>Tank #<<print $i + 1>> is currently empty. <</if>> <</for>> -<<if $incubatorSlaves == 0>> - ''$incubatorNameCaps is empty.'' -<</if>> <br><br> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index 56becdd7a4e9724d0657c6bef5326dd8f7654975..747a58d584e3bafd167e8daa4c253f46b215e306 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -76,9 +76,8 @@ On formal occasions, you are announced as $PCTitle. By slaves, however, you pref <</if>> </span> -<br><br> - <<if $PC.degeneracy > 0>> +<br><br> __Rumors__ <br> @@ -96,10 +95,16 @@ __Rumors__ The occasional rumor about you can be heard throughout the arcology. <</if>> -<br><br> +<</if>> + +<<if $familyTesting == 1>> +<<if totalPlayerRelatives($PC) > 0>> + <<PlayerFamily>> +<</if>> <</if>> <<if $PC.vagina == 1>> +<br><br> __Contraceptives and Fertility__ <br> diff --git a/src/pregmod/pregmodWidgets.tw b/src/pregmod/pregmodWidgets.tw index 5e6a50e61baabbb52da7c680ab007c25ca4af5c8..bce9d417c7ac5baf479ecb6a1ab63b46c7f89aae 100644 --- a/src/pregmod/pregmodWidgets.tw +++ b/src/pregmod/pregmodWidgets.tw @@ -1098,11 +1098,11 @@ extremely pale -5 <</if>> <<if $activeSlave.father == -1 && $activeSlave.mother == -1>> - She's @@color:lightgreen;your daughter,@@ you knocked yourself up and gave birth to $object. + $pronounCap's @@color:lightgreen;your child;@@ you knocked yourself up and gave birth to $object. <</if>> <<if $activeSlave.father == -1 && $activeSlave.mother != -1>> - She's @@color:lightgreen;your daughter;@@ you knocked $possessive mother up. + $pronounCap's @@color:lightgreen;your child;@@ you knocked $possessive mother up. <<elseif $activeSlave.father > 0>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID == $activeSlave.father>> @@ -1113,7 +1113,7 @@ extremely pale -5 <</if>> <<if $activeSlave.father != -1 && $activeSlave.mother == -1>> - She's @@color:lightgreen;your daughter;@@ you gave birth to $object. + $pronounCap's @@color:lightgreen;your child;@@ you gave birth to $object. <<elseif $activeSlave.mother > 0>> <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID == $activeSlave.mother>> @@ -1460,7 +1460,7 @@ extremely pale -5 <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.vagina > -1>> <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> - She is @@color:lightgreen;your niece.@@ + $pronounCap is @@color:lightgreen;your niece.@@ <</if>> <</if>> <</if>> @@ -1536,7 +1536,7 @@ extremely pale -5 <<if $slaves[$i].ID != $activeSlave.ID && $activeSlave.dick > 0 && $activeSlave.vagina == -1>> <<if areSisters($slaves[$i], $PC) == 1 || areSisters($slaves[$i], $PC) == 2>> <<if $slaves[$i].ID == $activeSlave.mother || $slaves[$i].ID == $activeSlave.father>> - He is @@color:lightgreen;your nephew.@@ + $pronounCap is @@color:lightgreen;your nephew.@@ <</if>> <</if>> <</if>> @@ -1757,7 +1757,7 @@ extremely pale -5 <</if>> <<set $children = []>> -/*testtest brother - determines how many brothers a slave has +/*testtest brother - determines how many brothers a slave has*/ <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID != $activeSlave.ID>> <<if areSisters($activeSlave, $slaves[$i]) == 2 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> @@ -1780,12 +1780,11 @@ extremely pale -5 $pronounCap is @@color:lightgreen;brothers with $children[0].slaveName.@@ <</if>> <<set $children = []>> -*/ /*testtest half-sister - determines how many half-sisters a slave has*/ <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID != $activeSlave.ID>> - <<if areSisters($activeSlave, $slaves[$i]) == 3>> + <<if areSisters($activeSlave, $slaves[$i]) == 3 && $slaves[$i].vagina > -1>> <<set $children.push($slaves[$i])>> <</if>> <</if>> @@ -1806,7 +1805,7 @@ extremely pale -5 <</if>> <<set $children = []>> -/*testtest half-brother - determines how many half-brothers a slave has +/*testtest half-brother - determines how many half-brothers a slave has*/ <<for $i to 0; $i < $slaves.length; $i++>> <<if $slaves[$i].ID != $activeSlave.ID>> <<if areSisters($activeSlave, $slaves[$i]) == 3 && $slaves[$i].dick > 0 && $slaves[$i].vagina == -1>> @@ -1829,6 +1828,116 @@ extremely pale -5 $pronounCap is a @@color:lightgreen;half-brother to $children[0].slaveName.@@ <</if>> <<set $children = []>> -*/ + +<</widget>> + +<<widget PlayerFamily>> + +<br><br>Your present family includes: + +/*Player parents, lists both your parents, or just one.*/ +<<for $i to 0; $i < $slaves.length; $i++>> +<<if $slaves[$i].ID == $PC.father || $slaves[$i].ID == $PC.mother>> + <<set $children.push($slaves[$i])>> +<</if>> +<</for>> + <<if $children.length > 1>> + <br>Your parents are @@color:lightgreen;$children[0].slaveName and $children[1].slaveName@@. + <<elseif $children.length > 0>> + <br>You know one of your parents, @@color:lightgreen;$children[0].slaveName@@. + <</if>> +<<set $children = []>> + +/*Sister Test with aresisters*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $PC.ID>> + <<if areSisters($PC, $slaves[$i]) === 2 && areSisters($slaves[$i], $PC) === 2>> + <<set $children.push($slaves[$i])>> + <</if>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are @@color:lightgreen;sisters with + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are sisters with @@color:lightgreen;$children[0].slaveName and $children[1].slaveName.@@ +<<elseif $children.length > 0>> + <br>Your sister is @@color:lightgreen;$children[0].slaveName.@@ +<</if>> +<<set $children = []>> + +/*Half-Sister Test with aresisters */ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $slaves[$i].ID != $PC.ID>> + <<if areSisters($slaves[$i], $PC) == 3 && areSisters($PC, $slaves[$i]) == 3>> + <<set $children.push($slaves[$i])>> + <</if>> +<</if>> +<</for>> +<<if $children.length > 2>> + <br>You are half-sisters with @@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName@@. + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are half-sisters with @@color:lightgreen;$children[0].slaveName and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You have one half-sisters, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> + +/*Player is Father, lists children you fathered*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $PC.ID == $slaves[$i].father>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are the father of @@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName@@. + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are the father of two of your slaves, @@color:lightgreen;$children[0].slaveName, and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You are the father of one of your slaves, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> + +/*Player is Mother, lists birthed children*/ +<<for $i to 0; $i < $slaves.length; $i++>> + <<if $PC.ID == $slaves[$i].mother>> + <<set $children.push($slaves[$i])>> + <</if>> +<</for>> +<<if $children.length > 2>> + <br>You are the mother of@@color:lightgreen; + <<for $j to 0; $j < $children.length; $j++>> + <<if $j < $children.length-1>> + $children[$j].slaveName, + <<else>> + and $children[$j].slaveName.@@ + <</if>> + <</for>> +<<elseif $children.length > 1>> + <br>You are the mother of two of your slaves, @@color:lightgreen;$children[0].slaveName, and $children[1].slaveName@@. +<<elseif $children.length > 0>> + <br>You are the mother of one of your slaves, @@color:lightgreen;$children[0].slaveName@@. +<</if>> +<<set $children = []>> <</widget>> \ No newline at end of file diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 751cec588add3a6231d36936075b01c010586941..43ddcb7724beb9f2100c5c6b7024501415f3ed0d 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -17,7 +17,7 @@ <<set $incubator = 0>> <</if>> <<if ndef $incubatorUpgradeSpeed>> - <<set $incubatorUpgradeSpeed = 0>> + <<set $incubatorUpgradeSpeed = 5>> <</if>> <<if ndef $incubatorUpgradeWeight>> <<set $incubatorUpgradeWeight = 0>> diff --git a/src/utility/descriptionWidgets.tw b/src/utility/descriptionWidgets.tw index b750f259642930cefb69322f3d655458a0bb1528..3399b98aae0cca156e39547017c6f6bc3987266c 100644 --- a/src/utility/descriptionWidgets.tw +++ b/src/utility/descriptionWidgets.tw @@ -8379,6 +8379,8 @@ $pronounCap has <<if $args[0].fuckdoll > 0>> <<set $pronoun = "it", $pronounCap = "It", $possessive = "its", $possessiveCap = "Its", $object = "it">> +<<elseif $activeSlave.dick < 0 && $activeSlave.vagina == -1>> /*impossible condition to keep it from running but saving it for future use*/ + <<set $pronoun = "he", $pronounCap = "He", $possessive = "his", $possessiveCap = "His", $object = "his">> <<else>> <<set $pronoun = "she", $pronounCap = "She", $possessive = "her", $possessiveCap = "Her", $object = "her">> <</if>>