diff --git a/src/endWeek/brothelReport.js b/src/endWeek/brothelReport.js index cfe0b2bb3d81490e36b9889a4f2b48ef78173709..19d154c0ab52745ca4cf6d9c3a4b708269350aa9 100644 --- a/src/endWeek/brothelReport.js +++ b/src/endWeek/brothelReport.js @@ -349,17 +349,16 @@ globalThis.brothelReport = function() { } App.Events.addNode(slaveEntry, r, "div"); - const indented = document.createElement("div"); - indented.classList.add("indent"); App.Events.addNode( - indented, + slaveEntry, [ He, App.SlaveAssignment.whore(slave), App.SlaveAssignment.standardSlaveReport(slave, false) - ] + ], + "div", + "indented" ); - slaveEntry.append(indented); } else { // discard return values silently App.SlaveAssignment.choosesOwnJob(slave); diff --git a/src/endWeek/reports/clubReport.js b/src/endWeek/reports/clubReport.js new file mode 100644 index 0000000000000000000000000000000000000000..de98b3b10aa2a49b8c96c8edccb3b48456b25b6d --- /dev/null +++ b/src/endWeek/reports/clubReport.js @@ -0,0 +1,269 @@ +/** + * @returns {DocumentFragment} + */ +App.EndWeek.clubReport = function() { + const el = new DocumentFragment(); + let r; + let he, him, his, He, His, wife, himself; + + const slaves = App.Utils.sortedEmployees(App.Entity.facilities.club); + const DL = slaves.length; + V.legendaryEntertainerID = 0; + let FLsFetish = 0; + V.legendaryWombID = 0; + + // Statistics gathering; income is rep boosts in numbers, and profit will be rep per cash unit, or cash unit per rep + V.facility = V.facility || {}; + V.facility.club = initFacilityStatistics(V.facility.club); + const clubStats = document.createElement("div"); + el.append(clubStats); + + if (S.DJ) { + r = []; + if (S.DJ.health.condition < -80) { + improveCondition(S.DJ, 20); + } else if (S.DJ.health.condition < -40) { + improveCondition(S.DJ, 15); + } else if (S.DJ.health.condition < 0) { + improveCondition(S.DJ, 10); + } else if (S.DJ.health.condition < 90) { + improveCondition(S.DJ, 7); + } + if (S.DJ.devotion <= 60) { + S.DJ.devotion += 5; + } + if (S.DJ.trust < 60) { + S.DJ.trust += 3; + } + if (S.DJ.fetishStrength <= 95) { + if (S.DJ.fetish !== "humiliation") { + if (fetishChangeChance(S.DJ) > random(0, 100)) { + FLsFetish = 1; + S.DJ.fetishKnown = 1; + S.DJ.fetish = "humiliation"; + } + } else if (S.DJ.fetishKnown === 0) { + FLsFetish = 1; + S.DJ.fetishKnown = 1; + } else { + FLsFetish = 2; + S.DJ.fetishStrength += 4; + } + } + if (S.DJ.rules.living !== "luxurious") { + S.DJ.rules.living = "luxurious"; + } + if (S.DJ.rules.rest !== "restrictive") { + S.DJ.rules.rest = "restrictive"; + } + /* Make sure we have registered living expenses as for any other slave */ + getSlaveStatisticData(S.DJ, V.facility.club); + ({ + he, him, his, He, His, wife + } = getPronouns(S.DJ)); + r.push(`${SlaveFullName(S.DJ)} is performing as the DJ.`); + if (S.DJ.relationship === -3 && S.DJ.devotion > 50) { + r.push(`${He} tries ${his} best to be your energetic, cheerful ${wife}.`); + } + if (FLsFetish === 1) { + r.push(`${He}'s expected to be the innovative, beautiful DJ spinning beats one minute, and come out of ${his} booth to grind on the floor the next; ${he} enjoys the interplay, and finds greater <span class="lightcoral">pleasure in exhibitionism.</span>`); + } else if ((FLsFetish === 2)) { + r.push(`Every day ${he} gets to enjoy hundreds of stares on ${his} skin, and <span class="lightsalmon">becomes more of an exhibitionist.</span>`); + } + if (getBestVision(S.DJ) === 0) { + r.push(`${His} lack of eyesight doesn't slow ${him} down; rather, it strengthens ${his} other senses. ${His} tracks have a distinct sound, since ${he} experiences noise as ${his} sight.`); + } + if (S.DJ.skill.entertainment <= 10) { + r.push(`Though ${S.DJ.slaveName} does ${his} best to lead on the club, with ${his} lack of skill ${he} can do little.`); + } else if (S.DJ.skill.entertainment <= 30) { + r.push(`${S.DJ.slaveName}'s basic skills marginally <span class="green">improve</span> the atmosphere in ${V.clubName}.`); + } else if (S.DJ.skill.entertainment <= 60) { + r.push(`${S.DJ.slaveName}'s skills <span class="green">improve</span> the atmosphere in ${V.clubName}.`); + } else if (S.DJ.skill.entertainment < 100) { + r.push(`${S.DJ.slaveName}'s skills greatly <span class="green">improve</span> the atmosphere in ${V.clubName}.`); + } else if (S.DJ.skill.entertainment >= 100) { + r.push(`${S.DJ.slaveName}'s mastery immensely <span class="green">improves</span> the atmosphere in ${V.clubName}.`); + } + if (S.DJ.muscles > 5 && S.DJ.muscles <= 95) { + r.push(`${His} toned body helps ${him} lead ${his} fellow club sluts by letting ${him} dance all night.`); + } + if (S.DJ.intelligence + S.DJ.intelligenceImplant > 15) { + r.push(`${He}'s smart enough to make an actual contribution to the music, greatly enhancing the entire experience.`); + } + if (S.DJ.face > 95) { + r.push(`${His} great beauty is a further draw, even when ${he}'s in ${his} DJ booth, but especially when ${he} comes out to dance.`); + } + if (setup.DJCareers.includes(S.DJ.career)) { + r.push(`${He} has musical experience from ${his} life before ${he} was a slave, a grounding that gives ${his} tracks actual depth.`); + } else if (S.DJ.skill.DJ >= V.masteredXP) { + r.push(`${He} has musical experience from working for you, giving ${his} tracks actual depth.`); + } else { + S.DJ.skill.DJ += random(1, Math.ceil((S.DJ.intelligence + S.DJ.intelligenceImplant) / 15) + 8); + } + App.Events.addNode(el, r, "p", "indent"); + if (DL + V.clubSlavesGettingHelp < 10 && V.DJnoSex !== 1 && !slaveResting(S.DJ)) { + if (V.legendaryEntertainerID === 0 && S.DJ.prestige === 0 && S.DJ.skill.entertainment >= 100 && S.DJ.devotion > 50) { + V.legendaryEntertainerID = S.DJ.ID; + } + App.Events.addNode( + el, + [`Since ${he} doesn't have enough sluts in ${V.clubName} to make it worthwhile for ${him} to be on stage 24/7, ${he} spends ${his} extra time slutting it up ${himself}. ${He} has sex with ${S.DJ.sexAmount} citizens, <span class="green">pleasing them immensely,</span> since it's more appealing to fuck the DJ than some club slut.`], + "div", + "indent" + ); + if (V.showEWD !== 0) { + App.Events.addNode( + el, + [ + He, + App.SlaveAssignment.serveThePublic(S.DJ) + ], + "div", + "indent" + ); + } else { + App.SlaveAssignment.serveThePublic(S.DJ); + } + } + } + + if (DL > 0) { + r = []; + if (DL !== 1) { + r.push(App.UI.DOM.makeElement("span", `The ${DL} slaves pleasing citizens in ${V.clubName}`, "bold")); + } else { + r.push(App.UI.DOM.makeElement("span", `The one slave pleasing citizens in ${V.clubName}`, "bold")); + } + r.push(`worked hard to <span class="green">increase your reputation</span> this week.`); + App.Events.addNode(el, r, "p", "indent"); + } + + if (S.DJ) { + const slave = S.DJ; + /* apply following SA passages to facility leader */ + if (V.showEWD !== 0) { + const DJEntry = App.UI.DOM.appendNewElement("div", el, '', "slave-report"); + if (V.seeImages && V.seeReportImages) { + App.UI.DOM.appendNewElement("div", DJEntry, App.Art.SlaveArtElement(slave, 0, 0), ["imageRef", "tinyImg"]); + } + DJEntry.append(App.EndWeek.favoriteIcon(slave), " "); + App.Events.addNode( + DJEntry, + [ + App.UI.DOM.makeElement("span", SlaveFullName(slave), "slave-name"), + `is performing as the DJ in ${V.clubName}.`, + App.SlaveAssignment.standardSlaveReport(slave, false), + ] + ); + } else { + App.SlaveAssignment.standardSlaveReport(slave, true); + } + } + + if (DL > 0) { + for (const slave of slaves) { + ({ + he, him, his, He, His, wife + } = getPronouns(slave)); + if (V.legendaryEntertainerID === 0 && slave.prestige === 0 && slave.skill.entertainment >= 100 && slave.devotion > 50) { + V.legendaryEntertainerID = slave.ID; + } + if (V.legendaryWombID === 0 && !isAmputee(slave) && slave.preg > slave.pregData.normalBirth / 1.33 && slave.broodmother === 0 && slave.eggType === "human" && slave.counter.births > 10 && slave.devotion > 50 && slave.prestige === 0) { + V.legendaryWombID = slave.ID; + } + if (slave.devotion <= 20 && slave.trust >= -20) { + slave.devotion -= 5; + slave.trust -= 5; + } else if (slave.devotion < 45) { + slave.devotion += 4; + } else if (slave.devotion > 50) { + slave.devotion -= 4; + } + + if (slave.trust < 30) { + slave.trust += 5; + } + + if (slave.health.condition < -80) { + improveCondition(slave, 20); + } else if ((slave.health.condition < -40)) { + improveCondition(slave, 15); + } else if ((slave.health.condition < 0)) { + improveCondition(slave, 10); + } else if ((slave.health.condition < 90)) { + improveCondition(slave, 7); + } + + if (slave.rules.living !== "normal") { + slave.rules.living = "normal"; + } + + if (V.showEWD !== 0) { + const slaveEntry = App.UI.DOM.appendNewElement("div", el, '', "slave-report"); + if (V.seeImages && V.seeReportImages) { + App.UI.DOM.appendNewElement("div", slaveEntry, App.Art.SlaveArtElement(slave, 0, 0), ["imageRef", "tinyImg"]); + } + slaveEntry.append(App.EndWeek.favoriteIcon(slave), " "); + r = []; + r.push(App.UI.DOM.makeElement("span", SlaveFullName(slave), "slave-name")); + if (slave.choosesOwnAssignment === 2) { + r.push(App.SlaveAssignment.choosesOwnJob(slave)); + } else { + r.push(`is serving in ${V.clubName}.`); + } + App.Events.addNode(slaveEntry, r, "div"); + + App.Events.addNode( + slaveEntry, + [ + He, + App.SlaveAssignment.serveThePublic(slave), + App.SlaveAssignment.standardSlaveReport(slave, false) + ], + "div", + "indented" + ); + } else { + // discard return values silently + App.SlaveAssignment.choosesOwnJob(slave); + App.SlaveAssignment.serveThePublic(slave); + App.SlaveAssignment.standardSlaveReport(slave, true); + } + } + + App.Events.addNode(el, [App.Ads.report("club")], "p", "indented"); + + // Record statistics gathering + const b = State.variables.facility.club; + b.whoreIncome = 0; + b.customers = 0; + b.whoreCosts = 0; + b.rep = 0; + for (const si of b.income.values()) { + b.whoreIncome += si.income; + b.customers += si.customers; + b.whoreCosts += si.cost; + b.rep += si.rep; + } + b.adsCosts = State.variables.clubAdsSpending; + b.maintenance = State.variables.club * State.variables.facilityCost * (1.0 + 0.2 * State.variables.clubUpgradePDAs); + b.totalIncome = b.whoreIncome + b.adsIncome; + b.totalExpenses = b.whoreCosts + b.adsCosts + b.maintenance; + b.profit = b.totalIncome / b.totalExpenses; + if (V.clubDecoration !== "standard") { + App.Events.addNode( + el, + [ + `${capFirstChar(V.clubName)}'s customers enjoy <span class="green">having sex in ${V.clubDecoration} surroundings.</span>` + ], + "p", + "indented" + ); + } + + // Club stats + el.append(App.Facilities.Club.Stats(false)); + clubStats.append(App.Facilities.Club.Stats(true)); + } + return el; +}; diff --git a/src/endWeek/reportsTW/clubReport.tw b/src/endWeek/reportsTW/clubReport.tw new file mode 100644 index 0000000000000000000000000000000000000000..c345a8117e0533450cebafdeec7c0338106ce2b7 --- /dev/null +++ b/src/endWeek/reportsTW/clubReport.tw @@ -0,0 +1,3 @@ +:: Club Report [nobr] + +<<includeDOM App.EndWeek.clubReport()>> diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw deleted file mode 100644 index c7a90861626efa418ba0b9d01d45b18888383d61..0000000000000000000000000000000000000000 --- a/src/uncategorized/clubReport.tw +++ /dev/null @@ -1,258 +0,0 @@ -:: Club Report [nobr] - -<span id="club-stats"></span> - -<<set _slaves = App.Utils.sortedEmployees(App.Entity.facilities.club)>> -<<set _DL = _slaves.length, _SL = $slaves.length, $legendaryEntertainerID = 0, _FLsFetish = 0>> -<<set $legendaryWombID = 0>> -<<set _minBonus = 50, _maxBonus = 150>> - -<!-- Statistics gathering; income is rep boosts in numbers, and profit will be rep per cash unit, or cash unit per rep --> -<<set $facility = $facility || {}, $facility.club = initFacilityStatistics($facility.club)>> - -<<if _S.DJ>> - <<if (_S.DJ.health.condition < -80)>> - <<run improveCondition(_S.DJ, 20)>> - <<elseif _S.DJ.health.condition < -40>> - <<run improveCondition(_S.DJ, 15)>> - <<elseif _S.DJ.health.condition < 0>> - <<run improveCondition(_S.DJ, 10)>> - <<elseif _S.DJ.health.condition < 90>> - <<run improveCondition(_S.DJ, 7)>> - <</if>> - <<if _S.DJ.devotion <= 60>> - <<set _S.DJ.devotion += 5>> - <</if>> - <<if _S.DJ.trust < 60>> - <<set _S.DJ.trust += 3>> - <</if>> - <<if _S.DJ.fetishStrength <= 95>> - <<if _S.DJ.fetish != "humiliation">> - <<if fetishChangeChance(_S.DJ) > random(0,100)>> - <<set _FLsFetish = 1, _S.DJ.fetishKnown = 1, _S.DJ.fetish = "humiliation">> - <</if>> - <<elseif _S.DJ.fetishKnown == 0>> - <<set _FLsFetish = 1, _S.DJ.fetishKnown = 1>> - <<else>> - <<set _FLsFetish = 2, _S.DJ.fetishStrength += 4>> - <</if>> - <</if>> - <<if _S.DJ.rules.living != "luxurious">> - <<set _S.DJ.rules.living = "luxurious">> - <</if>> - <<if _S.DJ.rules.rest != "restrictive">> - <<set _S.DJ.rules.rest = "restrictive">> - <</if>> - /% Make sure we have registered living expenses as for any other slave %/ - <<run getSlaveStatisticData(_S.DJ, $facility.club)>> - <<setLocalPronouns _S.DJ>> - <<= SlaveFullName(_S.DJ)>> is performing as the DJ. - <<if _S.DJ.relationship == -3 && _S.DJ.devotion > 50>> - $He tries $his best to be your energetic, cheerful $wife. - <</if>> - <<if (_FLsFetish == 1)>> - $He's expected to be the innovative, beautiful DJ spinning beats one minute, and come out of $his booth to grind on the floor the next; $he enjoys the interplay, and finds greater @@.lightcoral;pleasure in exhibitionism.@@ - <<elseif (_FLsFetish == 2)>> - Every day $he gets to enjoy hundreds of stares on $his skin, and @@.lightsalmon;becomes more of an exhibitionist.@@ - <</if>> - <<if getBestVision(_S.DJ) === 0>> - $His lack of eyesight doesn't slow $him down; rather, it strengthens $his other senses. $His tracks have a distinct sound, since $he experiences noise as $his sight. - <</if>> - <<if (_S.DJ.skill.entertainment <= 10)>> - Though _S.DJ.slaveName does $his best to lead on the club, with $his lack of skill $he can do little. - <<elseif (_S.DJ.skill.entertainment <= 30)>> - _S.DJ.slaveName's basic skills marginally @@.green;improve@@ the atmosphere in $clubName. - <<elseif (_S.DJ.skill.entertainment <= 60)>> - _S.DJ.slaveName's skills @@.green;improve@@ the atmosphere in $clubName. - <<elseif (_S.DJ.skill.entertainment < 100)>> - _S.DJ.slaveName's skills greatly @@.green;improve@@ the atmosphere in $clubName. - <<elseif (_S.DJ.skill.entertainment >= 100)>> - _S.DJ.slaveName's mastery immensely @@.green;improves@@ the atmosphere in $clubName. - <</if>> - <<if (_S.DJ.muscles > 5) && (_S.DJ.muscles <= 95)>> - $His toned body helps $him lead $his fellow club sluts by letting $him dance all night. - <</if>> - <<if (_S.DJ.intelligence+_S.DJ.intelligenceImplant > 15)>> - $He's smart enough to make an actual contribution to the music, greatly enhancing the entire experience. - <</if>> - <<if (_S.DJ.face > 95)>> - $His great beauty is a further draw, even when $he's in $his DJ booth, but especially when $he comes out to dance. - <</if>> - <<if setup.DJCareers.includes(_S.DJ.career)>> - $He has musical experience from $his life before $he was a slave, a grounding that gives $his tracks actual depth. - <<elseif _S.DJ.skill.DJ >= $masteredXP>> - $He has musical experience from working for you, giving $his tracks actual depth. - <<else>> - <<set _S.DJ.skill.DJ += random(1,Math.ceil((_S.DJ.intelligence+_S.DJ.intelligenceImplant)/15) + 8)>> - <</if>> - <<if (_DL + $clubSlavesGettingHelp < 10) && $DJnoSex != 1 && !slaveResting(_S.DJ)>> - <<if ($legendaryEntertainerID == 0) && (_S.DJ.prestige == 0) && (_S.DJ.skill.entertainment >= 100) && (_S.DJ.devotion > 50)>> - <<set $legendaryEntertainerID = _S.DJ.ID>> - <</if>> - <br> Since $he doesn't have enough sluts in $clubName to make it worthwhile for $him to be on stage 24/7, $he spends $his extra time slutting it up $himself. $He has sex with _S.DJ.sexAmount citizens, @@.green;pleasing them immensely,@@ since it's more appealing to fuck the DJ than some club slut. - <<if $showEWD != 0>> - <br> $He <<= App.SlaveAssignment.serveThePublic(_S.DJ)>> - <<else>> - <<run App.SlaveAssignment.serveThePublic(_S.DJ)>> - <</if>> - <</if>> - <<if (_DL > 0)>><br><br><</if>> -<</if>> - -<<if (_DL > 0)>> - <<set _possibleBonuses = 0>> - <<if (_DL != 1)>>''The _DL slaves pleasing citizens in $clubName''<<else>>''The one slave pleasing citizens in $clubName''<</if>> worked hard to @@.green;increase your reputation@@ this week. -<</if>> - -<<if _S.DJ>> - <<set $i = $slaveIndices[$djID]>> /* apply following SA passages to facility leader */ - <<if $showEWD != 0>> - <br><br> - /* 000-250-006 */ - <<if $seeImages && $seeReportImages>> - <div class="imageRef tinyImg"> - <<= SlaveArt(_S.DJ, 0, 0)>> - </div> - <</if>> - /* 000-250-006 */ - <<includeDOM App.EndWeek.favoriteIcon(_S.DJ)>> - <span class='slave-name'><<= SlaveFullName(_S.DJ)>></span> is performing as the DJ in $clubName. - <br> - <<= App.SlaveAssignment.choosesOwnClothes(_S.DJ)>> - <<run tired(_S.DJ)>> - <<includeDOM App.SlaveAssignment.rules(_S.DJ)>> - <<= App.SlaveAssignment.diet(_S.DJ)>> - <<includeDOM App.SlaveAssignment.longTermEffects(_S.DJ)>> - <<= App.SlaveAssignment.drugs(_S.DJ)>> - <<= App.SlaveAssignment.relationships(_S.DJ)>> - <<= App.SlaveAssignment.rivalries(_S.DJ)>> - <br> <<= App.SlaveAssignment.devotion(_S.DJ)>> - <<else>> - <<run App.SlaveAssignment.choosesOwnClothes(_S.DJ)>> - <<run tired(_S.DJ)>> - <<run App.SlaveAssignment.rules(_S.DJ)>> - <<run App.SlaveAssignment.diet(_S.DJ)>> - <<run App.SlaveAssignment.longTermEffects(_S.DJ)>> - <<run App.SlaveAssignment.drugs(_S.DJ)>> - <<run App.SlaveAssignment.relationships(_S.DJ)>> - <<run App.SlaveAssignment.rivalries(_S.DJ)>> - <<run App.SlaveAssignment.devotion(_S.DJ)>> - <</if>> -<</if>> - -<<if (_DL > 0)>> - <<for _slave range _slaves>> - <<set $i = $slaveIndices[_slave.ID]>> - <<setLocalPronouns _slave>> - <<if ($legendaryEntertainerID == 0) && (_slave.prestige == 0) && (_slave.skill.entertainment >= 100) && (_slave.devotion > 50)>> - <<set $legendaryEntertainerID = _slave.ID>> - <</if>> - <<if ($legendaryWombID == 0) && (!isAmputee(_slave)) && (_slave.preg > _slave.pregData.normalBirth/1.33) && (_slave.broodmother == 0) && (_slave.eggType == "human") && (_slave.counter.births > 10) && (_slave.devotion > 50) && (_slave.prestige == 0)>> - <<set $legendaryWombID = _slave.ID>> - <</if>> - <<if (_slave.devotion <= 20) && (_slave.trust >= -20)>> - <<set _slave.devotion -= 5, _slave.trust -= 5>> - <<elseif (_slave.devotion < 45)>> - <<set _slave.devotion += 4>> - <<elseif (_slave.devotion > 50)>> - <<set _slave.devotion -= 4>> - <</if>> - - <<if (_slave.trust < 30)>> - <<set _slave.trust += 5>> - <</if>> - - <<if (_slave.health.condition < -80)>> - <<run improveCondition(_slave, 20)>> - <<elseif (_slave.health.condition < -40)>> - <<run improveCondition(_slave, 15)>> - <<elseif (_slave.health.condition < 0)>> - <<run improveCondition(_slave, 10)>> - <<elseif (_slave.health.condition < 90)>> - <<run improveCondition(_slave, 7)>> - <</if>> - - <<if _slave.rules.living != "normal">> - <<set _slave.rules.living = "normal">> - <</if>> - - <<if $showEWD != 0>> - <br><br> - /* 000-250-006 */ - <<if $seeImages && $seeReportImages>> - <div class="imageRef tinyImg"> - <<= SlaveArt(_slave, 0, 0)>> - </div> - <</if>> - /* 000-250-006 */ - <<includeDOM App.EndWeek.favoriteIcon(_slave)>> - <span class='slave-name'><<= SlaveFullName(_slave)>></span> - <<if _slave.choosesOwnAssignment == 2>> - <<= App.SlaveAssignment.choosesOwnJob(_slave)>> - <<else>> - is serving in $clubName. - <</if>> - <br> $He <<= App.SlaveAssignment.serveThePublic(_slave)>> - <br> - <<= App.SlaveAssignment.choosesOwnClothes(_slave)>> - <<includeDOM App.SlaveAssignment.rules(_slave)>> - <<= App.SlaveAssignment.diet(_slave)>> - <<includeDOM App.SlaveAssignment.longTermEffects(_slave)>> - <<= App.SlaveAssignment.drugs(_slave)>> - <<= App.SlaveAssignment.relationships(_slave)>> - <<= App.SlaveAssignment.rivalries(_slave)>> - <br> <<= App.SlaveAssignment.devotion(_slave)>> - <<else>> - <<run App.SlaveAssignment.choosesOwnJob(_slave)>> - <<run App.SlaveAssignment.serveThePublic(_slave)>> - <<run App.SlaveAssignment.choosesOwnClothes(_slave)>> - <<includeDOM App.SlaveAssignment.rules(_slave)>> - <<run App.SlaveAssignment.diet(_slave)>> - <<run App.SlaveAssignment.longTermEffects(_slave)>> - <<run App.SlaveAssignment.drugs(_slave)>> - <<run App.SlaveAssignment.relationships(_slave)>> - <<run App.SlaveAssignment.rivalries(_slave)>> - <<run App.SlaveAssignment.devotion(_slave)>> - <</if>> - <</for>> - <p> - <<= App.Ads.report("club")>> - </p> - - <!-- Record statistics gathering --> - <<script>> - var b = State.variables.facility.club; - b.whoreIncome = 0; - b.customers = 0; - b.whoreCosts = 0; - b.rep = 0; - for (var si of b.income.values()) { - b.whoreIncome += si.income; - b.customers += si.customers; - b.whoreCosts += si.cost; - b.rep += si.rep; - } - b.adsCosts = State.variables.clubAdsSpending; - b.maintenance = State.variables.club * State.variables.facilityCost * (1.0 + 0.2 * State.variables.clubUpgradePDAs); - b.totalIncome = b.whoreIncome + b.adsIncome; - b.totalExpenses = b.whoreCosts + b.adsCosts + b.maintenance; - b.profit = b.totalIncome / b.totalExpenses; - <</script>> - <<if $clubDecoration != "standard">> - <p> - <<= capFirstChar($clubName)>>'s customers enjoy @@.green;having sex in $clubDecoration surroundings.@@ - </p> - <</if>> - - <!-- Statistics output --> - <<includeDOM App.Facilities.Club.Stats(false)>> - <<timed 50ms>> - <<replace #club-stats>> - <<includeDOM App.Facilities.Club.Stats(true)>> - <</replace>> - <</timed>> -<</if>> - -<<if _DL > 0 || _S.DJ>> - <br><br> -<</if>>