diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css index 99a23af72c15df74833beeb920c99ff775bd56d1..6df18302381e551ba35766130030421d7bf9f36e 100644 --- a/src/gui/css/mainStyleSheet.css +++ b/src/gui/css/mainStyleSheet.css @@ -381,7 +381,7 @@ h3 + p { margin: 0 auto; } -.major-link { +.major-link, .bold { font-weight: bold; } diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js index cd56cffbf022fd13c29f46cf87f59ab55f504dbb..257a61c5e15568f7fe7a9eceadeed03eedc5a6ff 100644 --- a/src/interaction/slaveInteract.js +++ b/src/interaction/slaveInteract.js @@ -1708,7 +1708,7 @@ App.UI.SlaveInteract.incubator = function(slave) { if (V.incubator > 0) { if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") { - if ((slave.assignment === Job.DAIRY && V.dairyPregSetting > 0) || (slave.assignment === Job.FARMYARD && V.farmyardBreeding > 0)) {} else { + if ((slave.assignment === Job.DAIRY && V.dairyPregSetting > 0) || (slave.assignment === Job.FARMYARD && V.farmyardBreeding > 0)) { } else { let title = document.createElement('div'); let link = document.createElement('div'); link.className = "choices"; @@ -1878,7 +1878,7 @@ App.UI.SlaveInteract.nursery = function(slave) { let _reservedNursery = WombReserveCount(slave, "nursery"); let _WL = slave.womb.length; if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") { - if ((slave.assignment === Job.DAIRY && V.dairyPregSetting > 0) || (slave.assignment === Job.FARMYARD && V.farmyardBreeding > 0)) {} else { + if ((slave.assignment === Job.DAIRY && V.dairyPregSetting > 0) || (slave.assignment === Job.FARMYARD && V.farmyardBreeding > 0)) { } else { let title = document.createElement('div'); let link = document.createElement('div'); link.className = "choices"; @@ -2030,118 +2030,408 @@ App.UI.SlaveInteract.nursery = function(slave) { return jQuery('#nursery').empty().append(el); }; -App.UI.SlaveInteract.smartSettings = function(slave) { - let el = document.createElement('div'); - - const {His} = getPronouns(slave); - const bodyPart = []; - const BDSM = []; - const gender = []; - const level = []; - - if (slave.clitPiercing === 3 || slave.vaginalAccessory === "smart bullet vibrator") { - // Level - level.push({text: `No sex`, updateSlave: {clitSetting: `none`}}); - level.push({text: `All sex`, updateSlave: {clitSetting: `all`}}); - - // Body part - bodyPart.push({text: `Vanilla`, updateSlave: {clitSetting: `vanilla`}}); - bodyPart.push({text: `Oral`, updateSlave: {clitSetting: `oral`}}); - bodyPart.push({text: `Anal`, updateSlave: {clitSetting: `anal`}}); - bodyPart.push({text: `Boobs`, updateSlave: {clitSetting: `boobs`}}); - if (V.seePreg !== 0) { - bodyPart.push({text: `Preg`, updateSlave: {clitSetting: `pregnancy`}}); - } - // BDSM - BDSM.push({text: `Sub`, updateSlave: {clitSetting: `submissive`}}); - BDSM.push({text: `Dom`, updateSlave: {clitSetting: `dom`}}); - BDSM.push({text: `Masochism`, updateSlave: {clitSetting: `masochist`}}); - BDSM.push({text: `Sadism`, updateSlave: {clitSetting: `sadist`}}); - BDSM.push({text: `Humiliation`, updateSlave: {clitSetting: `humiliation`}}); - - // Gender - gender.push({text: `Men`, updateSlave: {clitSetting: `men`}}); - gender.push({text: `Women`, updateSlave: {clitSetting: `women`}}); - gender.push({text: `Anti-men`, updateSlave: {clitSetting: `anti-men`}}); - gender.push({text: `Anti-women`, updateSlave: {clitSetting: `anti-women`}}); - } - - let label = null; - if (slave.clitPiercing === 3) { - if (slave.dick < 1) { - label = `${His} smart clit piercing `; - if (slave.vaginalAccessory === "smart bullet vibrator") { - label += `and smart bullet vibrator are `; +App.UI.SlaveInteract.rules = function(slave) { + const frag = new DocumentFragment(); + let p; + let div; + let array; + let choices; + const { + he, him, his, hers, himself, boy, He, His + } = getPronouns(slave); + if (V.seePreg !== 0) { + p = document.createElement('p'); + if (V.universalRulesImpregnation === "HG") { + if (slave.HGExclude === 0) { + p.append(`Will be bred by the Head Girl when fertile. `); + p.append( + App.UI.DOM.link( + `Exempt ${him}`, + () => { + slave.HGExclude = 1; + App.UI.SlaveInteract.rules(slave); + } + ) + ); } else { - label += `is `; + p.append(`Will not be bred by the Head Girl when fertile. `); + p.append( + App.UI.DOM.link( + `Include ${him}`, + () => { + slave.HGExclude = 0; + App.UI.SlaveInteract.rules(slave); + } + ) + ); } - label += `set to: `; - } else { - label = `${His} smart frenulum piercing `; - if (slave.vaginalAccessory === "smart bullet vibrator") { - label += `and smart bullet vibrator are `; + } else if (V.universalRulesImpregnation === "Stud") { + if (slave.StudExclude === 0) { + p.append(`Will be bred by your Stud when fertile. `); + p.append( + App.UI.DOM.link( + `Exempt ${him}`, + () => { + slave.StudExclude = 1; + App.UI.SlaveInteract.rules(slave); + } + ) + ); } else { - label += `is `; + p.append(`Will not be bred by your Stud when fertile. `); + p.append( + App.UI.DOM.link( + `Include ${him}`, + () => { + slave.StudExclude = 0; + App.UI.SlaveInteract.rules(slave); + } + ) + ); } - label += `set to: `; } - } else if (slave.vaginalAccessory === "smart bullet vibrator") { - label = `${His} smart bullet vibe is set to: `; - } - if (label) { - let title = App.UI.DOM.appendNewElement('div', el, label); - let selected = App.UI.DOM.appendNewElement('span', title, `${slave.clitSetting}. `); - selected.style.fontWeight = "bold"; + frag.append(p); } + p = document.createElement('p'); - App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Level", level, slave); - App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Body part", bodyPart, slave); - App.UI.SlaveInteract.appendLabeledChoiceRow(el, "BDSM", BDSM, slave); - App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Gender", gender, slave); + array = []; + if (slave.useRulesAssistant === 0) { + App.UI.DOM.appendNewElement("span", p, `Not subject `, ["bold", "gray"]); + App.UI.DOM.appendNewElement("span", p, `to the Rules Assistant.`, "gray"); + array.push( + App.UI.DOM.link( + `Include ${him}`, + () => { + slave.useRulesAssistant = 1; + App.UI.SlaveInteract.rules(slave); + } + ) + ); + } else { + App.UI.DOM.appendNewElement("h2", p, `Rules Assistant`); + + if (slave.hasOwnProperty("currentRules") && slave.currentRules.length > 0) { + const ul = document.createElement("UL"); + ul.style.margin = 0; + V.defaultRules.filter( + x => ruleApplied(slave, x) + ).map( + x => { + const li = document.createElement('li'); + li.append(x.name); + ul.append(li); + } + ); - return jQuery('#smartSettings').empty().append(el); -}; + // set up rules display + if ($("ul").has("li").length ) { + App.UI.DOM.appendNewElement("div", p, `Rules applied: `); + p.append(ul); + } else { + App.UI.DOM.appendNewElement("div", p, `There are no rules that would apply to ${him}.`, "gray"); + } + } + array.push( + App.UI.DOM.link( + `Apply rules`, + () => { + DefaultRules(slave); + App.UI.SlaveInteract.rules(slave); + } + ) + ); + array.push( + App.UI.DOM.link( + `Exempt ${him}`, + () => { + slave.useRulesAssistant = 0; + App.UI.SlaveInteract.rules(slave); + } + ) + ); + array.push(App.UI.DOM.passageLink("Rules Assistant Options", "Rules Assistant")); + } + p.append(App.UI.DOM.generateLinksStrip(array)); + frag.append(p); -App.UI.SlaveInteract.orgasm = function(slave) { - let el = document.createElement('div'); + p = document.createElement('p'); + App.UI.DOM.appendNewElement("h2", p, `Other Rules`); - let title = document.createElement('div'); - title.textContent = `Non-assignment orgasm rules: `; - el.append(title); + // Living + if (slave.fuckdoll > 0) { + // Rules have little meaning for living sex toys// + } else { + penthouseCensus(); + p.append("Living standard: "); + App.UI.DOM.appendNewElement("span", p, slave.rules.living, "bold"); + } + if (setup.facilityCareers.includes(slave.assignment)) { + // ${His} living conditions are managed by ${his} assignment.// + } else if ((slave.assignment === "be your Head Girl") && (V.HGSuite === 1)) { + // ${He} has ${his} own little luxurious room in the penthouse with everything ${he} needs to be a proper Head Girl.// + } else if ((slave.assignment === "guard you") && (V.dojo > 1)) { + // ${He} has a comfortable room in the armory to call ${his} own.// + } else { + choices = [ + {value: "spare"}, + {value: "normal"}, + ]; + if (V.roomsPopulation <= V.rooms - 0.5) { + choices.push({value: "luxurious"}); + } else { + choices.push(App.UI.DOM.disabledLink(`Luxurious`, "No luxurious rooms available")); + } + + p.append(listChoices(choices, "living")); + } + + // Rest + if (V.cheatMode) { + if (["be a servant", "get milked", "please you", "serve in the club", "serve the public", "whore", "work as a farmhand", "work in the brothel", "work in the dairy", "work a glory hole"].includes(slave.assignment)) { + div = document.createElement("div"); + div.append("Sleep rules: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.rest, "bold"); + choices = [ + {value: "none"}, + {value: "cruel"}, + {value: "restrictive"}, + {value: "permissive"}, + {value: "mandatory"}, + ]; + div.append(listChoices(choices, "rest")); + p.append(div); + } + } + + // Punishment + div = document.createElement("div"); + div.append("Typical punishment: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.punishment, "bold"); + choices = [ + {value: "confinement"}, + {value: "whipping"}, + {value: "orgasm"}, + {value: "chastity"}, + {value: "situational"}, + ]; + div.append(listChoices(choices, "punishment")); + p.append(div); + + // Reward + div = document.createElement("div"); + div.append("Typical reward: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.reward, "bold"); + choices = [ + {value: "relaxation"}, + {value: "drugs"}, + {value: "orgasm"}, + {value: "situational"}, + ]; + div.append(listChoices(choices, "reward")); + p.append(div); + + // Lactation + if (slave.lactation !== 2) { + div = document.createElement("div"); + div.append("Lactation maintenance: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.lactation, "bold"); + choices = [ + { + title: "Left alone", + value: "none", + }, + ]; - makeLinks("Masturbation", "rules.release.masturbation"); - makeLinks("Partner", "rules.release.partner"); - makeLinks("Family", "rules.release.family"); - makeLinks("Other slaves", "rules.release.slaves"); - makeLinks("Master", "rules.release.master", true); + if (slave.lactation === 0) { + choice.push( + { + title: "Induce lactation", + value: "induce", + } + ); + } else { + choice.push( + { + title: "Maintain lactation", + value: "maintain", + } + ); + } + div.append(listChoices(choices, "lactation")); + p.append(div); + } - function makeLinks(text, setting, master=false) { - const options = - [{text: master ? `Grant` : `Allow`, updateSlave: {[setting]: 1}}, - {text: master ? `Deny` : `Forbid`, updateSlave: {[setting]: 0}}]; + p.append(orgasm(slave)); - let links = document.createElement('div'); - links.append(`${text}: `); - links.append(status(_.get(slave, setting), master)); - links.appendChild(App.UI.SlaveInteract.generateRows(options, slave)); - links.className = "choices"; - el.append(links); + if (slave.voice !== 0) { + div = document.createElement("div"); + div.append("Speech rules: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.speech, "bold"); + choices = [ + {value: "restrictive"}, + {value: "permissive"}, + ]; + if (slave.accent > 0 && slave.accent < 4) { + choices.push( + {value: "accent elimination"}, + ); + } else if (slave.accent > 3) { + choices.push( + {value: "language lessons"}, + ); + } + div.append(listChoices(choices, "speech")); + p.append(div); + } + + div = document.createElement("div"); + div.append("Relationship rules: "); + App.UI.DOM.appendNewElement("span", div, slave.rules.relationship, "bold"); + choices = [ + {value: "restrictive"}, + {value: "just friends"}, + {value: "permissive"}, + ]; + div.append(listChoices(choices, "relationship")); + p.append(div); + + p.append(smartSettings(slave)); + frag.append(p); + return jQuery('#rules').empty().append(frag); + + function listChoices(choices, property) { + const links = []; + for (const c of choices) { + if (typeof c == "object") { + const title = c.title || capFirstChar(c.value); + links.push( + App.UI.DOM.link( + title, + () => { + slave.rules[property] = c.value; + App.UI.SlaveInteract.rules(slave); + } + ) + ); + } else { // node + links.push(c); + } + } + return App.UI.DOM.generateLinksStrip(links); } + function orgasm(slave) { + let el = document.createElement('div'); - function status(setting, master) { - let selected = document.createElement('span'); - selected.style.fontWeight = "bold"; - let text; - if (master) { - text = setting ? "granted" : "denied"; - } else { - text = setting ? "allowed" : "denied"; + let title = document.createElement('div'); + title.textContent = `Non-assignment orgasm rules: `; + el.append(title); + + makeLinks("Masturbation", "rules.release.masturbation"); + makeLinks("Partner", "rules.release.partner"); + makeLinks("Family", "rules.release.family"); + makeLinks("Other slaves", "rules.release.slaves"); + makeLinks("Master", "rules.release.master", true); + + function makeLinks(text, setting, master = false) { + const options = + [{text: master ? `Grant` : `Allow`, updateSlave: {[setting]: 1}}, + {text: master ? `Deny` : `Forbid`, updateSlave: {[setting]: 0}}]; + + let links = document.createElement('div'); + links.append(`${text}: `); + links.append(status(_.get(slave, setting), master)); + links.appendChild(App.UI.SlaveInteract.generateRows(options, slave)); + links.className = "choices"; + el.append(links); + } + + function status(setting, master) { + let selected = document.createElement('span'); + selected.style.fontWeight = "bold"; + let text; + if (master) { + text = setting ? "granted" : "denied"; + } else { + text = setting ? "allowed" : "denied"; + } + selected.textContent = `${text}. `; + return selected; } - selected.textContent = `${text}. `; - return selected; + + return el; } - return jQuery('#orgasm').empty().append(el); + function smartSettings(slave) { + let el = document.createElement('div'); + + const {His} = getPronouns(slave); + const bodyPart = []; + const BDSM = []; + const gender = []; + const level = []; + + if (slave.clitPiercing === 3 || slave.vaginalAccessory === "smart bullet vibrator") { + // Level + level.push({text: `No sex`, updateSlave: {clitSetting: `none`}}); + level.push({text: `All sex`, updateSlave: {clitSetting: `all`}}); + + // Body part + bodyPart.push({text: `Vanilla`, updateSlave: {clitSetting: `vanilla`}}); + bodyPart.push({text: `Oral`, updateSlave: {clitSetting: `oral`}}); + bodyPart.push({text: `Anal`, updateSlave: {clitSetting: `anal`}}); + bodyPart.push({text: `Boobs`, updateSlave: {clitSetting: `boobs`}}); + if (V.seePreg !== 0) { + bodyPart.push({text: `Preg`, updateSlave: {clitSetting: `pregnancy`}}); + } + // BDSM + BDSM.push({text: `Sub`, updateSlave: {clitSetting: `submissive`}}); + BDSM.push({text: `Dom`, updateSlave: {clitSetting: `dom`}}); + BDSM.push({text: `Masochism`, updateSlave: {clitSetting: `masochist`}}); + BDSM.push({text: `Sadism`, updateSlave: {clitSetting: `sadist`}}); + BDSM.push({text: `Humiliation`, updateSlave: {clitSetting: `humiliation`}}); + + // Gender + gender.push({text: `Men`, updateSlave: {clitSetting: `men`}}); + gender.push({text: `Women`, updateSlave: {clitSetting: `women`}}); + gender.push({text: `Anti-men`, updateSlave: {clitSetting: `anti-men`}}); + gender.push({text: `Anti-women`, updateSlave: {clitSetting: `anti-women`}}); + } + + let label = null; + if (slave.clitPiercing === 3) { + if (slave.dick < 1) { + label = `${His} smart clit piercing `; + if (slave.vaginalAccessory === "smart bullet vibrator") { + label += `and smart bullet vibrator are `; + } else { + label += `is `; + } + label += `set to: `; + } else { + label = `${His} smart frenulum piercing `; + if (slave.vaginalAccessory === "smart bullet vibrator") { + label += `and smart bullet vibrator are `; + } else { + label += `is `; + } + label += `set to: `; + } + } else if (slave.vaginalAccessory === "smart bullet vibrator") { + label = `${His} smart bullet vibe is set to: `; + } + if (label) { + let title = App.UI.DOM.appendNewElement('div', el, label); + let selected = App.UI.DOM.appendNewElement('span', title, `${slave.clitSetting}. `); + selected.style.fontWeight = "bold"; + } + + App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Level", level, slave); + App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Body part", bodyPart, slave); + App.UI.SlaveInteract.appendLabeledChoiceRow(el, "BDSM", BDSM, slave); + App.UI.SlaveInteract.appendLabeledChoiceRow(el, "Gender", gender, slave); + + return el; + } }; App.UI.SlaveInteract.custom = (function() { @@ -3080,7 +3370,6 @@ App.UI.SlaveInteract.refreshAll = function(slave) { App.UI.SlaveInteract.diet(slave); App.UI.SlaveInteract.dietBase(slave); App.UI.SlaveInteract.snacks(slave); - App.UI.SlaveInteract.smartSettings(slave); - App.UI.SlaveInteract.orgasm(slave); + App.UI.SlaveInteract.rules(slave); App.UI.SlaveInteract.work(slave); }; diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 23f69235becfe32ed3c72112c6c6c0302c1b521a..46ba3454f437d529763d019fea65732ac0a5acd0 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -259,125 +259,8 @@ <div id="Rules" class="tabcontent"> <div class="content"> - <p> - <<if $seePreg != 0>> - <<if $universalRulesImpregnation == "HG">> - <<if getSlave($AS).HGExclude == 0>> - Will be bred by the Head Girl when fertile. <<link "Exempt $him" "Slave Interact">><<set getSlave($AS).HGExclude = 1>><</link>> - <<else>> - Will not be bred by the Head Girl when fertile. <<link "Include $him" "Slave Interact">><<set getSlave($AS).HGExclude = 0>><</link>> - <</if>> - <<elseif $universalRulesImpregnation == "Stud">> - <<if getSlave($AS).StudExclude == 0>> - Will be bred by your Stud when fertile. <<link "Exempt $him" "Slave Interact">><<set getSlave($AS).StudExclude = 1>><</link>> - <<else>> - Will not be bred by your Stud when fertile. <<link "Include $him" "Slave Interact">><<set getSlave($AS).StudExclude = 0>><</link>> - <</if>> - <</if>> - <</if>> - </p> - - <p> - <<if getSlave($AS).useRulesAssistant == 0>> - <span class="gray"> - ''Not subject'' to the Rules Assistant. - </span> - <<link "Include $him" "Slave Interact">> - <<set getSlave($AS).useRulesAssistant = 1>> - <</link>> - <<else>> - __Rules Assistant:__ [[Rules Assistant Options|Rules Assistant]] - - <<if (def getSlave($AS).currentRules) && (getSlave($AS).currentRules.length > 0)>> - <ul style="margin:0"> - <<= $defaultRules.filter(x => ruleApplied(getSlave($AS), x)).map(x => `<li>Rule "${x.name}" applied</li>`).join(" ") >> - </ul> - <<else>> - | - <</if>> - <span style="font-style:italic"> - <<link "Apply rules">> - <<run DefaultRules(getSlave($AS))>> - <<goto "Slave Interact">> - <</link>> - </span> - | - <<link "Exempt $him" "Slave Interact">> - <<set getSlave($AS).useRulesAssistant = 0>> - <</link>> - <</if>> - </p> - <<if getSlave($AS).fuckdoll > 0>> - //Rules have little meaning for living sex toys// - <<else>> - <<run penthouseCensus()>> - - Living standard: <span id="livingRules" style="font-weight:bold"><<= getSlave($AS).rules.living>></span>. - <<if setup.facilityCareers.includes(getSlave($AS).assignment)>> - //$His living conditions are managed by $his assignment.// - <<elseif (getSlave($AS).assignment == "be your Head Girl") && ($HGSuite == 1)>> - //$He has $his own little luxurious room in the penthouse with everything $he needs to be a proper Head Girl.// - <<elseif (getSlave($AS).assignment == "guard you") && ($dojo > 1)>> - //$He has a comfortable room in the armory to call $his own.// - <<else>> - <<link "Spare">><<set getSlave($AS).rules.living = "spare">><<replace "#livingRules">><<= getSlave($AS).rules.living>><</replace>><</link>> | - <<link "Normal">><<set getSlave($AS).rules.living = "normal">><<replace "#livingRules">><<= getSlave($AS).rules.living>><</replace>><</link>> | - <<if $roomsPopulation <= $rooms-0.5>><<link "Luxurious">><<set getSlave($AS).rules.living = "luxurious">><<replace "#livingRules">><<= getSlave($AS).rules.living>><</replace>><</link>><<else>>//No luxurious rooms available//<</if>> - <</if>> - - <<if $cheatMode>> - <<if ["be a servant", "get milked", "please you", "serve in the club", "serve the public", "whore", "work as a farmhand", "work in the brothel", "work in the dairy", "work a glory hole"].includes($activeSlave.assignment)>> - <br>Sleep rules: <span id="restRules" style="font-weight:bold"><<= getSlave($AS).rules.rest>></span>. - <<link "None">><<set getSlave($AS).rules.rest = "none">><<replace "#restRules">><<= getSlave($AS).rules.rest>><</replace>><</link>> | - <<link "Cruel">><<set getSlave($AS).rules.rest = "cruel">><<replace "#restRules">><<= getSlave($AS).rules.rest>><</replace>><</link>> | - <<link "Restrictive">><<set getSlave($AS).rules.rest = "restrictive">><<replace "#restRules">><<= getSlave($AS).rules.rest>><</replace>><</link>> | - <<link "Permissive">><<set getSlave($AS).rules.rest = "permissive">><<replace "#restRules">><<= getSlave($AS).rules.rest>><</replace>><</link>> | - <<link "Mandatory">><<set getSlave($AS).rules.rest = "mandatory">><<replace "#restRules">><<= getSlave($AS).rules.rest>><</replace>><</link>> - <</if>> - <</if>> - - <br>Typical punishment: <span id="standardPunishment" style="font-weight:bold"><<= getSlave($AS).rules.punishment>></span>. - <<link "Confinement">><<set getSlave($AS).rules.punishment = "confinement">><<replace "#standardPunishment">><<= getSlave($AS).rules.punishment>><</replace>><</link>> | - <<link "Whipping">><<set getSlave($AS).rules.punishment = "whipping">><<replace "#standardPunishment">><<= getSlave($AS).rules.punishment>><</replace>><</link>> | - <<link "Chastity">><<set getSlave($AS).rules.punishment = "chastity">><<replace "#standardPunishment">><<= getSlave($AS).rules.punishment>><</replace>><</link>> | - <<link "Situational">><<set getSlave($AS).rules.punishment = "situational">><<replace "#standardPunishment">><<= getSlave($AS).rules.punishment>><</replace>><</link>> - <br>Typical reward: <span id="standardReward" style="font-weight:bold"><<= getSlave($AS).rules.reward>></span>. - <<link "Relaxation">><<set getSlave($AS).rules.reward = "relaxation">><<replace "#standardReward">><<= getSlave($AS).rules.reward>><</replace>><</link>> | - <<link "Drugs">><<set getSlave($AS).rules.reward = "drugs">><<replace "#standardReward">><<= getSlave($AS).rules.reward>><</replace>><</link>> | - <<link "Orgasm">><<set getSlave($AS).rules.reward = "orgasm">><<replace "#standardReward">><<= getSlave($AS).rules.reward>><</replace>><</link>> | - <<link "Situational">><<set getSlave($AS).rules.reward = "situational">><<replace "#standardReward">><<= getSlave($AS).rules.reward>><</replace>><</link>> - - - <<if getSlave($AS).lactation != 2>> - <br>Lactation maintenance: <span id="lactationRules" style="font-weight:bold"><<= getSlave($AS).rules.lactation>></span>. - <<link "Left alone">><<set getSlave($AS).rules.lactation = "none">><<replace "#lactationRules">><<= getSlave($AS).rules.lactation>><</replace>><</link>> | - <<if getSlave($AS).lactation == 0>> - <<link "Induce lactation">><<set getSlave($AS).rules.lactation = "induce">><<replace "#lactationRules">><<= getSlave($AS).rules.lactation>><</replace>><</link>> - <<else>> - <<link "Maintain lactation">><<set getSlave($AS).rules.lactation = "maintain">><<replace "#lactationRules">><<= getSlave($AS).rules.lactation>><</replace>><</link>> - <</if>> - <</if>> - - <span id="orgasm"></span> - <script>App.UI.SlaveInteract.orgasm(getSlave(V.activeSlave.ID))</script> - - <<if getSlave($AS).voice != 0>> - Speech rules: <span id="speechRules" style="font-weight:bold"><<= getSlave($AS).rules.speech>></span>. - <<link "Restrictive">><<set getSlave($AS).rules.speech = "restrictive">><<replace "#speechRules">><<= getSlave($AS).rules.speech>><</replace>><</link>> | - <<link "Permissive">><<set getSlave($AS).rules.speech = "permissive">><<replace "#speechRules">><<= getSlave($AS).rules.speech>><</replace>><</link>> - <<if getSlave($AS).accent > 0 && getSlave($AS).accent < 4>>| <<link "Accent elimination">><<set getSlave($AS).rules.speech = "accent elimination">><<replace "#speechRules">><<= getSlave($AS).rules.speech>><</replace>><</link>> - <<elseif getSlave($AS).accent > 3>>| <<link "Language lessons">><<set getSlave($AS).rules.speech = "language lessons">><<replace "#speechRules">><<= getSlave($AS).rules.speech>><</replace>><</link>> - <</if>> - <</if>> - - <br> - Relationship rules: <span id="relationshipRules" style="font-weight:bold"><<= getSlave($AS).rules.relationship>></span>. - <<link "Restrictive">><<set getSlave($AS).rules.relationship = "restrictive">><<replace "#relationshipRules">><<= getSlave($AS).rules.relationship>><</replace>><</link>> | - <<link "Just friends">><<set getSlave($AS).rules.relationship = "just friends">><<replace "#relationshipRules">><<= getSlave($AS).rules.relationship>><</replace>><</link>> | - <<link "Permissive">><<set getSlave($AS).rules.relationship = "permissive">><<replace "#relationshipRules">><<= getSlave($AS).rules.relationship>><</replace>><</link>> - <</if>> - <span id="smartSettings"></span> - <script>App.UI.SlaveInteract.smartSettings(getSlave(V.activeSlave.ID))</script> + <span id="rules"></span> + <script>App.UI.SlaveInteract.rules(getSlave(V.activeSlave.ID))</script> </div> </div>