Skip to content

Calendar.js

kyleady edited this page Jul 8, 2016 · 2 revisions

Purpose

Built for Rogue Trader campaigns. It keeps track of the current date, scheduled events, and a log of the past. Especially useful for Colonies from "Stars of Inequity" and Warp Routes from "The Navis Primer". I used a Calendar system with ten months and thirty-five days in each month, though these numbers can be easily modified. The ten months are named after Holy Terra and the nine loyal Primarchs. This is nothing like the time keeping system in the cannon, but I excuse this as a local tradition while the highly numerical one is a practice of the Adeptus Administratum.

Players have the ability to check the current date, ask what day it will be after day/months/years, and ask how many days are between the current date and some other date. Players also have the ability to look at a log book of past events and a calendar of upcoming events.

GMs have the ability to advance the date by days/months/years and the ability to add future events/past records to the calendar (while being alerted as soon as the date is >= the future event). These events can be public or private events stored in the bios or gmnotes of the character sheets respectively.

Usage

!Time += <x>
Advances the date by x. x is split up by the following keywords

  • day/days
  • week/weeks - 7 days
  • month/months - 35 days or as defined by the Calendar.DaysInAMonth variable
  • year/years - 350 days or as defined by Calendar.DaysInAMonth * Calendar.MonthNames.length
  • decade/decades - 10 times a year
  • century/centuries - 100 times a year

For example, !Time += 2 days 10 centuries would increase the date by 25002 days. The System then reports the current date to everyone.

If the date passes an event in the Calendar, the GM will be privately offered the ability to record the event in the log book. If the event is a repeating event (such as Colony growth), the GM will be informed how many that event happened and will be offered to keep it on the Calendar.

It is possible to add myCalendar.AgeCharacter(characterid,currentTime["days"]) for each of your player characters right before delete myCalendar within "!Time += ". This allows you to keep track of that character's age. (GM only).

!Time
Whispers the current date to the user. (Players and GM)

!Time ?+ <x>
Uses the same inputs as in !Time += <x>, but it only whispers the date that it would be after this time passed. (Players and GM).

!Time ? <date>
Whispers how many days/months/years have pass since or must pass until the named date. The format is day, name of the month, year. The input divides the date by spaces, searching for the first month name and the first two numbers (ignoring commas). For example, !Time ? The 14th of Terra, in the year 40,882, !Time ? 14 Terra 40882, and !Time ? Terra 14 40882 all work the same. (Players and GM).

![gm]Event <event description>[ <date modifiers>]
Records the described event in the Log Book Character Sheet under the current date. If !gmEvent is used instead of !Event, the event description is written in the gmnotes instead of the notes. The date can be of the event by the following modifiers:

  • @<date> - Uses the stated date instead of the current date.
  • + <x> - Modifies the date by <x> days. Combines with @. For example, !Event Necrons enter into hibernation. @ 22nd of Terra, 40,000 + -4,000,000 years
  • % <x> - Specifies the number of days before this event happens again. Currently only accepts input in days.

Events in the calendar and logbook will automatically be placed in chronological order. If it was re-ordered, it will put itself back in chronological order once another event is added or the date changes. (GM only)

Requirements

Requires the following two character sheets

  • Logbook
  • Calendar - the Calendar must have the following three Attributes
    • Day - Suggested starting value: 1
    • Month - Suggested starting value: 0
    • Year - Suggested starting value: 40000

Any character you wish to age must have an Age Attribute. The current field Age should have the format of <x> years. The max field of Age should have the format of <y> days.

Future Work

Allow !Event % <x> to use weeks, months, years, decades, centuries.

Create the Logbook, Calendar, Day, Month, and Year objects when not found.

The age of the character is vulnerable to StatReset.js. If used, it would overwrite the years information with the days information stored in the max field!

Make the AgeCharacter more user friendly without direct editing of API coding.

Clone this wiki locally