diff --git a/src/js/DefaultRules.tw b/src/js/DefaultRules.tw index c76c14a0695f5565e6d4d2a07f35bce67207c188..3bc49f4439b12ce82b089cefc0a6191def0a4a44 100644 --- a/src/js/DefaultRules.tw +++ b/src/js/DefaultRules.tw @@ -10,7 +10,9 @@ window.DefaultRules = (function() { let combinedRule = MergeRules(slave) if (Object.keys(combinedRule).length === 0) return r // no rules apply AssignJobToSlave(slave, combinedRule) - ProcessFuckdoll(slave, combinedRule) + if(slave.fuckdoll === 0) + ProcessNonFuckdoll(slave, combinedRule) + ProcessBellyImplant(slave, combinedRule) return r } @@ -253,409 +255,508 @@ window.DefaultRules = (function() { } } - function ProcessFuckdoll(slave, rule) { - // apply rules to slaves which are fuckdolls + function ProcessNonFuckdoll(slave, rule) { + // apply rules to slaves which aren't fuckdolls + ProcessClothing(slave, rule) + ProcessCollar(slave, rule) + ProcessEyewear(slave, rule) + ProcessDildos(slave, rule) + ProcessDickAccessories(slave, rule) + ProcessAnalAccessories(slave, rule) + ProcessShoes(slave, rule) + ProcessBellyAccessories(slave, rule) } - return DefaultRules -})() + function ProcessClothing(slave, rule) { + // apply clothes to slave + if ((rule.clothes !== undefined) && (rule.clothes !== "no default setting")) { + if ((rule.clothes == "choosing her own clothes")) { + if ((slave.choosesOwnClothes == 0)) { + slave.clothes = "choosing her own clothes" + slave.choosesOwnClothes = 1 + r += `<br>${slave.slaveName} is now allowed to choose her own clothes.` + } + } else if ((slave.clothes !== rule.clothes)) { + slave.clothes = rule.clothes + slave.choosesOwnClothes = 0 + r += `<br>${slave.slaveName} is now wearing ${slave.clothes}.` + } + } + } -// -// Call as <<DefaultRules SlaveObject>> -// Does not use or modify $currentRule -/* -<<widget "DefaultRules">> - <<if (def _combinedRule.clothes)>> - <<if $args[0].fuckdoll == 0>> - <<if (def _combinedRule.clothes) && (_combinedRule.clothes !== "no default setting")>> - <<if (_combinedRule.clothes == "choosing her own clothes")>> - <<if ($args[0].choosesOwnClothes == 0)>> - <<set $args[0].clothes = "choosing her own clothes">> - <<set $args[0].choosesOwnClothes = 1>> - <br>$args[0].slaveName is now allowed to choose her own clothes. - <</if>> - <<elseif ($args[0].clothes !== _combinedRule.clothes)>> - <<set $args[0].clothes = _combinedRule.clothes>> - <<set $args[0].choosesOwnClothes = 0>> - <br>$args[0].slaveName is now wearing $args[0].clothes. - <</if>> - <</if>> + function ProcessCollar(slave, rule) { + // apply collar to slave + if ((rule.collar !== undefined) && (rule.collar != "no default setting")) { + if ((slave.collar !== rule.collar)) { + r += '<br>' + if ((rule.collar == "preg biometrics" && slave.preg <= -1)) { + slave.collar = "none" + r += `${slave.slaveName} can not utilize preg biometrics.` + } else if ((rule.collar == "massive dildo gag" && slave.oralSkill <= 50)) { + slave.collar = "none" + r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in her throat.` + } else + slave.collar = rule.collar + if ((slave.collar == "none")) + r += `${slave.slaveName} has been given no collar.` + else + r += `${slave.slaveName} has been given a slave.collar collar.` + } + } + } - <<if (def _combinedRule.collar) && (_combinedRule.collar != "no default setting")>> - <<if ($args[0].collar !== _combinedRule.collar)>> - <br> - <<if (_combinedRule.collar == "preg biometrics" && $args[0].preg <= -1)>> - <<set $args[0].collar = "none">> - $args[0].slaveName can not utilize preg biometrics. - <<elseif (_combinedRule.collar == "massive dildo gag" && $args[0].oralSkill <= 50)>> - <<set $args[0].collar = "none">> - $args[0].slaveName lacks the oral skill to successfully keep the massive dildo gag in her throat. - <<else>> - <<set $args[0].collar = _combinedRule.collar>> - <</if>> - <<if ($args[0].collar == "none")>> - $args[0].slaveName has been given no collar. - <<else>> - $args[0].slaveName has been given a $args[0].collar collar. - <</if>> - <</if>> - <</if>> + function ProcessEyewear(slave, rule) { + // apply glasses, contacts to slave + if ((rule.eyewear !== undefined) && (rule.eyewear !== "no default setting")) { + switch (rule.eyewear) { + case "correct with glasses": + if (slave.eyes == -1) { + if (slave.eyewear != "corrective glasses") { + slave.eyewear = "corrective glasses" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given corrective glasses.` + } + } else { + if (slave.eyewear != "none") { + slave.eyewear = "none" + r += `<br>${slave.slaveName}'s eyewear has been removed.` + } + } + break + + case "correct with contacts": + if (slave.eyes == -1) { + if (slave.eyewear != "corrective contacts") { + slave.eyewear = "corrective contacts" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given corrective contacts.` + } + } else { + if (slave.eyewear != "none") { + slave.eyewear = "none" + r += `<br>${slave.slaveName}'s eyewear has been removed.` + } + } + break + + case "blur with glasses": + if (slave.eyes > -1) { + if (slave.eyewear != "blurring glasses") { + slave.eyewear = "blurring glasses" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given blurring glasses.` + } + } else { + if (slave.eyewear != "none") { + slave.eyewear = "none" + r += `<br>${slave.slaveName}'s eyewear has been removed.` + } + } + break + + case "blur with contacts": + if (slave.eyes > -1) { + if (slave.eyewear != "blurring contacts") { + slave.eyewear = "blurring contacts" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given blurring contacts.` + } + } else { + if (slave.eyewear != "none") { + slave.eyewear = "none" + r += `<br>Since ${slave.slaveName}'s eyewear has been removed.` + } + } + break + + case "universal glasses": + if (slave.eyes == -1) { + if (slave.eyewear != "corrective glasses") { + slave.eyewear = "corrective glasses" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given corrective glasses.` + } + } else { + if (slave.eyewear != "glasses") { + slave.eyewear = "glasses" + V.cash -= V.modCost + r += `<br>${slave.slaveName} has been given decorative glasses.` + } + } + break - <<if (def _combinedRule.eyewear) && (_combinedRule.eyewear !== "no default setting")>> - <<switch _combinedRule.eyewear>> - <<case "correct with glasses">> - <<if $args[0].eyes == -1>> - <<if $args[0].eyewear != "corrective glasses">> - <<set $args[0].eyewear = "corrective glasses">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given corrective glasses. - <</if>> - <<else>> - <<if $args[0].eyewear != "none">> - <<set $args[0].eyewear = "none">> - <br>$args[0].slaveName's eyewear has been removed. - <</if>> - <</if>> + default: + if (slave.eyewear != "none") { + slave.eyewear = "none" + r += `<br>${slave.slaveName}'s eyewear has been removed.` + } + break + } + } + } - <<case "correct with contacts">> - <<if $args[0].eyes == -1>> - <<if $args[0].eyewear != "corrective contacts">> - <<set $args[0].eyewear = "corrective contacts">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given corrective contacts. - <</if>> - <<else>> - <<if $args[0].eyewear != "none">> - <<set $args[0].eyewear = "none">> - <br>$args[0].slaveName's eyewear has been removed. - <</if>> - <</if>> + function ProcessDildos(slave, rule) { + // apply vaginal dildos to slave + if (slave.vagina == 0) + ProcessVVirginDildos(slave, rule) + else if ((slave.vagina > 0) && (slave.anus == 0)) + ProcessAVirginDildos(slave, rule) + else if (slave.vagina > 0) + ProcessNonVirginDildos(slave, rule) + } - <<case "blur with glasses">> - <<if $args[0].eyes > -1>> - <<if $args[0].eyewear != "blurring glasses">> - <<set $args[0].eyewear = "blurring glasses">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given blurring glasses. - <</if>> - <<else>> - <<if $args[0].eyewear != "none">> - <<set $args[0].eyewear = "none">> - <br>$args[0].slaveName's eyewear has been removed. - <</if>> - <</if>> + function ProcessVVirginDildos(slave, rule) { + // apply vaginal dildos to varginal virgins + if ((rule.virginAccessory !== undefined) && (rule.virginAccessory !== "no default setting")) { + if (slave.vaginalAccessory !== rule.virginAccessory) { + slave.vaginalAccessory = rule.virginAccessory + switch (slave.vaginalAccessory) { + case "huge dildo": + r += `<br>${slave.slaveName} is a virgin and has been given a` + if (slave.vagina >= 2) + r += `massive dildo to permanently gape her cunt.` + else { + r += `large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "large dildo" + } + break - <<case "blur with contacts">> - <<if $args[0].eyes > -1>> - <<if $args[0].eyewear != "blurring contacts">> - <<set $args[0].eyewear = "blurring contacts">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given blurring contacts. - <</if>> - <<else>> - <<if $args[0].eyewear != "none">> - <<set $args[0].eyewear = "none">> - <br>Since $args[0].slaveName's eyewear has been removed. - <</if>> - <</if>> + case "long dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for her pussy.` + slave.vaginalAccessory = "dildo" + } + break - <<case "universal glasses">> - <<if $args[0].eyes == -1>> - <<if $args[0].eyewear != "corrective glasses">> - <<set $args[0].eyewear = "corrective glasses">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given corrective glasses. - <</if>> - <<else>> - <<if $args[0].eyewear != "glasses">> - <<set $args[0].eyewear = "glasses">> - <<set $cash -= $modCost>> - <br>$args[0].slaveName has been given decorative glasses. - <</if>> - <</if>> + case "long, large dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for her pussy.` + slave.vaginalAccessory = "large dildo" + } + break - <<default>> - <<if $args[0].eyewear != "none">> - <<set $args[0].eyewear = "none">> - <br>$args[0].slaveName's eyewear has been removed. - <</if>> - <</switch>> - <</if>> + case "long, huge dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for her pussy.` + slave.vaginalAccessory = "huge dildo" + } else { + r += `<br>slave.slaveName is a virgin and has been given a` + if (slave.vagina >= 2) + r += `massive and oversized dildo to permanently gape her cunt.` + else { + r += `long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "long, large dildo" + } + } + break - <<if $args[0].vagina == 0>> - <<if (def _combinedRule.virginAccessory) && (_combinedRule.virginAccessory !== "no default setting")>> - <<if $args[0].vaginalAccessory !== _combinedRule.virginAccessory>> - <<set $args[0].vaginalAccessory = _combinedRule.virginAccessory>> - <<switch $args[0].vaginalAccessory>> - <<case "huge dildo">> - <br>$args[0].slaveName is a virgin and has been given a - <<if $args[0].vagina >= 2>> - massive dildo to permanently gape her cunt. - <<else>> - large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length dildo for her pussy. - <<set $args[0].vaginalAccessory = "dildo">> - <</if>> - <<case "long, large dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length large dildo for her pussy. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long, huge dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length huge dildo for her pussy. - <<set $args[0].vaginalAccessory = "huge dildo">> - <<else>> - <br>$args[0].slaveName is a virgin and has been given a - <<if $args[0].vagina >= 2>> - massive and oversized dildo to permanently gape her cunt. - <<else>> - long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "long, large dildo">> - <</if>> - <</if>> - <<case "none">> - <br>$args[0].slaveName is a virgin and has been instructed not to use a vaginal accessory. - <<default>> - <br>$args[0].slaveName is a virgin and has been given a $args[0].vaginalAccessory for her pussy. - <</switch>> - <</if>> - <</if>> - <<elseif ($args[0].vagina > 0) && ($args[0].anus == 0)>> - <<if (def _combinedRule.aVirginAccessory) && (_combinedRule.aVirginAccessory !== "no default setting")>> - <<if $args[0].vaginalAccessory !== _combinedRule.aVirginAccessory>> - <<set $args[0].vaginalAccessory = _combinedRule.aVirginAccessory>> - <<switch $args[0].vaginalAccessory>> - <<case "huge dildo">> - <br>$args[0].slaveName is a virgin and has been given a - <<if $args[0].vagina >= 2>> - massive dildo to permanently gape her cunt. - <<else>> - large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length dildo for her pussy. - <<set $args[0].vaginalAccessory = "dildo">> - <</if>> - <<case "long, large dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length large dildo for her pussy. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long, huge dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin $args[0].slaveName has been given a standard length huge dildo for her pussy. - <<set $args[0].vaginalAccessory = "huge dildo">> - <<else>> - <br>$args[0].slaveName is a virgin and has been given a - <<if $args[0].vagina >= 2>> - massive and oversized dildo to permanently gape her cunt. - <<else>> - long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "long, large dildo">> - <</if>> - <</if>> - <<case "none">> - <br>$args[0].slaveName is a virgin and has been instructed not to use a vaginal accessory. - <<default>> - <br>$args[0].slaveName is a virgin and has been given a $args[0].vaginalAccessory for her pussy. - <</switch>> - <</if>> - <</if>> - <<elseif $args[0].vagina > 0>> - <<if (def _combinedRule.vaginalAccessory) && (_combinedRule.vaginalAccessory !== "no default setting")>> - <<if $args[0].vaginalAccessory !== _combinedRule.vaginalAccessory>> - <<set $args[0].vaginalAccessory = _combinedRule.vaginalAccessory>> - <<switch $args[0].vaginalAccessory>> - <<case "huge dildo">> - <br>$args[0].slaveName has been given a - <<if $args[0].vagina >= 2>> - massive dildo to permanently gape her cunt. - <<else>> - large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so $args[0].slaveName has been given a standard length dildo for her pussy. - <<set $args[0].vaginalAccessory = "dildo">> - <</if>> - <<case "long, large dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so $args[0].slaveName has been given a standard length large dildo for her pussy. - <<set $args[0].vaginalAccessory = "large dildo">> - <</if>> - <<case "long, huge dildo">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so $args[0].slaveName has been given a standard length huge dildo for her pussy. - <<set $args[0].vaginalAccessory = "huge dildo">> - <<else>> - <br>$args[0].slaveName has been given a - <<if $args[0].vagina >= 2>> - massive and oversized dildo to permanently gape her cunt. - <<else>> - long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one. - <<set $args[0].vaginalAccessory = "long, large dildo">> - <</if>> - <</if>> - <<case "none">> - <br>$args[0].slaveName has been instructed not to use a vaginal accessory. - <<default>> - <br>$args[0].slaveName has been given a $args[0].vaginalAccessory for her pussy. - <</switch>> - <</if>> - <</if>> - <</if>> + case "none": + r += `<br>${slave.slaveName} is a virgin and has been instructed not to use a vaginal accessory.` + break - <<if ($args[0].dick > 0)>> - <<if $args[0].anus == 0>> - <<if (def _combinedRule.aVirginDickAccessory) && (_combinedRule.aVirginDickAccessory !== "no default setting")>> - <<if ($args[0].dickAccessory !== _combinedRule.aVirginDickAccessory)>> - <<set $args[0].dickAccessory = _combinedRule.aVirginDickAccessory>> - <<if $args[0].dickAccessory == "none">> - <br>$args[0].slaveName is a virgin and has been instructed not to wear a dick accessory. - <<else>> - <br>$args[0].slaveName is a virgin and has been given a $args[0].dickAccessory accessory for her cock. - <</if>> - <</if>> - <</if>> - <<else>> - <<if (def _combinedRule.dickAccessory) && (_combinedRule.dickAccessory !== "no default setting")>> - <<if ($args[0].dickAccessory !== _combinedRule.dickAccessory)>> - <<set $args[0].dickAccessory = _combinedRule.dickAccessory>> - <<if $args[0].dickAccessory == "none">> - <br>$args[0].slaveName has been instructed not to wear a dick accessory. - <<else>> - <br>$args[0].slaveName has been given a $args[0].dickAccessory accessory for her cock. - <</if>> - <</if>> - <</if>> - <</if>> - <</if>> + default: + r += `<br>${slave.slaveName} is a virgin and has been given a slave.vaginalAccessory for her pussy.` + break + } + } + } + } - <<if ($args[0].vaginalAccessory !== "anal chastity") && ($args[0].vaginalAccessory !== "combined chastity") && ($args[0].dickAccessory !== "anal chastity") && ($args[0].dickAccessory !== "combined chastity")>> - <<if $args[0].anus == 0>> - <<if (def _combinedRule.aVirginButtplug) && (_combinedRule.aVirginButtplug !== "no default setting")>> - <<if ($args[0].buttplug !== _combinedRule.aVirginButtplug)>> - <<set $args[0].buttplug = _combinedRule.aVirginButtplug>> - <<switch $args[0].buttplug>> - <<case "huge plug">> - <br>$args[0].slaveName is an anal virgin and has been given a - <<if ($args[0].anus >= 2)>> - massive plug to permanently gape her asshole. - <<else>> - <<set $args[0].buttplug = "large plug">> - large buttplug for her asshole, since it must be stretched before it can accommodate a huge one. - <</if>> - <<case "long plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin $args[0].slaveName has been given a standard length plug for her anus. - <<set $args[0].buttplug = "plug">> - <</if>> - <<case "long, large plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin $args[0].slaveName has been given a standard length large plug for her anus. - <<set $args[0].buttplug = "large plug">> - <</if>> - <<case "long, huge plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin $args[0].slaveName has been given a standard length huge plug for her anus. - <<set $args[0].buttplug = "huge plug">> - <<else>> - <br>$args[0].slaveName is an anal virgin and has been given a - <<if $args[0].anus >= 2>> - massive and oversized plug to permanently gape her asshole. - <<else>> - long, large buttplug for her asshole, since it must be stretched before it can accommodate a huge one. - <<set $args[0].buttplug = "long, large plug">> - <</if>> - <</if>> - <<case "none">> - <br>$args[0].slaveName is an anal virgin and has been instructed not to use an anal accessory. - <<default>> - <br>$args[0].slaveName is an anal virgin and has been given a $args[0].buttplug for her asshole. - <</switch>> - <</if>> - <</if>> - <<else>> - <<if (def _combinedRule.buttplug) && (_combinedRule.buttplug !== "no default setting")>> - <<if ($args[0].buttplug !== _combinedRule.buttplug)>> - <<set $args[0].buttplug = _combinedRule.buttplug>> - <<switch $args[0].buttplug>> - <<case "huge plug">> - <br>$args[0].slaveName has been given a - <<if ($args[0].anus >= 2)>> - massive plug to permanently gape her asshole. - <<else>> - <<set $args[0].buttplug = "large plug">> - large buttplug for her asshole, since it must be stretched before it can accommodate a huge one. - <</if>> - <<case "long plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so $args[0].slaveName has been given a standard length plug for her anus. - <<set $args[0].buttplug = "plug">> - <</if>> - <<case "long, large plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so $args[0].slaveName has been given a standard length large plug for her anus. - <<set $args[0].buttplug = "large plug">> - <</if>> - <<case "long, huge plug">> - <<if $activeSlave.breedingMark == 1>> - <br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so $args[0].slaveName has been given a standard length huge plug for her anus. - <<set $args[0].buttplug = "huge plug">> - <<else>> - <br>$args[0].slaveName has been given a - <<if $args[0].anus >= 2>> - massive and oversized plug to permanently gape her asshole. - <<else>> - long, large buttplug for her asshole, since it must be stretched before it can accommodate a huge one. - <<set $args[0].buttplug = "long, large plug">> - <</if>> - <</if>> - <<case "none">> - <br>$args[0].slaveName has been instructed not to use an anal accessory. - <<default>> - <br>$args[0].slaveName has been given a $args[0].buttplug for her asshole. - <</switch>> - <</if>> - <</if>> - <</if>> - <</if>> + function ProcessAVirginDildos(slave, rule) { + // apply vaginal dildos to anal virgins + if ((rule.aVirginAccessory !== undefined) && (rule.aVirginAccessory !== "no default setting")) { + if (slave.vaginalAccessory !== rule.aVirginAccessory) { + slave.vaginalAccessory = rule.aVirginAccessory + switch (slave.vaginalAccessory) { + case "huge dildo": + r += `<br>${slave.slaveName} is a virgin and has been given a` + if (slave.vagina >= 2) + r += `massive dildo to permanently gape her cunt.` + else { + r += `large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "large dildo" + } + break - <<if (def _combinedRule.shoes) && (_combinedRule.shoes !== "no default setting")>> - <<if ($args[0].shoes !== _combinedRule.shoes)>> - <<if ($args[0].amp != 1)>> - <<set $args[0].shoes = _combinedRule.shoes>> - <br>$args[0].slaveName's shoes have been set to $args[0].shoes. - <</if>> - <</if>> - <</if>> + case "long dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length dildo for her pussy.` + slave.vaginalAccessory = "dildo" + } + break - <<if (def _combinedRule.bellyAccessory) && (_combinedRule.bellyAccessory !== "no default setting")>> - <<if ($args[0].bellyAccessory !== _combinedRule.bellyAccessory)>> - <<if ($args[0].belly >= 1500 || $args[0].weight >= 130) && setup.fakeBellies.includes(_combinedRule.bellyAccessory)>> - <br>$args[0].slaveName's natural belly is too big to properly wear an empathy belly. - <<set $args[0].bellyAccessory = "none">> - <<else>> - <<set $args[0].bellyAccessory = _combinedRule.bellyAccessory>> - <<if $args[0].bellyAccessory == "none">> - <br>$args[0].slaveName has been instructed not to wear a torso accessory. - <<else>> - <br>$args[0].slaveName has been given $args[0].bellyAccessory to wear. - <</if>> - <</if>> - <</if>> - <</if>> + case "long, large dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length large dildo for her pussy.` + slave.vaginalAccessory = "large dildo" + } + break - <</if>> // CLOSES FUCKDOLL CHECK + case "long, huge dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so the virgin ${slave.slaveName} has been given a standard length huge dildo for her pussy.` + slave.vaginalAccessory = "huge dildo" + } else { + r += `<br>${slave.slaveName} is a virgin and has been given a` + if (slave.vagina >= 2) + r += `massive and oversized dildo to permanently gape her cunt.` + else { + r += `long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "long, large dildo" + } + } + break + + case "none": + r += `<br>slave.slaveName is a virgin and has been instructed not to use a vaginal accessory.` + break + + default: + r += `<br>slave.slaveName is a virgin and has been given a slave.vaginalAccessory for her pussy.` + break + } + } + } + } + + function ProcessNonVirginDildos(slave, rule) { + // apply vaginal dildos to non-virgins + if ((rule.vaginalAccessory !== undefined) && (rule.vaginalAccessory !== "no default setting")) { + if (slave.vaginalAccessory !== rule.vaginalAccessory) { + slave.vaginalAccessory = rule.vaginalAccessory + switch (slave.vaginalAccessory) { + case "huge dildo": + r += `<br>${slave.slaveName} has been given a` + if (slave.vagina >= 2) + r += `massive dildo to permanently gape her cunt.` + else { + r += `large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "large dildo" + } + break + + case "long dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length dildo for her pussy.` + slave.vaginalAccessory = "dildo" + } + break + + case "long, large dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length large dildo for her pussy.` + slave.vaginalAccessory = "large dildo" + } + break + + case "long, huge dildo": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of cervix penetrating dildos on marked slaves, so ${slave.slaveName} has been given a standard length huge dildo for her pussy.` + slave.vaginalAccessory = "huge dildo" + } else { + r += `<br>${slave.slaveName} has been given a` + if (slave.vagina >= 2) + r += `massive and oversized dildo to permanently gape her cunt.` + else { + r += `long, large dildo for her pussy, since it must be stretched before it can accommodate a huge one.` + slave.vaginalAccessory = "long, large dildo" + } + } + case "none": + r += `<br>${slave.slaveName} has been instructed not to use a vaginal accessory.` + break + + default: + r += `<br>${slave.slaveName} has been given a slave.vaginalAccessory for her pussy.` + break + } + } + } + } + + function ProcessDickAccessories(slave, rule) { + // apply dick accessories to slave + if ((slave.dick > 0)) { + if (slave.anus == 0) { + if ((rule.aVirginDickAccessory !== undefined) && (rule.aVirginDickAccessory !== "no default setting")) { + if ((slave.dickAccessory !== rule.aVirginDickAccessory)) { + slave.dickAccessory = rule.aVirginDickAccessory + if (slave.dickAccessory == "none") + r += `<br>${slave.slaveName} is a virgin and has been instructed not to wear a dick accessory.` + else + r += `<br>${slave.slaveName} is a virgin and has been given a ${slave.dickAccessory} accessory for her cock.` + } + } + } else { + if ((rule.dickAccessory !== undefined) && (rule.dickAccessory !== "no default setting")) { + if ((slave.dickAccessory !== rule.dickAccessory)) { + slave.dickAccessory = rule.dickAccessory + if (slave.dickAccessory == "none") + r += `<br>${slave.slaveName} has been instructed not to wear a dick accessory.` + else + r += `<br>${slave.slaveName} has been given a slave.dickAccessory accessory for her cock.` + } + } + } + } + } + + function ProcessShoes(slave, rule) { + // apply shoes to slave + if ((rule.shoes !== undefined) && (rule.shoes !== "no default setting")) { + if ((slave.shoes !== rule.shoes)) { + if ((slave.amp != 1)) { + slave.shoes = rule.shoes + r += `<br>${slave.slaveName}'s shoes have been set to ${slave.shoes}.` + } + } + } + } + + function ProcessBellyAccessories(slave, rule) { + // apply belly accessories to slave + if ((rule.bellyAccessory !== undefined) && (rule.bellyAccessory !== "no default setting")) { + if ((slave.bellyAccessory !== rule.bellyAccessory)) { + if ((slave.belly >= 1500 || slave.weight >= 130) && setup.fakeBellies.includes(rule.bellyAccessory)) { + r += `<br>${slave.slaveName}'s natural belly is too big to properly wear an empathy belly.` + slave.bellyAccessory = "none" + } else { + slave.bellyAccessory = rule.bellyAccessory + if (slave.bellyAccessory == "none") + r += `<br>${slave.slaveName} has been instructed not to wear a torso accessory.` + else + r += `<br>${slave.slaveName} has been given ${slave.bellyAccessory} to wear.` + } + } + } + } + + function ProcessAnalAccessories(slave, rule) { + // apply buttplugs to slave + if ((slave.vaginalAccessory !== "anal chastity") && (slave.vaginalAccessory !== "combined chastity") && (slave.dickAccessory !== "anal chastity") && (slave.dickAccessory !== "combined chastity")) { + if (slave.anus == 0) + ProcessAnalVirginButtplugs(slave, rule) + else + ProcessNonVirginButtplugs(slave, rule) + } + } + + function ProcessAnalVirginButtplugs(slave, rule) { + // apply buttplugs to virgins + if ((rule.aVirginButtplug !== undefined) && (rule.aVirginButtplug !== "no default setting")) { + if ((slave.buttplug !== rule.aVirginButtplug)) { + slave.buttplug = rule.aVirginButtplug + switch (slave.buttplug) { + case "huge plug": + r += `<br>${slave.slaveName} is an anal virgin and has been given a` + if ((slave.anus >= 2)) + r += `massive plug to permanently gape her asshole.` + else { + slave.buttplug = "large plug" + r += `large buttplug for her asshole, since it must be stretched before it can accommodate a huge one.` + } + break + + case "long plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length plug for her anus.` + slave.buttplug = "plug" + } + break + + case "long, large plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length large plug for her anus.` + slave.buttplug = "large plug" + } + break + + case "long, huge plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so the anal virgin ${slave.slaveName} has been given a standard length huge plug for her anus.` + slave.buttplug = "huge plug" + } else { + r += `<br>slave.slaveName is an anal virgin and has been given a` + if (slave.anus >= 2) + r += `massive and oversized plug to permanently gape her asshole.` + else { + r += `long, large buttplug for her asshole, since it must be stretched before it can accommodate a huge one.` + slave.buttplug = "long, large plug" + } + } + break + + case "none": + r += `<br>${slave.slaveName} is an anal virgin and has been instructed not to use an anal accessory.` + break + + default: + r += `<br>${slave.slaveName} is an anal virgin and has been given a slave.buttplug for her asshole.` + break + } + } + } + } + + function ProcessNonVirginButtplugs(slave, rule) { + // apply buttplugs to non-virgins + if ((rule.buttplug !== undefined) && (rule.buttplug !== "no default setting")) { + if ((slave.buttplug !== rule.buttplug)) { + slave.buttplug = rule.buttplug + switch (slave.buttplug) { + case "huge plug": + r += `<br>${slave.slaveName} has been given a` + if ((slave.anus >= 2)) + r += `massive plug to permanently gape her asshole.` + else { + slave.buttplug = "large plug" + r += `large buttplug for her asshole, since it must be stretched before it can accommodate a huge one.` + } + break + case "long plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length plug for her anus.` + slave.buttplug = "plug" + } + break + + case "long, large plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length large plug for her anus.` + slave.buttplug = "large plug" + } + break + + case "long, huge plug": + if (V.activeSlave.breedingMark == 1) { + r += `<br>Breeding regulations forbid the use of anal plugs that can damage a growing fetus on marked slaves, so ${slave.slaveName} has been given a standard length huge plug for her anus.` + slave.buttplug = "huge plug" + } else { + r += `<br>${slave.slaveName} has been given a` + if (slave.anus >= 2) + r += `massive and oversized plug to permanently gape her asshole.` + else { + r += `long, large buttplug for her asshole, since it must be stretched before it can accommodate a huge one.` + slave.buttplug = "long, large plug" + } + } + break + + case "none": + r += `<br>${slave.slaveName} has been instructed not to use an anal accessory.` + break + + default: + r += `<br>${slave.slaveName} has been given a slave.buttplug for her asshole.` + break + } + } + } + } + + function ProcessBellyImplant(slave, rule) { + // TODO move whatever belly implant changing does to here // Here is belly implant size control, it's used in Surgery Degradation passage to setup devotion and trust changes. <<if (def _combinedRule.bellyImplantVol) && $args[0].bellyImplant >= 0 && _combinedRule.bellyImplantVol >= 0>> <<set _tmpNextL = $nextLink, _tmpNextB = $nextButton, _as = $activeSlave, $activeSlave = $args[0]>> // this is hack to use Surgery Degradation without breaking normal End Week routine @@ -691,7 +792,18 @@ window.DefaultRules = (function() { $args[0].slaveName is not healthy enough to safely adjust her belly implant. <</if>> <<set $nextLink = _tmpNextL, $nextButton = _tmpNextB, $activeSlave = _as>> - <</if>> + <</if>> + } + + return DefaultRules +})() + +// +// Call as <<DefaultRules SlaveObject>> +// Does not use or modify $currentRule +/* +<<widget "DefaultRules">> + <<if (def _combinedRule.clothes)>> // < -------------------------------------------------------------------------Drug Assignment -------------------------------------------------------------------------------------------> // Fertility