diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt index e2db0c09185630c826508cb22196371029e34714..53c837e06d063c244b6c323ff5ef0a3307ae4154 100644 --- a/devNotes/VersionChangeLog-Premod+LoliMod.txt +++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt @@ -4768,4 +4768,7 @@ Pregmod 0.10.3.0 173 -The Hippolyta Acedemy added - -fixes \ No newline at end of file + -fixes + + 174 + -added SFanon's eye and hair autosurgery settings \ No newline at end of file diff --git a/devNotes/twine JS b/devNotes/twine JS index abc7d484d9bc5841618bed053a8a319bfa0f25c1..5e636e75288d0938339699bbae7f94a32fbbcb3b 100644 --- a/devNotes/twine JS +++ b/devNotes/twine JS @@ -1,5 +1,5 @@ /*:: StoryJS [script]*/ - + /*config.history.tracking = false;*/ window.variableAsNumber = function(x, defaultValue, minValue, maxValue) { x = Number(x) @@ -18,7 +18,7 @@ window.isSexuallyPure = function(slave) { if (!slave) { return null; } - if (slave.vagina < 1 && slave.anus < 1 && !slave.analCount && !slave.vaginalCount && !slave.oralCount) { + if (slave.vagina < 1 && slave.anus < 1 && !slave.analCount && !slave.vaginalCount && !slave.oralCount && !slave.mammaryCount && !slave.penetrativeCount) { return true; } else { return false; @@ -143,9 +143,9 @@ Mousetrap.bind("x", function () { Mousetrap.bind("z", function () { $("#story-caption #SFMButton a.macro-link").trigger("click"); }); -Mousetrap.bind("d", function () { - $("#story-caption #edictButton a.macro-link").trigger("click"); -}); +Mousetrap.bind("d", function () { + $("#story-caption #edictButton a.macro-link").trigger("click"); +}); Mousetrap.bind("shift+s", function () { $("#story-caption #securityHQ a.macro-link").trigger("click"); }); @@ -969,6 +969,10 @@ window.lastSurgeryRuleFor = function(slave, rules, what) { return null; }; +window.lastEyesSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "eyes"); +} + window.lastLactationSurgeryRule = function(slave, rules) { return lastSurgeryRuleFor(slave, rules, "lactation"); } @@ -989,6 +993,14 @@ window.lastButtSurgeryRule = function(slave, rules) { return lastSurgeryRuleFor(slave, rules, "butt"); }; +window.lastHairSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "hair"); +} + +window.lastBodyHairSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "bodyhair"); +} + window.milkAmount = function(slave) { var milk; var calcs; @@ -1100,7 +1112,7 @@ window.mergeRules = function(rules) { ); if (applies) - { + { //Objects in JS in operaions "=" pass by reference, so we need completly new object to avoid mess up previous rules. if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) @@ -1109,14 +1121,14 @@ window.mergeRules = function(rules) { //If we already have object - now we will process it's properties, but object itself should be skiped. if ("object" != typeof combinedRule[prop]) combinedRule[prop] = rules[i][prop]; - + /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ if ( "object" == typeof rules[i][prop]) { for (var subprop in rules[i][prop]) { var subapplies = ( - combinedRule[prop][subprop] === undefined + combinedRule[prop][subprop] === undefined || (rules[i][prop][subprop] !== "no default setting") ); diff --git a/src/js/storyJS.tw b/src/js/storyJS.tw index d02f0d9e964f9d22eaa673415b38ae85563d2808..e61daf30868948dba4bd5652951162c94590fed4 100644 --- a/src/js/storyJS.tw +++ b/src/js/storyJS.tw @@ -1,5 +1,5 @@ :: StoryJS [script] - + /*config.history.tracking = false;*/ window.variableAsNumber = function(x, defaultValue, minValue, maxValue) { x = Number(x) @@ -18,7 +18,7 @@ window.isSexuallyPure = function(slave) { if (!slave) { return null; } - if (slave.vagina < 1 && slave.anus < 1 && !slave.analCount && !slave.vaginalCount && !slave.oralCount) { + if (slave.vagina < 1 && slave.anus < 1 && !slave.analCount && !slave.vaginalCount && !slave.oralCount && !slave.mammaryCount && !slave.penetrativeCount) { return true; } else { return false; @@ -143,9 +143,9 @@ Mousetrap.bind("x", function () { Mousetrap.bind("z", function () { $("#story-caption #SFMButton a.macro-link").trigger("click"); }); -Mousetrap.bind("d", function () { - $("#story-caption #edictButton a.macro-link").trigger("click"); -}); +Mousetrap.bind("d", function () { + $("#story-caption #edictButton a.macro-link").trigger("click"); +}); Mousetrap.bind("shift+s", function () { $("#story-caption #securityHQ a.macro-link").trigger("click"); }); @@ -969,6 +969,10 @@ window.lastSurgeryRuleFor = function(slave, rules, what) { return null; }; +window.lastEyesSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "eyes"); +} + window.lastLactationSurgeryRule = function(slave, rules) { return lastSurgeryRuleFor(slave, rules, "lactation"); } @@ -989,6 +993,14 @@ window.lastButtSurgeryRule = function(slave, rules) { return lastSurgeryRuleFor(slave, rules, "butt"); }; +window.lastHairSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "hair"); +} + +window.lastBodyHairSurgeryRule = function(slave, rules) { + return lastSurgeryRuleFor(slave, rules, "bodyhair"); +} + window.milkAmount = function(slave) { var milk; var calcs; @@ -1100,7 +1112,7 @@ window.mergeRules = function(rules) { ); if (applies) - { + { //Objects in JS in operaions "=" pass by reference, so we need completly new object to avoid mess up previous rules. if ("object" == typeof rules[i][prop] && "object" != typeof combinedRule[prop]) @@ -1109,14 +1121,14 @@ window.mergeRules = function(rules) { //If we already have object - now we will process it's properties, but object itself should be skiped. if ("object" != typeof combinedRule[prop]) combinedRule[prop] = rules[i][prop]; - + /*Some properties of rules now have second level properties. We need to check it, and change ones in combinedRule. (Good example - growth drugs. Breasts, butt, etc...) */ if ( "object" == typeof rules[i][prop]) { for (var subprop in rules[i][prop]) { var subapplies = ( - combinedRule[prop][subprop] === undefined + combinedRule[prop][subprop] === undefined || (rules[i][prop][subprop] !== "no default setting") ); diff --git a/src/uncategorized/autosurgerySettings.tw b/src/uncategorized/autosurgerySettings.tw index 5873a2e8b4e550924ab61a250e8fc0234419d975..a2b1d6ab0b43792c53d6c42c6beb427b678fc2f3 100644 --- a/src/uncategorized/autosurgerySettings.tw +++ b/src/uncategorized/autosurgerySettings.tw @@ -6,6 +6,45 @@ //The autosurgery can accept the following guidelines. If results outside these guidelines are desired, deactivating the autosurgery and planning surgical interventions manually is recommended.// +<br><br> +Vision correction: +<span id = "eyes"> + <<if ($currentRule.surgery.eyes == "no default setting")>> + ''no default setting.'' + <<elseif ($currentRule.surgery.eyes == 1)>> + ''fixed.'' + <<else>> + ''blurred.'' + <</if>> + + <br> + + <<if ($currentRule.surgery.eyes !== "no default setting")>> + <<link "No default setting">> + <<set $currentRule.surgery.eyes = "no default setting">> + <<RASurgeryChangeEyes>> + <</link>> | + <<else>> + No default setting | + <</if>> + <<if ($currentRule.surgery.eyes !== 1)>> + <<link "Corrected">> + <<set $currentRule.surgery.eyes = 1>> + <<RASurgeryChangeEyes>> + <</link>> | + <<else>> + Corrected | + <</if>> + <<if ($currentRule.surgery.eyes !== -1)>> + <<link "Blurred">> + <<set $currentRule.surgery.eyes = -1>> + <<RASurgeryChangeEyes>> + <</link>> + <<else>> + Blurred + <</if>> +</span> + <br><br> Lactation drug implants: @@ -389,3 +428,81 @@ Orifice tightening: Virginity <</if>> </span> + +<br><br>bodyhair: +<span id = "bodyhair"> +<<if ($currentRule.surgery.bodyhair == 2)>> + ''Removal'' +<<elseif ($currentRule.surgery.bodyhair == 1)>> + ''Keep'' +<<else>> + ''No default setting.'' +<</if>> + +<br> +<<if ($currentRule.surgery.bodyhair != 0)>> + <<link "No default setting">> + <<set $currentRule.surgery.bodyhair = 0>> + <<RASurgeryBodyHair>> + <</link>> | +<<else>> + No default setting | +<</if>> + +<<if ($currentRule.surgery.bodyhair != 1)>> + <<link "Keep">> + <<set $currentRule.surgery.bodyhair = 1>> + <<RASurgeryBodyHair>> + <</link>> | +<<else>> + Keep | +<</if>> + +<<if ($currentRule.surgery.bodyhair != 2)>> + <<link "Removal">> + <<set $currentRule.surgery.bodyhair = 2>> + <<RASurgeryBodyHair>> + <</link>> +<<else>> + Removal +<</if>> +</span> + +<br><br>hair: +<span id = "hair"> +<<if ($currentRule.surgery.hair == 2)>> + ''Removal'' +<<elseif ($currentRule.surgery.hair == 1)>> + ''Keep'' +<<else>> + ''No default setting.'' +<</if>> + +<br> +<<if ($currentRule.surgery.hair != 0)>> + <<link "No default setting">> + <<set $currentRule.surgery.hair = 0>> + <<RASurgeryHair>> + <</link>> | +<<else>> + No default setting | +<</if>> + +<<if ($currentRule.surgery.hair != 1)>> + <<link "Keep">> + <<set $currentRule.surgery.hair = 1>> + <<RASurgeryBodyHair>> + <</link>> | +<<else>> + Keep | +<</if>> + +<<if ($currentRule.surgery.hair != 2)>> + <<link "Removal">> + <<set $currentRule.surgery.hair = 2>> + <<RASurgeryHair>> + <</link>> +<<else>> + Removal +<</if>> +</span> \ No newline at end of file diff --git a/src/uncategorized/rulesAutosurgery.tw b/src/uncategorized/rulesAutosurgery.tw index 043aaf5d458cb9e92d516e7d96354104b6020ff5..785114dda082bed47dd690cf57dd85808779f60c 100644 --- a/src/uncategorized/rulesAutosurgery.tw +++ b/src/uncategorized/rulesAutosurgery.tw @@ -35,6 +35,18 @@ <<if _temp != null>> <<set $thisSurgery.boobs = _temp.surgery.boobs>> <</if>> + <<set _temp = lastEyeSurgeryRule($slaves[$i], $defaultRules)>> + <<if _temp != null>> + <<set $thisSurgery.eye = _temp.surgery.eye>> + <</if>> + <<set _temp = lastBodyHairSurgeryRule($slaves[$i], $defaultRules)>> + <<if _temp != null>> + <<set $thisSurgery.bodyhair = _temp.surgery.bodyhair>> + <</if>> + <<set _temp = lastHairSurgeryRule($slaves[$i], $defaultRules)>> + <<if _temp != null>> + <<set $thisSurgery.hair = _temp.surgery.hair>> + <</if>> <<if ($thisSurgery.hips !== "no default setting") && ($thisSurgery.butt !== "no default setting")>> <<if $slaves[$i].hips < -1>> <<if $thisSurgery.butt > 2>> @@ -61,7 +73,7 @@ <</if>> <<if ndef $thisSurgery>> - <<set $thisSurgery = {lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0}>> + <<set $thisSurgery = {eyes: "no default setting", lactation: "no default setting", cosmetic: 0, accent: "no default setting", shoulders: "no default setting", shouldersImplant: "no default setting", boobs: "no default setting", hips: "no default setting", hipsImplant: "no default setting", butt: "no default setting", faceShape: "no default setting", lips: "no default setting", holes: 0,bodyhair: 0, hair: 0}>> <</if>> <<set $seed = 0>> @@ -70,7 +82,13 @@ <<if ($slaves[$i].health <= 20)>> <<set $seed = 1>> <<else>> -<<if ($slaves[$i].lactation == 2) && ($thisSurgery.lactation == 0)>> +<<if ($slaves[$i].eyes == -1) && ($thisSurgery.eyes == 1)>> + <<set $surgeries.push("surgery to correct her vision"), $slaves[$i].eyes = 1, $cash -= $surgeryCost>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif ($slaves[$i].eyes != -1) && ($thisSurgery.eyes == -1)>> + <<set $surgeries.push("surgery to blur her vision"), $slaves[$i].eyes = -1, $cash -= $surgeryCost>> + <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> +<<elseif ($slaves[$i].lactation == 2) && ($thisSurgery.lactation == 0)>> <<set $surgeries.push("surgery to remove her lactation implants"), $slaves[$i].lactation = 0, $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <<elseif $slaves[$i].lactation != 2 && $thisSurgery.lactation>> @@ -302,6 +320,15 @@ <<set $cash -= $surgeryCost>> <<if $PC.medicine >= 100>><<set $slaves[$i].health -= 5>><<else>><<set $slaves[$i].health -= 10>><</if>> <</if>> +<<elseif (($slaves[$i].underArmHStyle != "bald" && $slaves[$i].underArmHStyle != "hairless") || ($slaves[$i].pubicHStyle != "bald" && $slaves[$i].pubicHStyle != "hairless")) && ($thisSurgery.bodyhair == 2)>> + <<set $surgeries.push("body hair removal")>> + <<if $slaves[$i].underArmHStyle != "hairless">><<set $slaves[$i].underArmHStyle = "bald">><</if>> + <<if $slaves[$i].pubicHStyle != "hairless">><<set $slaves[$i].pubicHStyle = "bald">><</if>> + <<set $cash -= $surgeryCost>> +<<elseif ($slaves[$i].bald == 0 || $slaves[$i].hStyle != "bald") && ($thisSurgery.hair == 2)>> + <<set $surgeries.push("hair removal")>> + <<set $slaves[$i].hStyle = "bald", $slaves[$i].bald = 1>> + <<set $cash -= $surgeryCost>> <<else>> <<set $seed = 1>> diff --git a/src/utility/raWidgets.tw b/src/utility/raWidgets.tw index 6669868d1cb13d94fdffdfd6465ae5d196bb44dd..5221186b90699a8b68b5b7adcee1f08ec81a325d 100644 --- a/src/utility/raWidgets.tw +++ b/src/utility/raWidgets.tw @@ -2323,6 +2323,49 @@ Your brand design is ''$brandDesign.'' <</replace>> <</widget>> + +/% + Call as <<RASurgeryChangeEyes>> +%/ +<<widget "RASurgeryChangeEyes">> +<<replace #eyes>> + <<if ($currentRule.surgery.eyes == "no default setting")>> + ''no default setting.'' + <<elseif ($currentRule.surgery.eyes == 1)>> + ''fixed.'' + <<else>> + ''blurred.'' + <</if>> + + <br> + + <<if ($currentRule.surgery.eyes !== "no default setting")>> + <<link "No default setting">> + <<set $currentRule.surgery.eyes = "no default setting">> + <<RASurgeryChangeEyes>> + <</link>> | + <<else>> + No default setting | + <</if>> + <<if ($currentRule.surgery.eyes !== 1)>> + <<link "Corrected">> + <<set $currentRule.surgery.eyes = 1>> + <<RASurgeryChangeEyes>> + <</link>> | + <<else>> + Corrected | + <</if>> + <<if ($currentRule.surgery.eyes !== -1)>> + <<link "Blurred">> + <<set $currentRule.surgery.eyes = -1>> + <<RASurgeryChangeEyes>> + <</link>> + <<else>> + Blurred + <</if>> +<</replace>> +<</widget>> + /% Call as <<RASurgeryChangeLactation>> %/ @@ -2718,6 +2761,93 @@ Your brand design is ''$brandDesign.'' <</replace>> <</widget>> +/% + Call as <<RASurgeryBodyHair>> +%/ +<<widget "RASurgeryBodyHair">> +<<replace #bodyhair>> + <<if ($currentRule.surgery.bodyhair == 2)>> + ''Removal'' + <<elseif ($currentRule.surgery.bodyhair == 1)>> + ''Keep'' + <<else>> + ''No default setting.'' + <</if>> + + <br> + <<if ($currentRule.surgery.bodyhair != 0)>> + <<link "No default setting">> + <<set $currentRule.surgery.bodyhair = 0>> + <<RASurgeryBodyHair>> + <</link>> | + <<else>> + No default setting | + <</if>> + + <<if ($currentRule.surgery.bodyhair != 1)>> + <<link "Keep">> + <<set $currentRule.surgery.bodyhair = 1>> + <<RASurgeryBodyHair>> + <</link>> | + <<else>> + Keep | + <</if>> + + <<if ($currentRule.surgery.bodyhair != 2)>> + <<link "Removal">> + <<set $currentRule.surgery.bodyhair = 2>> + <<RASurgeryBodyHair>> + <</link>> + <<else>> + Removal + <</if>> +<</replace>> +<</widget>> + + +/% + Call as <<RASurgeryHair>> +%/ +<<widget "RASurgeryHair">> +<<replace #hair>> + <<if ($currentRule.surgery.hair == 2)>> + ''Removal'' + <<elseif ($currentRule.surgery.hair == 1)>> + ''Keep'' + <<else>> + ''No default setting.'' + <</if>> + + <br> + <<if ($currentRule.surgery.hair != 0)>> + <<link "No default setting">> + <<set $currentRule.surgery.hair = 0>> + <<RASurgeryHair>> + <</link>> | + <<else>> + No default setting | + <</if>> + + <<if ($currentRule.surgery.hair != 1)>> + <<link "Keep">> + <<set $currentRule.surgery.hair = 1>> + <<RASurgeryHair>> + <</link>> | + <<else>> + Keep | + <</if>> + + <<if ($currentRule.surgery.hair != 2)>> + <<link "Removal">> + <<set $currentRule.surgery.hair = 2>> + <<RASurgeryHair>> + <</link>> + <<else>> + Removal + <</if>> +<</replace>> +<</widget>> + /% % Call as <<RAFacilityRemove SlaveObject RuleObject>> %/ @@ -3532,9 +3662,9 @@ Your brand design is ''$brandDesign.'' <<set $args[0].drugs = "no drugs">> <br>$args[0].slaveName's body has met all relevant growth targets, so her pharmaceutical regime has been ended. <<break>> - <</if>> + <</if>> <<else>> - <<if $arcologies[0].FSAssetExpansionistResearch == 1>> + <<if $arcologies[0].FSAssetExpansionistResearch == 1>> <<set _hyper = "hyper ">> <<else>> <<set _hyper = "">> @@ -4033,10 +4163,10 @@ Your brand design is ''$brandDesign.'' <br>$args[0].slaveName is ready to birth, so her labor has been stimulated. <<elseif _combinedRule.pregSpeed == "fast" && $args[0].pregControl == "speed up" && $args[0].health <= -50>> <<set $args[0].pregControl = "none">> - <br>$args[0].slaveName is on rapid gestation agents and dangerously unhealthy, so her agent regimen has been stopped. + <br>$args[0].slaveName is on rapid gestation agents and dangerously unhealthy, so her agent regimen has been stopped. <<elseif _combinedRule.pregSpeed == "suppress" && $args[0].pregControl == "labor supressors" && $args[0].health <= -50>> <<set $args[0].pregControl = "none">> - <br>$args[0].slaveName is on labor supression agents and unhealthy, so her agent regimen has been stopped. + <br>$args[0].slaveName is on labor supression agents and unhealthy, so her agent regimen has been stopped. <</if>> <</if>>