diff --git a/src/002-config/fc-js-init.js b/src/002-config/fc-js-init.js index ff16bb6b663e94dfc8ea59ef54558a9025662d97..3c923124687bca8b341a43c66007c69029106124 100644 --- a/src/002-config/fc-js-init.js +++ b/src/002-config/fc-js-init.js @@ -43,6 +43,7 @@ App.RA = {}; App.SF = {}; App.Corporate = {}; App.SecExp = {}; +App.Reminders = {}; Object.defineProperty(App, "activeSlave", { diff --git a/src/Mods/Reminder/reminder.js b/src/Mods/Reminder/reminder.js new file mode 100644 index 0000000000000000000000000000000000000000..f8675e215bcf8a7f1a9c21e97755e399af6082fb --- /dev/null +++ b/src/Mods/Reminder/reminder.js @@ -0,0 +1,24 @@ +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')}`); + } +}; + +App.Reminders.update = function() { + let entries = V.reminders.entries, + weeks = V.reminders.weeks, + 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 { + entries.splice(i, 1); + weeks.splice(i, 1); + } + } + V.reminders.text = text; +}; diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw index 6c547f1b0a9aced2f971c88b54bb5d3344575ef9..58cec7d6145f92be30f9be61a175a938df2b345f 100644 --- a/src/init/storyInit.tw +++ b/src/init/storyInit.tw @@ -466,6 +466,7 @@ You should have received a copy of the GNU General Public License along with thi <<set $REReductionCheckinIDs = []>> <<set $activeSlave = 0>> <<set $activeChild = 0>> +<<set $reminders = {entries: [], weeks: [], text: []}>> <<set $boomerangSlave = 0, $boomerangWeeks = 0, $boomerangBuyer = 0>> diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw index dec16ce95ec10b9a31d2b626e4eee7e8fbc1186d..7e1791e1e43c4b22a7a21941dcd71afc593d34ef 100644 --- a/src/pregmod/managePersonalAffairs.tw +++ b/src/pregmod/managePersonalAffairs.tw @@ -218,6 +218,29 @@ Sclera: <br><br> +<<if $reminders.text.length == 0>> + You do not have any reminders set. +<<else>> + You have <<=numberWithPluralOne($reminders.text.length, "reminder")>> set: + <<print $reminders.text>> +<</if>> +<br> +Remind me +<<textbox "$reminderEntry" "">> +in +<<textbox "$reminderWeek" "">> +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>> + +<br><br> + You ponder what skills may be useful in running your arcology. <br>Trading: <<if $PC.skill.trading >= 100>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 2efb59b9f0b5d3eddf411622099adfeb6b0024ed..7ccbd01a8131f2f940cf0fa5b1ac2c2f3872fddd 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -153,6 +153,10 @@ <<set $weddingPlanned = 0>> <</if>> +<<if ndef $reminders>> + <<set $reminders = {entries: [], weeks: [], text: []}>> +<</if>> + <<if $releaseID < 1057>> <<if ndef $PC.name>> <<if def $PCName>> diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index d2889dcd828c33d74a7470d9cf0d9bb30b3154f8..bb42d234b1265747e13e158c3bff96e7f59e18e9 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -43,6 +43,10 @@ s.lastWeeksRepExpenses = 0; })>> +<<if $reminders.text.length > 0>> + <<run App.Reminders.update()>> +<</if>> + <<if $organs.length > 0>> <<run $organs.forEach(function(o) { if (o.weeksToCompletion > 0) { diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw index 192b5bd1ddab8d0a5857ac429d8f10a20e6fc696..9714f4b24f242567f938bfd970a4c296b1b915aa 100644 --- a/src/uncategorized/main.tw +++ b/src/uncategorized/main.tw @@ -80,6 +80,13 @@ <<include "Office Description">> [[Hide|Main][$seeDesk = 0]] <</if>> +<<if $reminders.text.length > 0>> +<br> + + You have <<=numberWithPluralOne($reminders.text.length, "reminder")>>: + <<print $reminders.text>> + <br><br> +<</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>