diff options
Diffstat (limited to 'js/princess/game.js')
-rw-r--r-- | js/princess/game.js | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/js/princess/game.js b/js/princess/game.js index aab427c..17d70e2 100644 --- a/js/princess/game.js +++ b/js/princess/game.js @@ -47,13 +47,33 @@ const levelUpPartyMember = (person, stat, amount) => { } }; +const addQuest = (quest) => { + if (!princess.activeQuests.includes(quest)) { + quest.start = new Date(); // Update the quest's start time to the current time + princess.activeQuests.push(quest); + } +} + +const checkQuests = () => { + princess.activeQuests.forEach(quest => { + let currentTime = new Date(); + let elapsedTime = currentTime - quest.start; + if (elapsedTime >= quest.duration) { // TODO: shooting from the hip, this'll need to be tested + princess.completedQuests.push(quest); + princess.activeQuests = princess.activeQuests.filter(q => q !== quest); + } + }); +} + // the player character let princess = { finery: 10, knowledge: 10, spider: 100, treasure: 100, - party: [] // the princesses party of people (an array may not make sense for this, since I'd like to limit it's max size, but maybe I can have a bounding function) + party: [], // the princesses party of people (an array may not make sense for this, since I'd like to limit it's max size, but maybe I can have a bounding function) + activeQuests: [], + completedQuests: [] } // the people the player can recruit @@ -92,12 +112,14 @@ let quests = [ name: "The Spider of the Silver Forest", description: "The princess must defeat the spider of the silver forest.", reward: "The treasure of the silver forest.", - duration: 2 * HOUR + duration: 2 * HOUR, + start: null }, { name: "The Treasure of the Silver Forest", description: "The princess must find the treasure of the silver forest.", reward: "The spider of the silver forest.", - duration: 2 * HOUR + duration: 2 * HOUR, + start: null } ] \ No newline at end of file |