From 08f378b430b831ebc3426bd9e6192063a851aa91 Mon Sep 17 00:00:00 2001 From: lowercasedonkey <lowercasedonkey@gmail.com> Date: Mon, 21 Dec 2020 23:41:22 -0500 Subject: [PATCH] Fat grafting to js --- src/005-passages/interactPassages.js | 9 ++ src/npc/surgery/fatGraft.js | 118 ++++++++++++++++++++++++ src/pregmod/fatGraftingWorkaround.tw | 47 ---------- src/uncategorized/remoteSurgery.tw | 2 +- src/uncategorized/surgeryDegradation.tw | 2 +- 5 files changed, 129 insertions(+), 49 deletions(-) create mode 100644 src/npc/surgery/fatGraft.js delete mode 100644 src/pregmod/fatGraftingWorkaround.tw diff --git a/src/005-passages/interactPassages.js b/src/005-passages/interactPassages.js index d04947c2ba4..fff8eaf9c65 100644 --- a/src/005-passages/interactPassages.js +++ b/src/005-passages/interactPassages.js @@ -21,3 +21,12 @@ new App.DomPassage("SlaveOnSlaveFeeding", ); new App.DomPassage("KillSlave", () => App.UI.SlaveInteract.killSlave(getSlave(V.AS))); + +new App.DomPassage("Fat Grafting", + () => { + V.nextButton = "Finalize fat transfer"; + V.nextLink = "Surgery Degradation"; + + return App.UI.SlaveInteract.fatGraft(getSlave(V.AS)); + } +); diff --git a/src/npc/surgery/fatGraft.js b/src/npc/surgery/fatGraft.js new file mode 100644 index 00000000000..5c0a4048b3c --- /dev/null +++ b/src/npc/surgery/fatGraft.js @@ -0,0 +1,118 @@ +/** + * + * @param {App.Entity.SlaveState} slave + * @returns {DocumentFragment} + */ +App.UI.SlaveInteract.fatGraft = function(slave) { + const frag = new DocumentFragment(); + let availableFat = Math.round(slave.weight/10); + let boobFat = 0; + let buttFat = 0; + + const passage = App.UI.DOM.appendNewElement("span", frag, content()); + + return frag; + + function content() { + const el = new DocumentFragment(); + let r = []; + const {his} = getPronouns(slave); + let p; + let linkArray = []; + r.push(`Enough graftable body fat was harvested for an additional ${availableFat * 100}ccs per breast or an additional`); + if (getSlave(V.AS).butt <= 10) { + r.push(num(availableFat / 2)); + } else { + r.push(num(availableFat / 5)); + } + r.push(`sizes to ${his} rear.`); + if (availableFat === 0) { + r.push(`All fat marked for use.`); + } else { + r.push(`A total of ${availableFat} ${(availableFat === 1) ? `unit` : `units`} remain.`); + } + App.Events.addNode(el, r, "p", "scene-intro"); + + // Boobs + p = App.UI.DOM.appendNewElement("p", el); + App.UI.DOM.appendNewElement("div", p, `${boobFat} units of fat will be added to ${his} breasts for a size gain of ${boobFat * 100}ccs.`); + if (availableFat > 0) { + linkArray.push( + App.UI.DOM.link( + "Increase", + () => { + boobFat++; + availableFat--; + refresh(); + } + ) + ); + } else { + linkArray.push(App.UI.DOM.disabledLink(`No more fat available.`, [])); + } + if (boobFat > 0) { + linkArray.push( + App.UI.DOM.link( + "Decrease", + () => { + boobFat--; + availableFat++; + refresh(); + } + ) + ); + } else { + linkArray.push(App.UI.DOM.disabledLink(`No fat marked for breast use.`, [])); + } + App.UI.DOM.appendNewElement("div", p, App.UI.DOM.generateLinksStrip(linkArray)); + + // Ass + p = App.UI.DOM.appendNewElement("p", el); + r = []; + linkArray = []; + App.UI.DOM.appendNewElement("div", p,); + if (getSlave(V.AS).butt <= 10) { + r.push(buttFat * 2); + } else { + r.push(buttFat * 5); + } + r.push(`units of fat will be added to ${his} ass for a size gain of ${buttFat}.`); + App.UI.DOM.appendNewElement("div", p, r.join(" ")); + const fatMoved = (getSlave(V.AS).butt > 10) ? 0.2 : 0.5; + if (availableFat > 0) { + linkArray.push( + App.UI.DOM.link( + "Increase", + () => { + buttFat += fatMoved; + availableFat -= 1; + refresh(); + } + ) + ); + } else { + linkArray.push(App.UI.DOM.disabledLink(`No more fat available.`, [])); + } + if (buttFat > 0) { + linkArray.push( + App.UI.DOM.link( + "Decrease", + () => { + buttFat -= fatMoved; + availableFat -= 1; + refresh(); + } + ) + ); + } else { + linkArray.push(App.UI.DOM.disabledLink(`No fat marked for ass use.`, [])); + } + App.UI.DOM.appendNewElement("div", p, App.UI.DOM.generateLinksStrip(linkArray)); + return el; + } + function refresh() { + V.boobFat = boobFat; + V.buttFat = buttFat; + jQuery(passage).empty().append(content()); + } +}; diff --git a/src/pregmod/fatGraftingWorkaround.tw b/src/pregmod/fatGraftingWorkaround.tw deleted file mode 100644 index 39868b4d703..00000000000 --- a/src/pregmod/fatGraftingWorkaround.tw +++ /dev/null @@ -1,47 +0,0 @@ -:: fat grafting workaround [nobr] - -<<set $nextButton = "Finalize fat transfer", $nextLink = "Surgery Degradation">> - -Enough graftable body fat was harvested for an additional <<print $availableFat*100>>ccs per breast or an additional <<if getSlave($AS).butt <= 10>><<print $availableFat/2>><<else>><<print $availableFat/5>><</if>> sizes to $his rear. <<if $availableFat == 0>>All fat marked for use<<else>>A total of $availableFat unit<<if $availableFat > 1>>s<</if>> remain<</if>>. - -<br><br> -$boobFat units of fat will be added to $his breasts for a size gain of <<print $boobFat*100>>ccs. -<br> -<<if $availableFat > 0>> - [[Increase|fat grafting workaround][$boobFat++, $availableFat--]] | -<<else>> - No more fat available. | -<</if>> -<<if $boobFat > 0>> - [[Decrease|fat grafting workaround][$boobFat--, $availableFat++]] -<<else>> - No fat marked for breast use. -<</if>> - -<br><br> -<<if getSlave($AS).butt <= 10>><<print $buttFat*2>><<else>><<print $buttFat*5>><</if>> units of fat will be added to $his ass for a size gain of $buttFat. -<<if getSlave($AS).butt > 10>> - <br> - <<if $availableFat > 0>> - [[Increase|fat grafting workaround][$buttFat += .2, $availableFat -= 1]] | - <<else>> - No more fat available. | - <</if>> - <<if $buttFat > 0>> - [[Decrease|fat grafting workaround][$buttFat -= .2, $availableFat += 1]] - <<else>> - No fat marked for ass use. - <</if>> -<<else>> - <br> - <<if $availableFat > 0>> - [[Increase|fat grafting workaround][$buttFat += .5, $availableFat -= 1]] | - <<else>> - No more fat available. | - <</if>> - <<if $buttFat > 0>> - [[Decrease|fat grafting workaround][$buttFat -= .5, $availableFat += 1]] - <<else>> - No fat marked for ass use. - <</if>> -<</if>> diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw index 021fafc1f2a..f31ea7a6196 100644 --- a/src/uncategorized/remoteSurgery.tw +++ b/src/uncategorized/remoteSurgery.tw @@ -1037,7 +1037,7 @@ $He is overweight. [[Liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),10), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]] <</if>> <<if $surgeryUpgrade == 1>> - | [[Fat grafting|fat grafting workaround][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))*2, $availableFat = Math.round(getSlave($AS).weight/10), $boobFat = 0, $buttFat = 0, $surgeryType = "fat graft"]] + | [[Fat grafting|Fat Grafting][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))*2, $surgeryType = "fat graft"]] <</if>> <</if>> </div> diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw index 59f02493792..ac29f03eb38 100644 --- a/src/uncategorized/surgeryDegradation.tw +++ b/src/uncategorized/surgeryDegradation.tw @@ -1339,7 +1339,7 @@ As the remote surgery's long recovery cycle completes, Due to the large amount of fat removed from $his midsection, it droops noticeably after the surgery. <<set getSlave($AS).bellySag = 5>> <</if>> - <<set getSlave($AS).weight = 0, $boobFat = 0, $buttFat = 0, $availableFat = 0>> + <<set getSlave($AS).weight = 0, $boobFat = 0, $buttFat = 0>> <<case "lipo">> <<if getSlave($AS).fetish == "mindbroken">> -- GitLab