diff --git a/devTools/FC.d.ts b/devTools/FC.d.ts index eb7ac658dbd241587293bbdc19858b57ad70f37c..3c0e94debd2d951332bef19dc578c63a179060d2 100644 --- a/devTools/FC.d.ts +++ b/devTools/FC.d.ts @@ -94,6 +94,7 @@ declare namespace App { clothes: string; collar: string; shoes: string; + armAccessory: string; legAccessory: string; chastityVagina: number; chastityAnus: number; diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt index 737dc61e8debaab43203f1d5555d5604df965cd4..f74b930ff967d7de23f3c0ed1dd92687d407d6fb 100644 --- a/slave variables documentation - Pregmod.txt +++ b/slave variables documentation - Pregmod.txt @@ -2777,8 +2777,16 @@ whether the slave has a chastity device on their vagina 0 - no 1 - yes +armAccessory: + +may accept strings, use at own risk +"none" +"hand gloves" +"elbow gloves" + legAccessory: +may accept strings, use at own risk "none" "short stockings" "long stockings" diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw index 4b5c8484504a5843a7d0bdd3de04ee793a37bcc8..3269fc9b5483c54a380c57c9f327083fcd3c8288 100644 --- a/src/facilities/nursery/childInteract.tw +++ b/src/facilities/nursery/childInteract.tw @@ -477,7 +477,14 @@ | <<link "Neck corset">><<set $activeChild.collar = "neck corset">><<replace "#collar">>$activeChild.collar<</replace>><</link>> | <<link "Porcelain mask">><<set $activeChild.collar = "porcelain mask">><<replace "#collar">>$activeChild.collar<</replace>><</link>> -<<if $activeChild.amp != 1>> +<<if $activeChild.missingArms != 3>> + <br>Arm accessory: ''<span id="armAccessory">$activeChild.armAccessory</span>.'' + <<link "None">><<set $activeChild.armAccessory = "none">><<replace "#armAccessory">>$activeChild.armAccessory<</replace>><</link>> + | <<link "Hand Gloves">><<set $activeChild.armAccessory = "hand gloves">><<replace "#armAccessory">>$activeChild.armAccessory<</replace>><</link>> + | <<link "Elbow Gloves">><<set $activeChild.armAccessory = "elbow gloves">><<replace "#armAccessory">>$activeChild.armAccessory<</replace>><</link>> +<</if>> + +<<if $activeChild.missingLegs != 3>> <br>Shoes: ''<span id="shoes">$activeChild.shoes</span>.'' <<link "Go barefoot">><<set $activeChild.shoes = "none">><<replace "#shoes">>$activeChild.shoes<</replace>><</link>> | <<link "Flats">><<set $activeChild.shoes = "flats">><<replace "#shoes">>$activeChild.shoes<</replace>><</link>> @@ -485,9 +492,7 @@ | <<link "Pumps">><<set $activeChild.shoes = "pumps">><<replace "#shoes">>$activeChild.shoes<</replace>><</link>> | <<link "Thigh boots">><<set $activeChild.shoes = "boots">><<replace "#shoes">>$activeChild.shoes<</replace>><</link>> | <<link "Painfully extreme heels">><<set $activeChild.shoes = "extreme heels">><<replace "#shoes">>$activeChild.shoes<</replace>><</link>> -<</if>> -<<if $activeChild.amp != 1>> <br>Leg accessory: ''<span id="legAccessory">$activeChild.legAccessory</span>.'' <<link "None">><<set $activeChild.legAccessory = "none">><<replace "#legAccessory">>$activeChild.legAccessory<</replace>><</link>> | <<link "Short Stockings">><<set $activeChild.legAccessory = "short stockings">><<replace "#legAccessory">>$activeChild.legAccessory<</replace>><</link>> diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index 4bfa944f57820701eab0bab1d5b45608197c83cc..21c4722a39db5759634a2693b7999f737feabaed 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -33,6 +33,7 @@ window.DefaultRules = (function() { ProcessChastity(slave, rule); ProcessShoes(slave, rule); ProcessBellyAccessories(slave, rule); + ProcessArmAccessory(slave, rule); ProcessLegAccessory(slave, rule); } ProcessBellyImplant(slave, rule); @@ -929,6 +930,17 @@ window.DefaultRules = (function() { } } + /** + * @param {App.Entity.SlaveState} slave + * @param {object} rule + */ + function ProcessArmAccessory(slave, rule) { + if (rule.armAccessory !== undefined && rule.armAccessory !== null && slave.amp !== 1 && slave.armAccessory !== rule.armAccessory) { + slave.armAccessory = rule.armAccessory; + r += `<br>${slave.slaveName}'s arm accessory was set to ${rule.armAccessory}.`; + } + } + /** * @param {App.Entity.SlaveState} slave * @param {object} rule diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js index 8bc0569bc62397035dc3afa5ad40d8eba285391a..bf21ac6e685b060be72fe87b638637a0f32c05e7 100644 --- a/src/js/SlaveState.js +++ b/src/js/SlaveState.js @@ -1763,6 +1763,13 @@ App.Entity.SlaveState = class SlaveState { * 1 - yes */ this.chastityVagina = 0; + /** + * may accept strings, use at own risk + * * "none" + * * "hand gloves" + * * "elbow gloves" + */ + this.armAccessory = "none"; /** * may accept strings, use at own risk * * "none" diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js index 1da0b6d9ea36550b2f8765ca78012a6d72c784f6..fca5ae49d9c41da666595fbdf47179803116a4ee 100644 --- a/src/js/datatypeCleanupJS.js +++ b/src/js/datatypeCleanupJS.js @@ -702,6 +702,9 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() { if (typeof slave.dickAccessory !== "string") { slave.dickAccessory = "none"; } + if (typeof slave.armAccessory !== "string") { + slave.armAccessory = "none"; + } if (typeof slave.legAccessory !== "string") { slave.legAccessory = "none"; } @@ -1299,6 +1302,9 @@ window.childCosmeticsDatatypeCleanup = function childCosmeticsDatatypeCleanup(ch if (typeof child.dickAccessory !== "string") { child.dickAccessory = "none"; } + if (typeof child.armAccessory !== "string") { + child.armAccessory = "none"; + } if (typeof child.legAccessory !== "string") { child.legAccessory = "none"; } @@ -2026,7 +2032,7 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() { "drugs", "curatives", "aphrodisiacs", "choosesOwnClothes", "clothes", "collar", "shoes", "makeup", "nails", - "vaginalAccessory", "dickAccessory", "legAccessory", + "vaginalAccessory", "dickAccessory", "armAccessory", "legAccessory", "buttplug", "buttplugAttachment", "fetishKnown", "rudeTitle", diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js index c9a9606a856faccaa585c5527f97743bc38cb94f..2bff5a14ce2b81c0df411cf9901114a1362f4fcd 100644 --- a/src/js/rulesAssistant.js +++ b/src/js/rulesAssistant.js @@ -277,6 +277,7 @@ App.RA.newRule = function() { clothes: null, collar: null, shoes: null, + armAccessory: null, legAccessory: null, chastityVagina: null, chastityAnus: null, diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js index caef5a7ec8f548ac6b40ea165c036111f6c3f0ce..de0e75b66ac1a9029f111e3f11b752d61e80aa6c 100644 --- a/src/js/rulesAssistantOptions.js +++ b/src/js/rulesAssistantOptions.js @@ -1236,6 +1236,7 @@ window.rulesAssistantOptions = (function() { this.appendChild(new CollarList()); this.appendChild(new ShoeList()); this.appendChild(new CorsetList()); + this.appendChild(new GlovesList()); this.appendChild(new LeggingsList()); this.appendChild(new VagChastityList()); this.appendChild(new VagAccVirginsList()); @@ -1616,6 +1617,19 @@ window.rulesAssistantOptions = (function() { } } + class GlovesList extends ListSelector { + constructor() { + const items = [ + ["none"], + ["hand gloves"], + ["elbow gloves"], + ]; + super("Arm accessory", items, true, false, true); + this.setValue(current_rule.set.armAccessory); + this.onchange = (value) => current_rule.set.armAccessory = value; + } + } + class LeggingsList extends ListSelector { constructor() { const items = [ diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index ca8b47422836521d2ccea04bdd04d3c82dafa417..599963c60ff1e666e7df44717da77dcf8045f907 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -290,10 +290,11 @@ window.SlaveSummaryUncached = (function() { long_clothes(slave); long_collar(slave); long_belly(slave); - if (slave.amp !== 1) { - long_legs(slave); + if (slave.missingArms !== 3) { + long_arms(slave); } - if (canWalk(slave)) { + if (slave.missingLegs !== 3) { + long_legs(slave); long_shoes(slave); } long_chastity(slave); @@ -4772,6 +4773,18 @@ window.SlaveSummaryUncached = (function() { } r += " "; } + + /** + * @param {App.Entity.SlaveState} slave + */ + function long_arms(slave) { + if (slave.armAccessory === "hand gloves") { + r += `Hand gloves.`; + } else if (slave.armAccessory === "elbow gloves") { + r += `Elbow gloves.`; + } + r += " "; + } /** * @param {App.Entity.SlaveState} slave diff --git a/src/js/surgery.js b/src/js/surgery.js index dc22c1c65d6a03b0487df26a0949d181bb85c4b1..2f05a47896010c3dca9c48d7ce69f1f081edb268 100644 --- a/src/js/surgery.js +++ b/src/js/surgery.js @@ -478,6 +478,7 @@ window.surgeryAmp = function(slave, part) { delete slave.brand["left hand"]; // slave.armsTat = 0; // slave.nails = 0; + slave.armAccessory = "none"; slave.health -= 10; } else if (part === "right arm") { delete slave.brand["right upper arm"]; @@ -486,6 +487,7 @@ window.surgeryAmp = function(slave, part) { delete slave.brand["right hand"]; // slave.armsTat = 0; // slave.nails = 0; + slave.armAccessory = "none"; slave.health -= 10; } else if (part === "left leg") { delete slave.brand["left thigh"]; diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw index 8c209a84f32342f940c43c8b574c9b63aaa5010d..227b8b40ade93850bbbe8188fe1572f9b47ba31e 100644 --- a/src/npc/uploadSlave.tw +++ b/src/npc/uploadSlave.tw @@ -117,6 +117,7 @@ broodmotherCountDown: $activeSlave.broodmotherCountDown, labor: $activeSlave.labor, births: $activeSlave.counter.births, cSec: $activeSlave.cSec, +armAccessory: "none", legAccessory: "none", bellyAccessory: "none", labia: $activeSlave.labia, diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index d4b6f964df1729836c27419eb02ca4fe44cd1129..b679f216c88dc0cc567a87a7b96727ca27227eea 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -189,7 +189,7 @@ <</if>> /* I don't trust these */ <<if $slaves[_i].missingArms == 3 && $slaves[_i].amp == 1>> - <<set $slaves[_i].armsTat = 0, $slaves[_i].nails = 0>> + <<set $slaves[_i].armsTat = 0, $slaves[_i].nails = 0, $slaves[_i].armAccessory = "none">> <</if>> <<if $slaves[_i].missingLegs == 3 && $slaves[_i].amp == 1>> <<set $slaves[_i].heels = 0, $slaves[_i].shoes = "none", $slaves[_i].legAccessory = "none", $slaves[_i].legsTat = 0, $slaves[_i].heightImplant = 0>> diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw index 24221d5b3eb763e3c90f4b0b2c3a804a96657921..57afe35407a9ee4a0a471fd31bfec72bf855a612 100644 --- a/src/uncategorized/reShelterInspection.tw +++ b/src/uncategorized/reShelterInspection.tw @@ -183,7 +183,7 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema <<run cashX(forceNeg($contractCost/2), "slaveTransfer", $activeSlave)>> <<replace "#result">> You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in. The inspector has a single moment to stiffen in shock at the sight before _he2 stiffens involuntarily due to the security drone tasing _him2 unconscious. It takes a few credits here and there to circumvent the Shelter's various legal and contractual defenses to prevent slaveowners from doing exactly what you're doing, but you finish the day richer by one more Fuckdoll. Odds are _he2 wants to be defiant, but the suit works perfectly and leaves _him2 no outlet to make _his2 thoughts known. - <<set $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels",$activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.buttplug="none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1>> + <<set $activeSlave.toyHole="all her holes", $activeSlave.pubicHStyle="waxed", $activeSlave.livingRules="spare", $activeSlave.speechRules="restrictive", $activeSlave.releaseRules="restrictive", $activeSlave.relationshipRules="restrictive", $activeSlave.fuckdoll=1, $activeSlave.choosesOwnClothes=0, $activeSlave.clothes="a Fuckdoll suit", $activeSlave.collar="none", $activeSlave.shoes="heels", $activeSlave.armAccessory="none", $activeSlave.legAccessory="none", $activeSlave.vaginalAccessory="none", $activeSlave.vaginalAttachment="none", $activeSlave.dickAccessory="none", $activeSlave.buttplug="none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.attrKnown=1, $activeSlave.fetishKnown=1>> <<set $shelterAbuse += 10>> <<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */ <<run newSlave($activeSlave)>> /* skip New Slave Intro */ diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 71dc07d3c9b0939eab2f57e72ea65ddee8c25b11..5b41c5de7462a1dbd58ed824e75e0564ac0489bf 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -1747,7 +1747,7 @@ Work on $him structurally: <<if $activeSlave.fuckdoll == 0>> <br>$He is a normal sex slave, not a living sex toy. <<if $activeSlave.indentureRestrictions < 1 && ($activeSlave.breedingMark != 1 || $propOutcome == 0)>> - [[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget = 0, $activeSlave.sentence = 0, $activeSlave.training = 0, $activeSlave.toyHole = "all her holes", $activeSlave.pubicHStyle = "waxed", $activeSlave.livingRules = "spare", $activeSlave.speechRules = "restrictive", $activeSlave.releaseRules = "restrictive", $activeSlave.relationshipRules = "restrictive", $activeSlave.fuckdoll = 1, $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "a Fuckdoll suit", $activeSlave.collar = "none", $activeSlave.shoes = "heels",$activeSlave.legAccessory = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.buttplug = "none", $activeSlave.attrKnown = 1, $activeSlave.fetishKnown = 1, $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0, $activeSlave.milkSource = 0, $activeSlave.cumSource = 0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him// + [[Encase in a Fuckdoll suit|Surgery Degradation][$activeSlave.subTarget = 0, $activeSlave.sentence = 0, $activeSlave.training = 0, $activeSlave.toyHole = "all her holes", $activeSlave.pubicHStyle = "waxed", $activeSlave.livingRules = "spare", $activeSlave.speechRules = "restrictive", $activeSlave.releaseRules = "restrictive", $activeSlave.relationshipRules = "restrictive", $activeSlave.fuckdoll = 1, $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "a Fuckdoll suit", $activeSlave.collar = "none", $activeSlave.shoes = "heels",$activeSlave.armAccessory = "none",$activeSlave.legAccessory = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.vaginalAttachment = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.buttplug = "none", $activeSlave.attrKnown = 1, $activeSlave.fetishKnown = 1, $activeSlave.inflation = 0, $activeSlave.inflationType = "none", $activeSlave.inflationMethod = 0, $activeSlave.milkSource = 0, $activeSlave.cumSource = 0, $surgeryType = "fuckdoll"]] //This will greatly restrict $him// <</if>> <<else>> <br>$He is encased in a Fuckdoll suit. [["Extract " + $him|Surgery Degradation][$activeSlave.fuckdoll = 0, $activeSlave.clothes = "no clothing", $activeSlave.shoes = "none", $surgeryType = "fuckdollExtraction"]] diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 56eeeac52f5ee57dde414b034160ba1ca5b54781..74e2c162a706c1a9beeebf957ab5d67dac2c865c 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -848,8 +848,15 @@ | <<link "Bit gag">><<set $activeSlave.collar = "bit gag">><<replace "#collar">>$activeSlave.collar<</replace>><</link>> | <<link "Neck corset">><<set $activeSlave.collar = "neck corset">><<replace "#collar">>$activeSlave.collar<</replace>><</link>> | <<link "Porcelain mask">><<set $activeSlave.collar = "porcelain mask">><<replace "#collar">>$activeSlave.collar<</replace>><</link>> + + <<if $activeSlave.missingArms != 3>> + <br>Arm accessory: ''<span id="armAccessory">$activeSlave.armAccessory</span>.'' + <<link "None">><<set $activeSlave.armAccessory = "none">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> + | <<link "Hand gloves">><<set $activeSlave.armAccessory = "hand gloves">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> + | <<link "Elbow gloves">><<set $activeSlave.armAccessory = "elbow gloves">><<replace "#armAccessory">>$activeSlave.armAccessory<</replace>><</link>> + <</if>> - <<if $activeSlave.amp != 1>> + <<if $activeSlave.missingLegs != 3>> <br>Shoes: ''<span id="shoes">$activeSlave.shoes</span>.'' <<link "Go barefoot">><<set $activeSlave.shoes = "none">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> | <<link "Flats">><<set $activeSlave.shoes = "flats">><<replace "#shoes">>$activeSlave.shoes<</replace>><</link>> diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw index 8115b40bc23f5a2be2a08c764928b74f99a64480..ae0f622c11b1f04f2f431fe95b6d01e06be5d905 100644 --- a/src/uncategorized/slaveStats.tw +++ b/src/uncategorized/slaveStats.tw @@ -251,6 +251,7 @@ slaveName: $activeSlave.slaveName /* TODO: figure out why this is being inden <br>vaginalAccessory: $activeSlave.vaginalAccessory <br>vaginalAttachment: $activeSlave.vaginalAttachment <br>dickAccessory: $activeSlave.dickAccessory +<br>armAccessory: $activeSlave.armAccessory <br>legAccessory: $activeSlave.legAccessory <br>buttplug: $activeSlave.buttplug <br>buttplugAttachment: $activeSlave.buttplugAttachment diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw index 9c4b5beb2377ef7cf4fd7780ee66522578d83047..795ba1a77d20af3fcb8ced311b0253eb51088c9d 100644 --- a/src/uncategorized/wardrobeUse.tw +++ b/src/uncategorized/wardrobeUse.tw @@ -344,7 +344,23 @@ Collar: ''$activeSlave.collar.'' <</if>> <</if>> -<<if $activeSlave.amp != 1>> +<<if $activeSlave.missingArms != 3>> + <br> + Hands and arms: ''$activeSlave.armAccessory'' + <br> + //$He is<<if $activeSlave.armAccessory == "none">>n't wearing anything on $his arms.<<else>> wearing <<= $activeSlave.armAccessory>>.<</if>>// + <br> + + <<options $activeSlave.armAccessory>> + Gloves: + <<option "none" "None">> + <<option "hand gloves" "Hand Gloves">> + <<option "elbow gloves" "Elbow Gloves">> + <</options>> + +<</if>> + +<<if $activeSlave.missingLegs != 3>> <br> Feet and legs: ''$activeSlave.shoes'' <<if $activeSlave.legAccessory != "none">> with ''$activeSlave.legAccessory''<</if>>