diff --git a/src/Mods/Reminder/reminder.js b/src/Mods/Reminder/reminder.js index f8675e215bcf8a7f1a9c21e97755e399af6082fb..b9f289ab0906594e317325d0f3aa9e6748fdac5f 100644 --- a/src/Mods/Reminder/reminder.js +++ b/src/Mods/Reminder/reminder.js @@ -1,24 +1,32 @@ App.Reminders.add = function(entry, week) { - if (entry.length > 0 && week.length > 0 && !isNaN(week) && week > 0) { - V.reminders.entries.push(entry); - V.reminders.weeks.push(week); - V.reminders.text.push(`${entry} in ${numberWithPlural(week, 'week')}`); - } + if (entry.length > 0 && week.length > 0 && !isNaN(week)) { + if (week <= 0) { + V.reminders.overdue.push(`<br> ${entry} [[Clear|Manage Personal Affairs][App.Reminders.remove(${V.reminders.overdue.length}, $reminders.overdue)]]`); + } else { + V.reminders.entries.push(entry); + V.reminders.weeks.push(week); + V.reminders.text.push(`<br> ${entry} in ${numberWithPlural(week, 'week')} [[Clear|Manage Personal Affairs][App.Reminders.remove(${V.reminders.text.length}, $reminders.text)]]`); + } + } }; +App.Reminders.remove = (i, arr) => arr.splice(i, 1); + App.Reminders.update = function() { - let entries = V.reminders.entries, - weeks = V.reminders.weeks, - text = []; + let entries = V.reminders.entries, + weeks = V.reminders.weeks, + text = [], + overdue = []; - for (let i = 0; i < entries.length; i++) { - weeks[i]--; - if (weeks[i] > 0) { - text.push(`${entries[i]} in ${numberWithPluralOne(weeks[i], 'week')}`); - } else { - entries.splice(i, 1); - weeks.splice(i, 1); - } - } - V.reminders.text = text; + for (let i = 0; i < entries.length; i++) { + weeks[i]--; + if (weeks[i] > 0) { + text.push(`${entries[i]} in ${numberWithPluralOne(weeks[i], 'week')}`); + } else { + overdue.push(entries[i]); + entries.splice(i, 1); + weeks.splice(i, 1); + } + } + V.reminders.text = text; }; diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js index bb1f457b815845d0e855ce1b28b202747d7c3908..57666651ba28282302bc73bd4f794ca6e9eefbd2 100644 --- a/src/facilities/penthouse/penthouseFramework.js +++ b/src/facilities/penthouse/penthouseFramework.js @@ -201,6 +201,12 @@ App.Entity.Facilities.Penthouse = class extends App.Entity.Facilities.Facility { return State.variables.dormitoryPopulation; } + /** Penthouse can be overcrowded, so it always has free space + * @returns {boolean} */ + get hasFreeSpace() { + return true; + } + /** * * @param {App.Entity.SlaveState} slave diff --git a/src/npc/descriptions/fBoobs.tw b/src/npc/descriptions/fBoobs.tw index 09794dedb58b01420cb9074a7eecf6ff91e7f207..d0e0f457672d62d3ae46e658f1e0713480040f0a 100644 --- a/src/npc/descriptions/fBoobs.tw +++ b/src/npc/descriptions/fBoobs.tw @@ -181,12 +181,20 @@ tits. <</if>> <<if (random(1,100) > (100+$activeSlave.devotion))>> - <<if ($activeSlave.fetish !== "boobs") && ($activeSlave.energy <= 95) && ($activeSlave.behavioralFlaw !== "hates men")>> - Being manhandled and used has given $him a @@.flaw.gain;hatred of men.@@ - <<set $activeSlave.behavioralFlaw = "hates men">> + <<if ($activeSlave.fetish !== "boobs") && ($activeSlave.energy <= 95) && ($activeSlave.behavioralFlaw == "none")>> + <<if $PC.vagina >= 0>> + Being manhandled and used by you has given $him a @@.flaw.gain;hatred of women.@@ + <<set $activeSlave.behavioralFlaw = "hates women">> + <<else>> + Being manhandled and used has given $him a @@.flaw.gain;hatred of men.@@ + <<set $activeSlave.behavioralFlaw = "hates men">> + <</if>> <</if>> <<elseif (random(1,100) > (110-$activeSlave.devotion))>> - <<if ($activeSlave.fetish == "none") && ($activeSlave.behavioralFlaw !== "hates men")>> + <<if ($activeSlave.fetish == "none") + && !(($activeSlave.behavioralFlaw === "hates men") && ($PC.dick > 0) && ($PC.vagina < 0)) + && !(($activeSlave.behavioralFlaw === "hates women") && ($PC.vagina >= 0)) + >> Having attention and love lavished on $his boobs by $his <<= WrittenMaster($activeSlave)>> has $him thinking of $his @@.fetish.gain;breasts as sexual organs.@@ <<set $activeSlave.fetish = "boobs", $activeSlave.fetishKnown = 1>> <</if>> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index 7e1791e1e43c4b22a7a21941dcd71afc593d34ef..dc15a51bd18f26dae90ac188f43d44f9187f83b4 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -218,11 +218,18 @@ Sclera: <br><br> +<<if $reminders.overdue.length > 0>> + <span class="yellow"> /* TODO: this would be a good place for an "attn" or "attention" class */ + You have <<= numberWithPluralOne($reminders.overdue.length, "overdue reminders")>>: + </span> + <<print $reminders.overdue.join('')>> + <br> +<</if>> <<if $reminders.text.length == 0>> - You do not have any reminders set. + You do not have any upcoming reminders set. <<else>> You have <<=numberWithPluralOne($reminders.text.length, "reminder")>> set: - <<print $reminders.text>> + <<print $reminders.text.join('')>> <</if>> <br> Remind me @@ -232,11 +239,8 @@ in weeks. [[Add|Manage Personal Affairs][App.Reminders.add($reminderEntry, $reminderWeek)]] <br> -<<if $reminders.text.length > 0 || $cheatMode || $debugMode>> - [[Clear your reminders|Manage Personal Affairs][$reminders = {entries: [], weeks: [], text: []}]] - /* TODO: <<link "Clear a reminder" "Manage Personal Affairs">> - <<include "Clear Reminder">> - <</link>> */ +<<if $reminders.text.length > 0 || $reminders.overdue.length > 0 || $cheatMode || $debugMode>> + [[Clear your reminders|Manage Personal Affairs][$reminders = {entries: [], weeks: [], text: [], overdue: []}]] <</if>> <br><br> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 372acfa978f7e5f270ddff9f87684dec487daae1..564c08cc6c5b4c755ae955a72d99fb08c4560db0 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -153,8 +153,8 @@ <<set $weddingPlanned = 0>> <</if>> -<<if ndef $reminders>> - <<set $reminders = {entries: [], weeks: [], text: []}>> +<<if ndef $reminders || ndef $reminders.overdue>> + <<set $reminders = {entries: [], weeks: [], text: [], overdue: []}>> <</if>> <<if $releaseID < 1057>> diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 9714f4b24f242567f938bfd970a4c296b1b915aa..267fc91c4129e17ad2674c040dbde7d185f4aed9 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -80,13 +80,26 @@ <<include "Office Description">> [[Hide|Main][$seeDesk = 0]] <</if>> + +<<if $reminders.overdue.length > 0 || $reminders.text.length > 0>> + <br> +<</if>> +<<if $reminders.overdue.length > 0>> + <span class="yellow"> /* TODO: this would be a good place for an "attn" or "attention" class */ + You have <<= numberWithPluralOne($reminders.overdue.length, "overdue reminder")>>: + </span> + <<print $reminders.overdue.join('')>> + <br> +<</if>> <<if $reminders.text.length > 0>> -<br> - You have <<=numberWithPluralOne($reminders.text.length, "reminder")>>: - <<print $reminders.text>> - <br><br> + <<print $reminders.text.join('')>> + <br> <</if>> +<<if $reminders.text.length > 0 || $reminders.overdue.length > 0>> + [[Manage reminders|Manage Personal Affairs]] +<</if>> + <<if $seeFCNN == 1>> <<if $FCNNstation != 1 && $week >= 90>> <center>FCNN: <<print "FCNN service has been temporarily suspended. Please stand by.">> [[Hide|Main][$seeFCNN = 0]]</center>