@drincs/nqtr 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/classes/Activity.ts","../src/managers/TimeManager.ts","../src/classes/navigation/Location.ts","../src/classes/navigation/Map.ts","../src/classes/navigation/Room.ts","../src/decorators/ActivityDecorator.ts","../src/decorators/CommitmentDecorator.ts","../src/decorators/RoomDecorator.ts","../src/functions/RoutineFunctions.ts","../src/classes/navigation/ActivityRoom.ts","../src/classes/quest/Goal.ts","../src/classes/quest/Quest.ts","../src/classes/quest/Stage.ts","../src/enums/ExecutionTypeEnum.ts","../src/functions/NavigationFunctions.ts","../src/functions/ActivityFunctions.ts"],"sourcesContent":["import { getFlag } from \"@drincs/pixi-vn\";\nimport TimeManager from \"../managers/TimeManager\";\nimport { GraphicItemType } from \"../types/GraphicItem\";\n\nexport interface ActivityProps {\n /**\n * The name\n */\n name?: string\n /**\n * The hour when the activity starts. If the activity is not started yet, it will be hidden.\n * If you set 3, the activity will be hidden into hours 1 and 2, and will be shown from hour 3.\n */\n fromHour?: number\n /**\n * The hour when the activity ends. If the activity is ended yet, it will be hidden.\n * If you set 3, the activity will be shown into hours 1 and 2 and will be hidden from hour 3.\n */\n toHour?: number\n /**\n * The day when the activity starts. If the activity is not started yet, it will be hidden.\n * If you set 3, the activity will be hidden into days 1 and 2, and will be shown from day 3.\n */\n fromDay?: number\n /**\n * The day when the activity ends. If the activity is ended yet, it will be deleted or hidden.\n * If you set 3, the activity will be shown into days 1 and 2 and will be deleted or hidden from day 3.\n */\n toDay?: number\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport abstract class ActivityStoredAbstract {\n constructor(onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n this.defaultName = props.name\n this.defaultFromHour = props.fromHour\n this.defaultToHour = props.toHour\n this.defaultFromDay = props.fromDay\n this.defaultToDay = props.toDay\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n this._onRun = onRun\n }\n\n abstract setStorageProperty<T>(propertyName: string, value: T | undefined): void;\n abstract getStorageProperty<T>(propertyName: string): T | undefined;\n abstract get id(): string\n\n private defaultName?: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName || \"\"\n }\n set name(value: string | undefined) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultFromHour?: number\n get fromHour(): number {\n return this.getStorageProperty<number>(\"fromHour\") || this.defaultFromHour || TimeManager.minDayHour\n }\n set fromHour(value: number | undefined) {\n this.setStorageProperty(\"fromHour\", value)\n }\n\n private defaultToHour?: number\n get toHour(): number {\n return this.getStorageProperty<number>(\"toHour\") || this.defaultToHour || (TimeManager.maxDayHour + 1)\n }\n set toHour(value: number | undefined) {\n this.setStorageProperty(\"toHour\", value)\n }\n\n private defaultFromDay?: number\n get fromDay(): number | undefined {\n return this.getStorageProperty<number>(\"fromDay\") || this.defaultFromDay\n }\n set fromDay(value: number | undefined) {\n this.setStorageProperty(\"fromDay\", value)\n }\n\n private defaultToDay?: number\n get toDay(): number | undefined {\n return this.getStorageProperty<number>(\"toDay\") || this.defaultToDay\n }\n set toDay(value: number | undefined) {\n this.setStorageProperty(\"toDay\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n if (this.fromDay && this.fromDay > TimeManager.currentDay) {\n return true\n }\n if (!TimeManager.nowIsBetween(this.fromHour, this.toHour)) {\n return true\n }\n if (!this.isExpired) {\n return true\n }\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _onRun: (activity: ActivityModel) => void\n get onRun() {\n return this._onRun\n }\n\n isExpired(): boolean {\n if (this.toDay && this.toDay <= TimeManager.currentDay) {\n return true\n }\n return false\n }\n\n export(): ActivityProps {\n return {\n name: this.getStorageProperty<string>(\"name\") || this.defaultName,\n fromHour: this.getStorageProperty<number>(\"fromHour\") || this.defaultFromHour,\n toHour: this.getStorageProperty<number>(\"toHour\") || this.defaultToHour,\n fromDay: this.getStorageProperty<number>(\"fromDay\") || this.defaultFromDay,\n toDay: this.getStorageProperty<number>(\"toDay\") || this.defaultToDay,\n disabled: this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled,\n hidden: this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden,\n iconElement: this._iconElement\n }\n }\n}\n\nexport default class ActivityModel {\n constructor(id: string, onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n this._id = id\n this._name = props.name\n this._fromHour = props.fromHour\n this._toHour = props.toHour\n this._fromDay = props.fromDay\n this._toDay = props.toDay\n this._disabled = props.disabled || false\n this._hidden = props.hidden || false\n this._iconElement = props.iconElement\n this._onRun = onRun\n }\n\n private _id: string\n get id(): string {\n return this._id\n }\n\n private _name?: string\n get name(): string | undefined {\n return this._name\n }\n\n private _fromHour?: number\n get fromHour(): number | undefined {\n return this._fromHour\n }\n\n private _toHour?: number\n get toHour(): number | undefined {\n return this._toHour\n }\n\n private _fromDay?: number\n get fromDay(): number | undefined {\n return this._fromDay\n }\n\n private _toDay?: number\n get toDay(): number | undefined {\n return this._toDay\n }\n\n private _disabled?: boolean | string\n get disabled(): boolean | undefined {\n if (typeof this._disabled === \"string\") {\n return getFlag(this._disabled)\n }\n return this._disabled\n }\n\n private _hidden: boolean | string\n get hidden(): boolean {\n if (this.fromDay && this.fromDay > TimeManager.currentDay) {\n return true\n }\n if (!this.isDeadline) {\n return true\n }\n if (typeof this._hidden === \"string\") {\n return getFlag(this._hidden)\n }\n return this._hidden\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _onRun: (activity: ActivityModel) => void\n get onRun() {\n return this._onRun\n }\n\n isDeadline(): boolean {\n if (this.toDay && this.toDay <= TimeManager.currentDay) {\n return true\n }\n return false\n }\n\n export(): ActivityProps {\n return {\n name: this._name,\n fromHour: this._fromHour,\n toHour: this._toHour,\n fromDay: this._fromDay,\n toDay: this._toDay,\n disabled: this._disabled,\n hidden: this._hidden,\n iconElement: this._iconElement,\n }\n }\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\";\n\nconst TIME_SETTINGS_KEY = '___nqtr-time_manager_settings___';\nconst TIME_DATA_KEY = '___nqtr-time_manager_data___';\n\nexport interface ITimeSettings {\n minDayHour?: number\n maxDayHour?: number\n defaultTimeSpent?: number\n timeSlots?: ITimeStlot[]\n weekLength?: number\n newDayHour?: number\n weekendStartDay?: number\n weekDaysNames?: string[]\n}\n\ninterface ITimeData {\n currentHour?: number\n currentDay?: number\n}\n\nexport interface ITimeStlot {\n name: string\n startHour: number\n}\n\nexport default class TimeManager {\n private constructor() { }\n static set editSettings(value: ITimeSettings) {\n let settings: any = {}\n if (typeof value.minDayHour === 'number') {\n settings['minDayHour'] = value.minDayHour\n }\n if (typeof value.maxDayHour === 'number') {\n settings['maxDayHour'] = value.maxDayHour\n }\n if (typeof value.minDayHour === 'number') {\n settings['defaultTimeSpent'] = value.defaultTimeSpent\n }\n if (Array.isArray(value.timeSlots)) {\n settings['timeSlots'] = value.timeSlots\n }\n if (typeof value.weekLength === 'number') {\n settings['weekLength'] = value.weekLength\n }\n if (typeof value.newDayHour === 'number') {\n settings['newDayHour'] = value.newDayHour\n }\n if (typeof value.weekendStartDay === 'number') {\n let weekLength = value.weekLength || TimeManager.weekLength\n if (value.weekendStartDay >= weekLength) {\n console.warn(`[NQTR] Weekend start day should be less than week length ${weekLength}`)\n }\n settings['weekendStartDay'] = value.weekendStartDay\n }\n if (Array.isArray(value.weekDaysNames)) {\n let weekLength = value.weekLength || TimeManager.weekLength\n if (value.weekDaysNames.length !== weekLength) {\n console.warn(`[NQTR] Week days names should be equal to week length ${weekLength}`)\n }\n settings['weekDaysNames'] = value.weekDaysNames\n }\n GameStorageManager.setVariable(TIME_SETTINGS_KEY, settings)\n }\n static get minDayHour(): number {\n let result = 0\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('minDayHour')) {\n result = settings.minDayHour || 0\n }\n return result\n }\n static get maxDayHour(): number {\n let result = 24\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('maxDayHour')) {\n result = settings.maxDayHour || 24\n }\n return result\n }\n static get defaultTimeSpent(): number {\n let result = 1\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('defaultTimeSpent')) {\n result = settings.defaultTimeSpent || 1\n }\n return result\n }\n static get newDayHour(): number {\n let result = 0\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('newDayHour')) {\n result = settings.newDayHour || 0\n }\n return result\n }\n static get timeSlots(): ITimeStlot[] {\n let result: ITimeStlot[] = []\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('timeSlots')) {\n result = settings.timeSlots || []\n }\n return result\n }\n static get weekLength(): number {\n let result = 7\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekLength')) {\n result = settings.weekLength || 7\n }\n return result\n }\n static get weekendStartDay(): number {\n let result = TimeManager.weekLength - 1\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekendStartDay')) {\n result = settings.weekendStartDay || TimeManager.weekLength - 1\n }\n return result\n }\n static get weekDaysNames(): string[] {\n let result: string[] = []\n let settings = GameStorageManager.getVariable<ITimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekDaysNames')) {\n result = settings.weekDaysNames || result\n }\n return result\n }\n\n static get currentHour(): number {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (data.hasOwnProperty('currentHour') && typeof data.currentHour === 'number') {\n return data.currentHour\n }\n return TimeManager.minDayHour\n }\n static set currentHour(value: number | undefined) {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (typeof value === 'number') {\n data.currentHour = value\n } else {\n delete data.currentHour\n }\n GameStorageManager.setVariable(TIME_DATA_KEY, data)\n }\n\n static get currentDay(): number {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (data.hasOwnProperty('currentDay') && typeof data.currentDay === 'number') {\n return data.currentDay\n }\n return 0\n }\n static set currentDay(value: number | undefined) {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (typeof value === 'number') {\n data.currentDay = value\n }\n else {\n delete data.currentDay\n }\n GameStorageManager.setVariable(TIME_DATA_KEY, data)\n }\n\n\n static get isWeekend(): boolean {\n return TimeManager.weekDayNumber >= TimeManager.weekendStartDay\n }\n static get weekDayNumber(): number {\n let result = TimeManager.currentDay % TimeManager.weekLength\n return result + 1\n }\n static get weekDayName(): string | undefined {\n let weekDayNumber = TimeManager.weekDayNumber - 1\n if (weekDayNumber >= TimeManager.weekDaysNames.length) {\n console.warn(`[NQTR] Week day name is not defined for day ${weekDayNumber}`, TimeManager.weekDaysNames)\n return undefined\n }\n return TimeManager.weekDaysNames[weekDayNumber]\n }\n\n\n static newHour(timeSpent: number = TimeManager.defaultTimeSpent): number {\n let newHour = TimeManager.currentHour + timeSpent\n if (newHour >= TimeManager.maxDayHour) {\n TimeManager.newDay()\n newHour = TimeManager.minDayHour + (newHour - TimeManager.maxDayHour)\n }\n TimeManager.currentHour = newHour\n return newHour\n }\n\n static newDay(days: number = 1): number {\n let newDay = TimeManager.currentDay + days\n TimeManager.currentDay = newDay\n return newDay\n }\n\n static nowIsBetween(fromHour: number, toHour: number): boolean {\n let currentHour = TimeManager.currentHour\n if (fromHour < toHour) {\n return currentHour >= fromHour && currentHour < toHour\n }\n return currentHour >= fromHour || currentHour < toHour\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\";\nimport { GraphicItemType } from \"../../types/GraphicItem\";\nimport MapBaseModel from \"./Map\";\nimport RoomBaseModel from \"./Room\";\n\nconst LOCATION_CATEGORY = \"__nqtr-location__\"\n\nexport interface LocationBaseModelProps {\n /**\n * The name\n */\n name?: string\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport default class LocationBaseModel<TMap extends MapBaseModel = MapBaseModel> extends StoredClassModel {\n constructor(id: string, map: TMap, entrance: RoomBaseModel, props: LocationBaseModelProps) {\n super(LOCATION_CATEGORY, id)\n if (entrance.location.id !== id) {\n throw new Error(`[NQTR] Entrance room ${entrance.id} is not in location ${id}`)\n }\n this._entrance = entrance\n this.defaultName = props.name || \"\"\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n this._map = map\n }\n private _entrance: RoomBaseModel\n get entrance(): RoomBaseModel {\n return this._entrance\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _map: TMap\n get map(): TMap {\n return this._map\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\"\nimport { GraphicItemType } from \"../../types/GraphicItem\"\n\nconst MAP_CATEGORY = \"__nqtr-map__\"\n\nexport interface MapBaseModelProps<TMap extends MapBaseModel = MapBaseModel> {\n /**\n * The name\n */\n name?: string\n /**\n * The image. It can be a string, an HTMLElement or a Pixi'VN Canvas Item.\n * Or an object to manage multiple image types. For example to have a image based on time.\n * @example\n * ```ts\n * {\n * \"morning\": \"morning-background.jpg\",\n * \"afternoon\": \"afternoon-background.jpg\",\n * \"evening\": \"evening-background.jpg\",\n * \"night\": \"night-background.jpg\"\n * }\n * ```\n */\n image?: GraphicItemType | { [key: string]: GraphicItemType }\n /**\n * The neighboring maps that are available in this map.\n * @example\n * ```ts\n * {\n * \"north\": atlantaMap,\n * \"south\": miamiMap,\n * \"east\": savannahMap,\n * \"west\": birminghamMap\n * }\n * ```\n */\n neighboringMaps?: { [key: string]: TMap }\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n}\n\nexport default class MapBaseModel extends StoredClassModel {\n constructor(id: string, props: MapBaseModelProps) {\n super(MAP_CATEGORY, id)\n this.defaultName = props.name || \"\"\n this.defaultImage = props.image\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultImage?: GraphicItemType | { [key: string]: GraphicItemType }\n get image(): GraphicItemType | { [key: string]: GraphicItemType } | undefined {\n return this.getStorageProperty<GraphicItemType>(\"image\") || this.defaultImage\n }\n set image(value: GraphicItemType | { [key: string]: GraphicItemType } | undefined) {\n this.setStorageProperty(\"image\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\";\nimport { getActivityById } from \"../../decorators\";\nimport { getCurrentCommitments } from \"../../functions/RoutineFunctions\";\nimport { GraphicItemType } from \"../../types/GraphicItem\";\nimport ActivityModel, { ActivityProps } from \"../Activity\";\nimport CommitmentBaseModel from \"../Commitment\";\nimport { ActivityRoom } from \"./ActivityRoom\";\nimport LocationBaseModel from \"./Location\";\n\nexport const ROOM_CATEGORY = \"__nqtr-room__\"\n\ninterface RoomActivityMemory { [key: string]: ActivityProps }\n\nexport interface RoomBaseModelProps {\n /**\n * The name\n */\n name?: string\n /**\n * The image. It can be a string, an HTMLElement or a Pixi'VN Canvas Item.\n * Or an object to manage multiple image types. For example to have a image based on time.\n * @example\n * ```ts\n * {\n * \"morning\": \"morning-background.jpg\",\n * \"afternoon\": \"afternoon-background.jpg\",\n * \"evening\": \"evening-background.jpg\",\n * \"night\": \"night-background.jpg\"\n * }\n * ```\n */\n image?: GraphicItemType | { [key: string]: GraphicItemType }\n /**\n * The activities that are available in this room.\n */\n defaultActivities?: ActivityModel[],\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport default class RoomBaseModel<TLocation extends LocationBaseModel = LocationBaseModel> extends StoredClassModel {\n constructor(id: string, location: TLocation, props: RoomBaseModelProps) {\n super(ROOM_CATEGORY, id)\n this._location = location\n this.defaultName = props.name || \"\"\n this.defaultImage = props.image\n this.defaultActivityIds = props.defaultActivities?.map(activity => activity.id) || []\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n }\n\n private _location: TLocation\n get location(): TLocation {\n return this._location\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultImage?: GraphicItemType | { [key: string]: GraphicItemType }\n get image(): GraphicItemType | { [key: string]: GraphicItemType } | undefined {\n return this.getStorageProperty<GraphicItemType>(\"image\") || this.defaultImage\n }\n set image(value: GraphicItemType | { [key: string]: GraphicItemType } | undefined) {\n this.setStorageProperty(\"image\", value)\n }\n\n private defaultActivityIds: string[]\n get defaultActivities(): ActivityRoom<this>[] {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let activities = this.defaultActivityIds.map(id => {\n let activity = getActivityById(id)\n if (!activity) {\n console.warn(`[NQTR] Activity with id ${id} not found, so it will be ignored.`)\n return undefined\n }\n let memory = activity.export()\n if (roomMemories && roomMemories[id]) {\n memory = {\n ...memory,\n ...roomMemories[id]\n }\n }\n return new ActivityRoom(id, this, activity.onRun, memory)\n }).filter(activity => activity !== undefined)\n return activities as ActivityRoom<this>[]\n }\n\n get activityIds(): string[] {\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n return this.defaultActivityIds.concat(addedActivityIds)\n }\n get activities(): ActivityRoom<this>[] {\n let activities = this.activityIds.map(id => {\n return this.getActivity(id)\n }).filter(activity => activity !== undefined)\n return activities as ActivityRoom<this>[]\n }\n getActivityMemory(id: string): object | undefined {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let roomMemory = roomMemories[id] || {}\n return roomMemory\n }\n getActivity(id: string): ActivityRoom<this> | undefined {\n if (!this.activityIds.includes(id)) {\n console.error(`[NQTR] Activity with id ${id} not found in room ${this.id}`)\n return undefined\n }\n let activity = getActivityById(id)\n if (!activity) {\n console.error(`[NQTR] Activity with id ${id} not found`)\n return undefined\n }\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let roomMemory = roomMemories[id] || {}\n roomMemory = {\n ...activity.export(),\n ...roomMemory\n }\n return new ActivityRoom(id, this, activity.onRun, roomMemory)\n }\n setActivity(activity: ActivityRoom) {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n roomMemories[activity.id] = activity.export()\n this.setStorageProperty(\"activities_memory\", roomMemories)\n }\n addActivity(activity: ActivityModel) {\n if (this.activityIds.includes(activity.id)) {\n let currentActivity = this.getActivity(activity.id)\n if (currentActivity && currentActivity.isExpired()) {\n this.removeActivity(activity.id)\n return\n } else {\n console.error(`[NQTR] Activity with id ${activity.id} already exists in room ${this.id}, so it will be ignored.`)\n return\n }\n }\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n addedActivityIds.push(activity.id)\n this.setStorageProperty(\"addedActivityIds\", addedActivityIds)\n }\n removeActivity(activity: ActivityModel | string) {\n let activityId = typeof activity === \"string\" ? activity : activity.id\n if (this.defaultActivityIds.includes(activityId)) {\n console.warn(`[NQTR] Activity with id ${activityId} is a default activity, so it can't be removed. It will be hidden instead.`)\n let activityToEdit = this.getActivity(activityId)\n if (!activityToEdit) {\n console.error(`[NQTR] Activity with id ${activityId} not found, so it can't be hidden.`)\n return\n }\n activityToEdit.hidden = true\n return\n }\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n let index = addedActivityIds.indexOf(activityId)\n if (index === -1) {\n console.error(`[NQTR] Activity with id ${activityId} not found, so it can't be removed.`)\n return\n }\n addedActivityIds.splice(index, 1)\n this.setStorageProperty(\"addedActivityIds\", addedActivityIds)\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n delete roomMemories[activityId]\n this.setStorageProperty(\"activities_memory\", roomMemories)\n }\n clearExpiredActivities() {\n this.activities.forEach(activity => {\n if (activity.isExpired()) {\n this.removeActivity(activity.id)\n }\n })\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n getRoutine<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let commitments = getCurrentCommitments<TCommitment>()\n return commitments.filter(c => c.room.id === this.id)\n }\n}\n","import { ActivityModel } from \"../classes\"\n\nexport const registeredActivities: { [id: string]: ActivityModel } = {}\n\nexport function saveActivity(activity: ActivityModel | ActivityModel[]) {\n if (Array.isArray(activity)) {\n activity.forEach(c => saveActivity(c))\n return\n }\n if (registeredActivities[activity.id]) {\n console.warn(`[NQTR] Activity id ${activity.id} already exists, it will be overwritten`)\n }\n registeredActivities[activity.id] = activity\n}\n\nexport function getActivityById(id: string): ActivityModel | undefined {\n try {\n let activity = registeredActivities[id]\n if (!activity) {\n console.error(`[NQTR] Activity ${id} not found`)\n return\n }\n return activity as ActivityModel\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Activity ${id}`, e)\n return\n }\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\"\nimport CommitmentBaseModel from \"../classes/Commitment\"\n\nconst TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY = \"___nqtr-temporary_commitment___\"\nexport const registeredCommitments: { [id: string]: CommitmentBaseModel } = {}\nexport const fixedCommitments: { [id: string]: CommitmentBaseModel } = {}\n\nexport function saveCommitment<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitment: TCommitment | TCommitment[]) {\n if (Array.isArray(commitment)) {\n commitment.forEach(c => saveCommitment(c))\n return\n }\n if (registeredCommitments[commitment.id]) {\n console.warn(`[NQTR] Commitment id ${commitment.id} already exists, it will be overwritten`)\n }\n registeredCommitments[commitment.id] = commitment\n}\n\nexport function getCommitmentById<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(id: string): TCommitment | undefined {\n try {\n let commitment = registeredCommitments[id]\n if (!commitment) {\n console.error(`[NQTR] Commitment ${id} not found`)\n return\n }\n return commitment as TCommitment\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Commitment ${id}`, e)\n return\n }\n}\n\nexport function setFixedCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitments: TCommitment[] | TCommitment) {\n if (Array.isArray(commitments)) {\n commitments.forEach(c => saveCommitment(c))\n return\n }\n if (registeredCommitments[commitments.id]) {\n console.warn(`[NQTR] Commitment id ${commitments.id} already exists, it will be overwritten`)\n }\n registeredCommitments[commitments.id] = commitments\n}\n\nexport function addTemporaryCommitment<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitment: TCommitment[] | TCommitment) {\n if (!Array.isArray(commitment)) {\n commitment = [commitment]\n }\n let commitmentsIds = commitment.map(commitment => {\n let commitmentTest = getCommitmentById(commitment.id)\n if (!commitmentTest) {\n console.warn(`[NQTR] Commitment ${commitment.id} not found, it will be ignored`)\n return undefined\n }\n return commitment.id\n }).filter(id => id !== undefined)\n\n GameStorageManager.setVariable(TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY, [commitmentsIds])\n}\n\nexport function getFixedCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n return Object.values(fixedCommitments) as TCommitment[]\n}\n\nexport function getTemporaryCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let commitmentsIds = GameStorageManager.getVariable<string[]>(TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY)\n if (!commitmentsIds) {\n return []\n }\n let commitments = commitmentsIds.map(id => getCommitmentById<TCommitment>(id)).filter(commitment => commitment !== undefined)\n return commitments as TCommitment[]\n}\n","import { RoomBaseModel } from \"../classes/navigation\"\n\nexport const registeredRooms: { [id: string]: RoomBaseModel } = {}\n\nexport function saveRoom<TRoom extends RoomBaseModel = RoomBaseModel>(room: TRoom | TRoom[]) {\n if (Array.isArray(room)) {\n room.forEach(c => saveRoom(c))\n return\n }\n if (registeredRooms[room.id]) {\n console.warn(`[NQTR] Room id ${room.id} already exists, it will be overwritten`)\n }\n registeredRooms[room.id] = room\n}\n\nexport function getRoomById<TRoom extends RoomBaseModel = RoomBaseModel>(id: string): TRoom | undefined {\n try {\n let room = registeredRooms[id]\n if (!room) {\n console.error(`[NQTR] Room ${id} not found`)\n return\n }\n return room as TRoom\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Room ${id}`, e)\n return\n }\n}\n","import { CharacterBaseModel } from \"@drincs/pixi-vn\";\nimport CommitmentBaseModel from \"../classes/Commitment\";\nimport { getFixedCommitments, getTemporaryCommitments } from \"../decorators\";\nimport { registeredCommitments } from \"../decorators/CommitmentDecorator\";\n\nexport function clearExpiredRoutine() {\n Object.entries(registeredCommitments).forEach(([_, commitment]) => {\n if (commitment.isExpired()) {\n delete registeredCommitments[commitment.id]\n }\n })\n}\n\nexport function getCurrentCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let character_commitments: { [character: string]: TCommitment } = {}\n let oltherCommitments: TCommitment[] = []\n getTemporaryCommitments<TCommitment>().reverse().forEach(c => {\n if (!c.hidden) {\n if (c.characters.length > 1) {\n // all the characters don't already have commitments\n let allAvailable = c.characters.every(ch => !character_commitments[ch.id])\n if (allAvailable) {\n c.characters.forEach(ch => {\n character_commitments[ch.id] = c\n })\n }\n }\n else {\n oltherCommitments.push(c)\n }\n }\n })\n getFixedCommitments<TCommitment>().reverse().forEach(c => {\n if (!c.hidden) {\n if (c.characters.length > 1) {\n c.characters.forEach(ch => {\n if (!character_commitments[ch.id]) {\n character_commitments[ch.id] = c\n }\n })\n }\n else {\n oltherCommitments.push(c)\n }\n }\n })\n return Object.values(character_commitments).concat(oltherCommitments)\n}\n\nexport function getCommitmentByCharacter<TCommitment extends CommitmentBaseModel = CommitmentBaseModel, TCharacter extends CharacterBaseModel = CharacterBaseModel>(character: TCharacter): TCommitment | undefined {\n getCurrentCommitments().forEach(c => {\n if (c.characters.map(ch => ch.id).includes(character.id)) {\n return c\n }\n })\n return undefined\n}\n","import ActivityModel, { ActivityProps, ActivityStoredAbstract } from \"../Activity\";\nimport RoomBaseModel from \"./Room\";\n\nexport class ActivityRoom<TRoom extends RoomBaseModel = RoomBaseModel> extends ActivityStoredAbstract {\n constructor(id: string, room: TRoom, onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n super(onRun, props)\n this._id = id\n this._room = room\n }\n setStorageProperty<T>(_: string, __: T | undefined): void {\n this._room.setActivity(this)\n }\n getStorageProperty<T>(propertyName: string): T | undefined {\n let activity = this._room.getActivityMemory(this.id)\n if (!activity || !activity.hasOwnProperty(propertyName)) {\n return undefined\n }\n return (activity as any)[propertyName]\n }\n private _id: string;\n get id(): string {\n return this._id;\n }\n private _room: TRoom;\n get room(): TRoom {\n return this._room;\n }\n\n export(): object {\n let result: any = {}\n if (this.name !== undefined) {\n result[\"name\"] = this.name\n }\n if (this.fromHour !== undefined) {\n result[\"fromHour\"] = this.fromHour\n }\n if (this.toHour !== undefined) {\n result[\"toHour\"] = this.toHour\n }\n if (this.fromDay !== undefined) {\n result[\"fromDay\"] = this.fromDay\n }\n if (this.toDay !== undefined) {\n result[\"toDay\"] = this.toDay\n }\n if (this.disabled !== undefined) {\n result[\"disabled\"] = this.disabled\n }\n return result\n }\n}\n","export interface GoalProps {\n description: string\n need?: number\n have?: number\n}\n\nexport interface IGoal {\n description: string\n need: number\n have: number\n}\n\nexport default class Goal implements IGoal {\n constructor(props: GoalProps) {\n this._description = props.description\n this.need = props.need || 1\n this.have = props.have || 0\n }\n private _description: string\n get description(): string {\n return this._description\n }\n need: number\n have: number\n get isComplete(): boolean {\n return this.have >= this.need\n }\n setComplete(): void {\n this.have = this.need\n }\n find(): void {\n this.have++\n }\n get export(): IGoal {\n return {\n description: this.description,\n need: this.need,\n have: this.have\n }\n }\n}\n","import { StoredClassModel } from \"@drincs/pixi-vn\";\nimport StageBaseModel from \"./Stage\";\n\nconst QUEST_CATEGORY = \"__nqtr-quest__\"\n\nexport interface QuestBaseModelProps {\n name?: string\n description?: string\n icon?: string\n image?: string\n isInDevelopment?: boolean\n}\n\nexport default class QuestBaseModel<TStage extends StageBaseModel = StageBaseModel> extends StoredClassModel {\n constructor(id: string, stages: TStage[], props: QuestBaseModelProps) {\n super(QUEST_CATEGORY, id)\n this._stages = stages\n this._name = props.name || \"\"\n this._description = props.description || \"\"\n this._icon = props.icon || \"\"\n this._image = props.image || \"\"\n this._isInDevelopment = props.isInDevelopment || false\n }\n private _stages: TStage[]\n get stages(): TStage[] {\n return this._stages\n }\n\n private _name: string\n get name(): string {\n return this._name\n }\n\n private _description: string\n get description(): string {\n return this._description\n }\n\n private _icon: string\n get icon(): string {\n return this._icon\n }\n\n private _image: string\n get image(): string {\n return this._image\n }\n\n private _isInDevelopment: boolean\n get isInDevelopment(): boolean {\n return this._isInDevelopment\n }\n}\n","import { StoredClassModel } from \"@drincs/pixi-vn\";\nimport { QuestsRequiredType } from \"../../types/QuestsRequired\";\nimport Goal, { IGoal } from \"./Goal\";\n\nconst STAGE_CATEGORY = \"__nqtr-stage__\"\n\nexport interface StageBaseModelProps {\n goals?: Goal[]\n name?: string\n description?: string\n adviceDescription?: string\n image?: string\n daysRequiredToStart: number\n flagsRequired: string[]\n questsRequired: QuestsRequiredType[]\n requestDescription?: string\n onStart: () => void\n onEnd: () => void\n}\n\nexport default class StageBaseModel extends StoredClassModel {\n constructor(id: string, props: StageBaseModelProps) {\n super(STAGE_CATEGORY, id)\n this._name = props.name || \"\"\n this._description = props.description || \"\"\n this._adviceDescription = props.adviceDescription || \"\"\n this._image = props.image || \"\"\n this._daysRequiredToStart = props.daysRequiredToStart\n this._flagsRequired = props.flagsRequired\n this._questsRequired = props.questsRequired\n this._requestDescription = props.requestDescription || \"\"\n this._onStart = props.onStart\n this._onEnd = props.onEnd\n }\n\n\n private _completed: boolean = false\n get completed(): boolean {\n return this._completed\n }\n\n private _active: boolean = false\n get active(): boolean {\n return this._active\n }\n\n private defaultGoals: Goal[] = []\n get goals(): Goal[] {\n let list = this.getStorageProperty<IGoal[]>('goals')\n if (!list) {\n return this.defaultGoals\n }\n return list.map(goal => new Goal(goal))\n }\n set goals(value: Goal[]) {\n let list = value.map(goal => goal.export)\n this.setStorageProperty('goals', list)\n }\n\n private _name: string\n get name(): string {\n return this._name\n }\n\n private _description: string\n get description(): string {\n return this._description\n }\n\n private _adviceDescription: string\n get adviceDescription(): string {\n return this._adviceDescription\n }\n\n private _image: string\n get image(): string {\n return this._image\n }\n\n private _daysRequiredToStart: number\n get daysRequiredToStart(): number {\n return this._daysRequiredToStart\n }\n\n private _flagsRequired: string[]\n get flagsRequired(): string[] {\n return this._flagsRequired\n }\n\n private _questsRequired: QuestsRequiredType[]\n get questsRequired(): QuestsRequiredType[] {\n return this._questsRequired\n }\n\n private _requestDescription: string\n get requestDescription(): string {\n return this._requestDescription\n }\n\n private _onStart: () => void\n get onStart(): () => void {\n return this._onStart\n }\n\n private _onEnd: () => void\n get onEnd(): () => void {\n return this._onEnd\n }\n}\n","export enum ExecutionTypeEnum {\n AUTOMATIC = \"automatic\",\n INTERACTION = \"interaction\",\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\";\nimport { LocationBaseModel, MapBaseModel, RoomBaseModel } from \"../classes/navigation\";\nimport { getRoomById } from \"../decorators/RoomDecorator\";\n\nconst CURRENT_ROOM_MEMORY_KEY = '___nqtr-current_room_memory___';\n\nexport function setCurrentRoom<TRoom extends RoomBaseModel = RoomBaseModel>(room: TRoom) {\n let roomRegistrated = getRoomById(room.id);\n if (!roomRegistrated) {\n console.error(`[NQTR] The room ${room.id} is not registered, so it can't be set as current room`);\n return;\n }\n localStorage.setItem(CURRENT_ROOM_MEMORY_KEY, room.id);\n}\n\nexport function getCurrentRoom<TRoom extends RoomBaseModel = RoomBaseModel>(): TRoom | undefined {\n let roomId = GameStorageManager.getVariable<string>(CURRENT_ROOM_MEMORY_KEY);\n if (!roomId) {\n console.error(`[NQTR] The current room has not yet been set`);\n return\n }\n let room = getRoomById<TRoom>(roomId);\n if (!room) {\n console.error(`[NQTR] Current room ${roomId} not found`);\n return\n }\n return room\n}\n\nexport function getCurrenrLocation<TLocation extends LocationBaseModel = LocationBaseModel>(): TLocation | undefined {\n let room = getCurrentRoom<RoomBaseModel<TLocation>>();\n if (!room) {\n return\n }\n return room.location\n}\n\nexport function getCueerntMap<TMap extends MapBaseModel = MapBaseModel>(): TMap | undefined {\n let location = getCurrenrLocation<LocationBaseModel<TMap>>();\n if (!location) {\n return\n }\n return location.map\n}\n","import { ActivityRoom } from \"../classes/navigation/ActivityRoom\"\nimport { registeredRooms } from \"../decorators/RoomDecorator\"\nimport { getCurrentRoom } from \"./NavigationFunctions\"\n\nexport function clearExpiredActivities() {\n Object.entries(registeredRooms).forEach(([_, room]) => {\n room.clearExpiredActivities()\n })\n}\n\nexport function currentActivities(): ActivityRoom[] {\n let currentRoom = getCurrentRoom()\n if (!currentRoom) {\n return []\n }\n return currentRoom.activities.filter(activity => !activity.hidden)\n}\n"],"mappings":"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","names":["getFlag","getFlag","StoredClassModel","getFlag","StoredClassModel","GameStorageManager","commitment","StoredClassModel","getFlag","StoredClassModel","StoredClassModel","StoredClassModel","ExecutionTypeEnum","GameStorageManager","GameStorageManager"]}
1
+ {"version":3,"sources":["../src/classes/Activity.ts","../src/managers/TimeManager.ts","../src/classes/navigation/Location.ts","../src/classes/navigation/Map.ts","../src/classes/navigation/Room.ts","../src/decorators/ActivityDecorator.ts","../src/decorators/CommitmentDecorator.ts","../src/decorators/RoomDecorator.ts","../src/functions/RoutineFunctions.ts","../src/classes/navigation/ActivityRoom.ts","../src/classes/quest/Goal.ts","../src/classes/quest/Quest.ts","../src/classes/quest/Stage.ts","../src/enums/ExecutionTypeEnum.ts","../src/functions/NavigationFunctions.ts","../src/functions/ActivityFunctions.ts"],"sourcesContent":["import { getFlag } from \"@drincs/pixi-vn\";\nimport TimeManager from \"../managers/TimeManager\";\nimport { GraphicItemType } from \"../types/GraphicItem\";\n\nexport interface ActivityProps {\n /**\n * The name\n */\n name?: string\n /**\n * The hour when the activity starts. If the activity is not started yet, it will be hidden.\n * If you set 3, the activity will be hidden into hours 1 and 2, and will be shown from hour 3.\n */\n fromHour?: number\n /**\n * The hour when the activity ends. If the activity is ended yet, it will be hidden.\n * If you set 3, the activity will be shown into hours 1 and 2 and will be hidden from hour 3.\n */\n toHour?: number\n /**\n * The day when the activity starts. If the activity is not started yet, it will be hidden.\n * If you set 3, the activity will be hidden into days 1 and 2, and will be shown from day 3.\n */\n fromDay?: number\n /**\n * The day when the activity ends. If the activity is ended yet, it will be deleted or hidden.\n * If you set 3, the activity will be shown into days 1 and 2 and will be deleted or hidden from day 3.\n */\n toDay?: number\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport abstract class ActivityStoredAbstract {\n constructor(onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n this.defaultName = props.name\n this.defaultFromHour = props.fromHour\n this.defaultToHour = props.toHour\n this.defaultFromDay = props.fromDay\n this.defaultToDay = props.toDay\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n this._onRun = onRun\n }\n\n abstract setStorageProperty<T>(propertyName: string, value: T | undefined): void;\n abstract getStorageProperty<T>(propertyName: string): T | undefined;\n abstract get id(): string\n\n private defaultName?: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName || \"\"\n }\n set name(value: string | undefined) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultFromHour?: number\n get fromHour(): number {\n return this.getStorageProperty<number>(\"fromHour\") || this.defaultFromHour || TimeManager.minDayHours\n }\n set fromHour(value: number | undefined) {\n this.setStorageProperty(\"fromHour\", value)\n }\n\n private defaultToHour?: number\n get toHour(): number {\n return this.getStorageProperty<number>(\"toHour\") || this.defaultToHour || (TimeManager.maxDayHours + 1)\n }\n set toHour(value: number | undefined) {\n this.setStorageProperty(\"toHour\", value)\n }\n\n private defaultFromDay?: number\n get fromDay(): number | undefined {\n return this.getStorageProperty<number>(\"fromDay\") || this.defaultFromDay\n }\n set fromDay(value: number | undefined) {\n this.setStorageProperty(\"fromDay\", value)\n }\n\n private defaultToDay?: number\n get toDay(): number | undefined {\n return this.getStorageProperty<number>(\"toDay\") || this.defaultToDay\n }\n set toDay(value: number | undefined) {\n this.setStorageProperty(\"toDay\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n if (this.fromDay && this.fromDay > TimeManager.currentDay) {\n return true\n }\n if (!TimeManager.nowIsBetween(this.fromHour, this.toHour)) {\n return true\n }\n if (!this.isExpired) {\n return true\n }\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _onRun: (activity: ActivityModel) => void\n get onRun() {\n return this._onRun\n }\n\n isExpired(): boolean {\n if (this.toDay && this.toDay <= TimeManager.currentDay) {\n return true\n }\n return false\n }\n\n export(): ActivityProps {\n return {\n name: this.getStorageProperty<string>(\"name\") || this.defaultName,\n fromHour: this.getStorageProperty<number>(\"fromHour\") || this.defaultFromHour,\n toHour: this.getStorageProperty<number>(\"toHour\") || this.defaultToHour,\n fromDay: this.getStorageProperty<number>(\"fromDay\") || this.defaultFromDay,\n toDay: this.getStorageProperty<number>(\"toDay\") || this.defaultToDay,\n disabled: this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled,\n hidden: this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden,\n iconElement: this._iconElement\n }\n }\n}\n\nexport default class ActivityModel {\n constructor(id: string, onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n this._id = id\n this._name = props.name\n this._fromHour = props.fromHour\n this._toHour = props.toHour\n this._fromDay = props.fromDay\n this._toDay = props.toDay\n this._disabled = props.disabled || false\n this._hidden = props.hidden || false\n this._iconElement = props.iconElement\n this._onRun = onRun\n }\n\n private _id: string\n get id(): string {\n return this._id\n }\n\n private _name?: string\n get name(): string | undefined {\n return this._name\n }\n\n private _fromHour?: number\n get fromHour(): number | undefined {\n return this._fromHour\n }\n\n private _toHour?: number\n get toHour(): number | undefined {\n return this._toHour\n }\n\n private _fromDay?: number\n get fromDay(): number | undefined {\n return this._fromDay\n }\n\n private _toDay?: number\n get toDay(): number | undefined {\n return this._toDay\n }\n\n private _disabled?: boolean | string\n get disabled(): boolean | undefined {\n if (typeof this._disabled === \"string\") {\n return getFlag(this._disabled)\n }\n return this._disabled\n }\n\n private _hidden: boolean | string\n get hidden(): boolean {\n if (this.fromDay && this.fromDay > TimeManager.currentDay) {\n return true\n }\n if (!this.isDeadline) {\n return true\n }\n if (typeof this._hidden === \"string\") {\n return getFlag(this._hidden)\n }\n return this._hidden\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _onRun: (activity: ActivityModel) => void\n get onRun() {\n return this._onRun\n }\n\n isDeadline(): boolean {\n if (this.toDay && this.toDay <= TimeManager.currentDay) {\n return true\n }\n return false\n }\n\n export(): ActivityProps {\n return {\n name: this._name,\n fromHour: this._fromHour,\n toHour: this._toHour,\n fromDay: this._fromDay,\n toDay: this._toDay,\n disabled: this._disabled,\n hidden: this._hidden,\n iconElement: this._iconElement,\n }\n }\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\";\n\nconst TIME_SETTINGS_KEY = '___nqtr-time_manager_settings___';\nconst TIME_DATA_KEY = '___nqtr-time_manager_data___';\n\n/**\n * Time Settings, which can be set using `TimeManager.editSettings`\n */\nexport interface TimeSettings {\n /**\n * Minimum hour of the day (default: 0)\n */\n minDayHours?: number\n /**\n * Maximum hour of the day (default: 24)\n */\n maxDayHours?: number\n /**\n * Default time spent (default: 1)\n */\n defaultTimeSpent?: number\n /**\n * Time slots (default: [])\n * @example\n * ```ts\n * [\n * { name: 'Morning', startHour: 5 },\n * { name: 'Afternoon', startHour: 12 },\n * { name: 'Evening', startHour: 18 },\n * { name: 'Night', startHour: 22 }\n * ]\n */\n timeSlots?: ITimeStlot[]\n /**\n * Week length (default: 7)\n */\n weekLength?: number\n /**\n * Weekend start day. For example, if the real life weekend starts on Saturday, then the value should be 6 (default: weekLength - 1)\n */\n weekendStartDay?: number\n /**\n * Week days names (default: [])\n * @example\n * ```ts\n * ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']\n * ```\n */\n weekDaysNames?: string[]\n}\n\ninterface ITimeData {\n currentHour?: number\n currentDay?: number\n}\n\nexport interface ITimeStlot {\n name: string\n startHour: number\n}\n\nexport default class TimeManager {\n private constructor() { }\n private static editSettings(settings: TimeSettings) {\n let data: any = {}\n if (typeof settings.minDayHours === 'number') {\n data['minDayHours'] = settings.minDayHours\n }\n if (typeof settings.maxDayHours === 'number') {\n data['maxDayHours'] = settings.maxDayHours\n }\n if (typeof settings.minDayHours === 'number') {\n data['defaultTimeSpent'] = settings.defaultTimeSpent\n }\n if (Array.isArray(settings.timeSlots)) {\n data['timeSlots'] = settings.timeSlots\n }\n if (typeof settings.weekLength === 'number') {\n data['weekLength'] = settings.weekLength\n }\n if (typeof settings.weekendStartDay === 'number') {\n let weekLength = settings.weekLength || TimeManager.weekLength\n if (settings.weekendStartDay >= weekLength) {\n console.warn(`[NQTR] Weekend start day should be less than week length ${weekLength}`)\n }\n data['weekendStartDay'] = settings.weekendStartDay\n }\n if (Array.isArray(settings.weekDaysNames)) {\n let weekLength = settings.weekLength || TimeManager.weekLength\n if (settings.weekDaysNames.length !== weekLength) {\n console.warn(`[NQTR] Week days names should be equal to week length ${weekLength}`)\n }\n data['weekDaysNames'] = settings.weekDaysNames\n }\n GameStorageManager.setVariable(TIME_SETTINGS_KEY, data)\n }\n /**\n * Get time settings\n */\n static get settings(): TimeSettings {\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY) || {}\n return settings\n }\n /**\n * Set time settings, Is very important to set the settings before using the nqtr library, bacause more of the features are based on the time settings.\n */\n static set settings(value: TimeSettings) {\n TimeManager.editSettings(value)\n }\n static get minDayHours(): number {\n let result = 0\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('minDayHours')) {\n result = settings.minDayHours || 0\n }\n return result\n }\n static get maxDayHours(): number {\n let result = 24\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('maxDayHours')) {\n result = settings.maxDayHours || 24\n }\n return result\n }\n static get defaultTimeSpent(): number {\n let result = 1\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('defaultTimeSpent')) {\n result = settings.defaultTimeSpent || 1\n }\n return result\n }\n static get timeSlots(): ITimeStlot[] {\n let result: ITimeStlot[] = []\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('timeSlots')) {\n result = settings.timeSlots || []\n }\n return result\n }\n static get weekLength(): number {\n let result = 7\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekLength')) {\n result = settings.weekLength || 7\n }\n return result\n }\n static get weekendStartDay(): number {\n let result = TimeManager.weekLength - 1\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekendStartDay')) {\n result = settings.weekendStartDay || TimeManager.weekLength - 1\n }\n return result\n }\n static get weekDaysNames(): string[] {\n let result: string[] = []\n let settings = GameStorageManager.getVariable<TimeSettings>(TIME_SETTINGS_KEY)\n if (settings && settings.hasOwnProperty('weekDaysNames')) {\n result = settings.weekDaysNames || result\n }\n return result\n }\n\n static get currentHour(): number {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (data.hasOwnProperty('currentHour') && typeof data.currentHour === 'number') {\n return data.currentHour\n }\n return TimeManager.minDayHours\n }\n static set currentHour(value: number | undefined) {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (typeof value === 'number') {\n data.currentHour = value\n } else {\n delete data.currentHour\n }\n GameStorageManager.setVariable(TIME_DATA_KEY, data)\n }\n\n static get currentDay(): number {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (data.hasOwnProperty('currentDay') && typeof data.currentDay === 'number') {\n return data.currentDay\n }\n return 0\n }\n static set currentDay(value: number | undefined) {\n let data = GameStorageManager.getVariable<ITimeData>(TIME_DATA_KEY) || {}\n if (typeof value === 'number') {\n data.currentDay = value\n }\n else {\n delete data.currentDay\n }\n GameStorageManager.setVariable(TIME_DATA_KEY, data)\n }\n\n\n static get isWeekend(): boolean {\n return TimeManager.weekDayNumber >= TimeManager.weekendStartDay\n }\n static get weekDayNumber(): number {\n let result = TimeManager.currentDay % TimeManager.weekLength\n return result + 1\n }\n static get weekDayName(): string | undefined {\n let weekDayNumber = TimeManager.weekDayNumber - 1\n if (weekDayNumber >= TimeManager.weekDaysNames.length) {\n console.warn(`[NQTR] Week day name is not defined for day ${weekDayNumber}`, TimeManager.weekDaysNames)\n return undefined\n }\n return TimeManager.weekDaysNames[weekDayNumber]\n }\n\n\n static newHour(timeSpent: number = TimeManager.defaultTimeSpent): number {\n let newHour = TimeManager.currentHour + timeSpent\n if (newHour >= TimeManager.maxDayHours) {\n TimeManager.newDay()\n newHour = TimeManager.minDayHours + (newHour - TimeManager.maxDayHours)\n }\n TimeManager.currentHour = newHour\n return newHour\n }\n\n static newDay(days: number = 1): number {\n let newDay = TimeManager.currentDay + days\n TimeManager.currentDay = newDay\n return newDay\n }\n\n static nowIsBetween(fromHour: number, toHour: number): boolean {\n let currentHour = TimeManager.currentHour\n if (fromHour < toHour) {\n return currentHour >= fromHour && currentHour < toHour\n }\n return currentHour >= fromHour || currentHour < toHour\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\";\nimport { GraphicItemType } from \"../../types/GraphicItem\";\nimport MapBaseModel from \"./Map\";\nimport RoomBaseModel from \"./Room\";\n\nconst LOCATION_CATEGORY = \"__nqtr-location__\"\n\nexport interface LocationBaseModelProps {\n /**\n * The name\n */\n name?: string\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport default class LocationBaseModel<TMap extends MapBaseModel = MapBaseModel> extends StoredClassModel {\n constructor(id: string, map: TMap, entrance: RoomBaseModel, props: LocationBaseModelProps) {\n super(LOCATION_CATEGORY, id)\n if (entrance.location.id !== id) {\n throw new Error(`[NQTR] Entrance room ${entrance.id} is not in location ${id}`)\n }\n this._entrance = entrance\n this.defaultName = props.name || \"\"\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n this._map = map\n }\n private _entrance: RoomBaseModel\n get entrance(): RoomBaseModel {\n return this._entrance\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n private _map: TMap\n get map(): TMap {\n return this._map\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\"\nimport { GraphicItemType } from \"../../types/GraphicItem\"\n\nconst MAP_CATEGORY = \"__nqtr-map__\"\n\nexport interface MapBaseModelProps<TMap extends MapBaseModel = MapBaseModel> {\n /**\n * The name\n */\n name?: string\n /**\n * The image. It can be a string, an HTMLElement or a Pixi'VN Canvas Item.\n * Or an object to manage multiple image types. For example to have a image based on time.\n * @example\n * ```ts\n * {\n * \"morning\": \"morning-background.jpg\",\n * \"afternoon\": \"afternoon-background.jpg\",\n * \"evening\": \"evening-background.jpg\",\n * \"night\": \"night-background.jpg\"\n * }\n * ```\n */\n image?: GraphicItemType | { [key: string]: GraphicItemType }\n /**\n * The neighboring maps that are available in this map.\n * @example\n * ```ts\n * {\n * \"north\": atlantaMap,\n * \"south\": miamiMap,\n * \"east\": savannahMap,\n * \"west\": birminghamMap\n * }\n * ```\n */\n neighboringMaps?: { [key: string]: TMap }\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n}\n\nexport default class MapBaseModel extends StoredClassModel {\n constructor(id: string, props: MapBaseModelProps) {\n super(MAP_CATEGORY, id)\n this.defaultName = props.name || \"\"\n this.defaultImage = props.image\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultImage?: GraphicItemType | { [key: string]: GraphicItemType }\n get image(): GraphicItemType | { [key: string]: GraphicItemType } | undefined {\n return this.getStorageProperty<GraphicItemType>(\"image\") || this.defaultImage\n }\n set image(value: GraphicItemType | { [key: string]: GraphicItemType } | undefined) {\n this.setStorageProperty(\"image\", value)\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n}\n","import { getFlag, StoredClassModel } from \"@drincs/pixi-vn\";\nimport { getActivityById } from \"../../decorators\";\nimport { getCurrentCommitments } from \"../../functions/RoutineFunctions\";\nimport { GraphicItemType } from \"../../types/GraphicItem\";\nimport ActivityModel, { ActivityProps } from \"../Activity\";\nimport CommitmentBaseModel from \"../Commitment\";\nimport { ActivityRoom } from \"./ActivityRoom\";\nimport LocationBaseModel from \"./Location\";\n\nexport const ROOM_CATEGORY = \"__nqtr-room__\"\n\ninterface RoomActivityMemory { [key: string]: ActivityProps }\n\nexport interface RoomBaseModelProps {\n /**\n * The name\n */\n name?: string\n /**\n * The image. It can be a string, an HTMLElement or a Pixi'VN Canvas Item.\n * Or an object to manage multiple image types. For example to have a image based on time.\n * @example\n * ```ts\n * {\n * \"morning\": \"morning-background.jpg\",\n * \"afternoon\": \"afternoon-background.jpg\",\n * \"evening\": \"evening-background.jpg\",\n * \"night\": \"night-background.jpg\"\n * }\n * ```\n */\n image?: GraphicItemType | { [key: string]: GraphicItemType }\n /**\n * The activities that are available in this room.\n */\n defaultActivities?: ActivityModel[],\n /**\n * Whether is disabled. You can also pass a Pixi'VN flag name.\n */\n disabled?: boolean | string\n /**\n * Whether is hidden. You can also pass a Pixi'VN flag name.\n */\n hidden?: boolean | string\n /**\n * The icon element. Can be a string or an HTMLElement or a Pixi'VN CanvasItem\n */\n iconElement?: GraphicItemType\n}\n\nexport default class RoomBaseModel<TLocation extends LocationBaseModel = LocationBaseModel> extends StoredClassModel {\n constructor(id: string, location: TLocation, props: RoomBaseModelProps) {\n super(ROOM_CATEGORY, id)\n this._location = location\n this.defaultName = props.name || \"\"\n this.defaultImage = props.image\n this.defaultActivityIds = props.defaultActivities?.map(activity => activity.id) || []\n this.defaultDisabled = props.disabled || false\n this.defaultHidden = props.hidden || false\n this._iconElement = props.iconElement\n }\n\n private _location: TLocation\n get location(): TLocation {\n return this._location\n }\n\n private defaultName: string\n get name(): string {\n return this.getStorageProperty<string>(\"name\") || this.defaultName\n }\n set name(value: string) {\n this.setStorageProperty(\"name\", value)\n }\n\n private defaultImage?: GraphicItemType | { [key: string]: GraphicItemType }\n get image(): GraphicItemType | { [key: string]: GraphicItemType } | undefined {\n return this.getStorageProperty<GraphicItemType>(\"image\") || this.defaultImage\n }\n set image(value: GraphicItemType | { [key: string]: GraphicItemType } | undefined) {\n this.setStorageProperty(\"image\", value)\n }\n\n private defaultActivityIds: string[]\n get defaultActivities(): ActivityRoom<this>[] {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let activities = this.defaultActivityIds.map(id => {\n let activity = getActivityById(id)\n if (!activity) {\n console.warn(`[NQTR] Activity with id ${id} not found, so it will be ignored.`)\n return undefined\n }\n let memory = activity.export()\n if (roomMemories && roomMemories[id]) {\n memory = {\n ...memory,\n ...roomMemories[id]\n }\n }\n return new ActivityRoom(id, this, activity.onRun, memory)\n }).filter(activity => activity !== undefined)\n return activities as ActivityRoom<this>[]\n }\n\n get activityIds(): string[] {\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n return this.defaultActivityIds.concat(addedActivityIds)\n }\n get activities(): ActivityRoom<this>[] {\n let activities = this.activityIds.map(id => {\n return this.getActivity(id)\n }).filter(activity => activity !== undefined)\n return activities as ActivityRoom<this>[]\n }\n getActivityMemory(id: string): object | undefined {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let roomMemory = roomMemories[id] || {}\n return roomMemory\n }\n getActivity(id: string): ActivityRoom<this> | undefined {\n if (!this.activityIds.includes(id)) {\n console.error(`[NQTR] Activity with id ${id} not found in room ${this.id}`)\n return undefined\n }\n let activity = getActivityById(id)\n if (!activity) {\n console.error(`[NQTR] Activity with id ${id} not found`)\n return undefined\n }\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n let roomMemory = roomMemories[id] || {}\n roomMemory = {\n ...activity.export(),\n ...roomMemory\n }\n return new ActivityRoom(id, this, activity.onRun, roomMemory)\n }\n setActivity(activity: ActivityRoom) {\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n roomMemories[activity.id] = activity.export()\n this.setStorageProperty(\"activities_memory\", roomMemories)\n }\n addActivity(activity: ActivityModel) {\n if (this.activityIds.includes(activity.id)) {\n let currentActivity = this.getActivity(activity.id)\n if (currentActivity && currentActivity.isExpired()) {\n this.removeActivity(activity.id)\n return\n } else {\n console.error(`[NQTR] Activity with id ${activity.id} already exists in room ${this.id}, so it will be ignored.`)\n return\n }\n }\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n addedActivityIds.push(activity.id)\n this.setStorageProperty(\"addedActivityIds\", addedActivityIds)\n }\n removeActivity(activity: ActivityModel | string) {\n let activityId = typeof activity === \"string\" ? activity : activity.id\n if (this.defaultActivityIds.includes(activityId)) {\n console.warn(`[NQTR] Activity with id ${activityId} is a default activity, so it can't be removed. It will be hidden instead.`)\n let activityToEdit = this.getActivity(activityId)\n if (!activityToEdit) {\n console.error(`[NQTR] Activity with id ${activityId} not found, so it can't be hidden.`)\n return\n }\n activityToEdit.hidden = true\n return\n }\n let addedActivityIds = this.getStorageProperty<string[]>(`addedActivityIds`) || []\n let index = addedActivityIds.indexOf(activityId)\n if (index === -1) {\n console.error(`[NQTR] Activity with id ${activityId} not found, so it can't be removed.`)\n return\n }\n addedActivityIds.splice(index, 1)\n this.setStorageProperty(\"addedActivityIds\", addedActivityIds)\n let roomMemories = this.getStorageProperty<RoomActivityMemory>(\"activities_memory\") || {}\n delete roomMemories[activityId]\n this.setStorageProperty(\"activities_memory\", roomMemories)\n }\n clearExpiredActivities() {\n this.activities.forEach(activity => {\n if (activity.isExpired()) {\n this.removeActivity(activity.id)\n }\n })\n }\n\n private defaultDisabled: boolean | string\n get disabled(): boolean {\n let value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set disabled(value: boolean | string) {\n this.setStorageProperty(\"disabled\", value)\n }\n\n private defaultHidden: boolean | string\n get hidden(): boolean {\n let value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden\n if (typeof value === \"string\") {\n return getFlag(value)\n }\n return value\n }\n set hidden(value: boolean | string) {\n this.setStorageProperty(\"hidden\", value)\n }\n\n private _iconElement?: GraphicItemType\n get iconElement(): GraphicItemType | undefined {\n return this._iconElement\n }\n\n getRoutine<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let commitments = getCurrentCommitments<TCommitment>()\n return commitments.filter(c => c.room.id === this.id)\n }\n}\n","import { ActivityModel } from \"../classes\"\n\nexport const registeredActivities: { [id: string]: ActivityModel } = {}\n\nexport function saveActivity(activity: ActivityModel | ActivityModel[]) {\n if (Array.isArray(activity)) {\n activity.forEach(c => saveActivity(c))\n return\n }\n if (registeredActivities[activity.id]) {\n console.warn(`[NQTR] Activity id ${activity.id} already exists, it will be overwritten`)\n }\n registeredActivities[activity.id] = activity\n}\n\nexport function getActivityById(id: string): ActivityModel | undefined {\n try {\n let activity = registeredActivities[id]\n if (!activity) {\n console.error(`[NQTR] Activity ${id} not found`)\n return\n }\n return activity as ActivityModel\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Activity ${id}`, e)\n return\n }\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\"\nimport CommitmentBaseModel from \"../classes/Commitment\"\n\nconst TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY = \"___nqtr-temporary_commitment___\"\nexport const registeredCommitments: { [id: string]: CommitmentBaseModel } = {}\nexport const fixedCommitments: { [id: string]: CommitmentBaseModel } = {}\n\nexport function saveCommitment<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitment: TCommitment | TCommitment[]) {\n if (Array.isArray(commitment)) {\n commitment.forEach(c => saveCommitment(c))\n return\n }\n if (registeredCommitments[commitment.id]) {\n console.warn(`[NQTR] Commitment id ${commitment.id} already exists, it will be overwritten`)\n }\n registeredCommitments[commitment.id] = commitment\n}\n\nexport function getCommitmentById<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(id: string): TCommitment | undefined {\n try {\n let commitment = registeredCommitments[id]\n if (!commitment) {\n console.error(`[NQTR] Commitment ${id} not found`)\n return\n }\n return commitment as TCommitment\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Commitment ${id}`, e)\n return\n }\n}\n\nexport function setFixedCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitments: TCommitment[] | TCommitment) {\n if (Array.isArray(commitments)) {\n commitments.forEach(c => saveCommitment(c))\n return\n }\n if (registeredCommitments[commitments.id]) {\n console.warn(`[NQTR] Commitment id ${commitments.id} already exists, it will be overwritten`)\n }\n registeredCommitments[commitments.id] = commitments\n}\n\nexport function addTemporaryCommitment<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(commitment: TCommitment[] | TCommitment) {\n if (!Array.isArray(commitment)) {\n commitment = [commitment]\n }\n let commitmentsIds = commitment.map(commitment => {\n let commitmentTest = getCommitmentById(commitment.id)\n if (!commitmentTest) {\n console.warn(`[NQTR] Commitment ${commitment.id} not found, it will be ignored`)\n return undefined\n }\n return commitment.id\n }).filter(id => id !== undefined)\n\n GameStorageManager.setVariable(TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY, [commitmentsIds])\n}\n\nexport function getFixedCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n return Object.values(fixedCommitments) as TCommitment[]\n}\n\nexport function getTemporaryCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let commitmentsIds = GameStorageManager.getVariable<string[]>(TEMPORARY_COMMITMENT_CATEGORY_MEMORY_KEY)\n if (!commitmentsIds) {\n return []\n }\n let commitments = commitmentsIds.map(id => getCommitmentById<TCommitment>(id)).filter(commitment => commitment !== undefined)\n return commitments as TCommitment[]\n}\n","import { RoomBaseModel } from \"../classes/navigation\"\n\nexport const registeredRooms: { [id: string]: RoomBaseModel } = {}\n\nexport function saveRoom<TRoom extends RoomBaseModel = RoomBaseModel>(room: TRoom | TRoom[]) {\n if (Array.isArray(room)) {\n room.forEach(c => saveRoom(c))\n return\n }\n if (registeredRooms[room.id]) {\n console.warn(`[NQTR] Room id ${room.id} already exists, it will be overwritten`)\n }\n registeredRooms[room.id] = room\n}\n\nexport function getRoomById<TRoom extends RoomBaseModel = RoomBaseModel>(id: string): TRoom | undefined {\n try {\n let room = registeredRooms[id]\n if (!room) {\n console.error(`[NQTR] Room ${id} not found`)\n return\n }\n return room as TRoom\n }\n catch (e) {\n console.error(`[NQTR] Error while getting Room ${id}`, e)\n return\n }\n}\n","import { CharacterBaseModel } from \"@drincs/pixi-vn\";\nimport CommitmentBaseModel from \"../classes/Commitment\";\nimport { getFixedCommitments, getTemporaryCommitments } from \"../decorators\";\nimport { registeredCommitments } from \"../decorators/CommitmentDecorator\";\n\nexport function clearExpiredRoutine() {\n Object.entries(registeredCommitments).forEach(([_, commitment]) => {\n if (commitment.isExpired()) {\n delete registeredCommitments[commitment.id]\n }\n })\n}\n\nexport function getCurrentCommitments<TCommitment extends CommitmentBaseModel = CommitmentBaseModel>(): TCommitment[] {\n let character_commitments: { [character: string]: TCommitment } = {}\n let oltherCommitments: TCommitment[] = []\n getTemporaryCommitments<TCommitment>().reverse().forEach(c => {\n if (!c.hidden) {\n if (c.characters.length > 1) {\n // all the characters don't already have commitments\n let allAvailable = c.characters.every(ch => !character_commitments[ch.id])\n if (allAvailable) {\n c.characters.forEach(ch => {\n character_commitments[ch.id] = c\n })\n }\n }\n else {\n oltherCommitments.push(c)\n }\n }\n })\n getFixedCommitments<TCommitment>().reverse().forEach(c => {\n if (!c.hidden) {\n if (c.characters.length > 1) {\n c.characters.forEach(ch => {\n if (!character_commitments[ch.id]) {\n character_commitments[ch.id] = c\n }\n })\n }\n else {\n oltherCommitments.push(c)\n }\n }\n })\n return Object.values(character_commitments).concat(oltherCommitments)\n}\n\nexport function getCommitmentByCharacter<TCommitment extends CommitmentBaseModel = CommitmentBaseModel, TCharacter extends CharacterBaseModel = CharacterBaseModel>(character: TCharacter): TCommitment | undefined {\n getCurrentCommitments().forEach(c => {\n if (c.characters.map(ch => ch.id).includes(character.id)) {\n return c\n }\n })\n return undefined\n}\n","import ActivityModel, { ActivityProps, ActivityStoredAbstract } from \"../Activity\";\nimport RoomBaseModel from \"./Room\";\n\nexport class ActivityRoom<TRoom extends RoomBaseModel = RoomBaseModel> extends ActivityStoredAbstract {\n constructor(id: string, room: TRoom, onRun: (activity: ActivityModel) => void, props: ActivityProps) {\n super(onRun, props)\n this._id = id\n this._room = room\n }\n setStorageProperty<T>(_: string, __: T | undefined): void {\n this._room.setActivity(this)\n }\n getStorageProperty<T>(propertyName: string): T | undefined {\n let activity = this._room.getActivityMemory(this.id)\n if (!activity || !activity.hasOwnProperty(propertyName)) {\n return undefined\n }\n return (activity as any)[propertyName]\n }\n private _id: string;\n get id(): string {\n return this._id;\n }\n private _room: TRoom;\n get room(): TRoom {\n return this._room;\n }\n\n export(): object {\n let result: any = {}\n if (this.name !== undefined) {\n result[\"name\"] = this.name\n }\n if (this.fromHour !== undefined) {\n result[\"fromHour\"] = this.fromHour\n }\n if (this.toHour !== undefined) {\n result[\"toHour\"] = this.toHour\n }\n if (this.fromDay !== undefined) {\n result[\"fromDay\"] = this.fromDay\n }\n if (this.toDay !== undefined) {\n result[\"toDay\"] = this.toDay\n }\n if (this.disabled !== undefined) {\n result[\"disabled\"] = this.disabled\n }\n return result\n }\n}\n","export interface GoalProps {\n description: string\n need?: number\n have?: number\n}\n\nexport interface IGoal {\n description: string\n need: number\n have: number\n}\n\nexport default class Goal implements IGoal {\n constructor(props: GoalProps) {\n this._description = props.description\n this.need = props.need || 1\n this.have = props.have || 0\n }\n private _description: string\n get description(): string {\n return this._description\n }\n need: number\n have: number\n get isComplete(): boolean {\n return this.have >= this.need\n }\n setComplete(): void {\n this.have = this.need\n }\n find(): void {\n this.have++\n }\n get export(): IGoal {\n return {\n description: this.description,\n need: this.need,\n have: this.have\n }\n }\n}\n","import { StoredClassModel } from \"@drincs/pixi-vn\";\nimport StageBaseModel from \"./Stage\";\n\nconst QUEST_CATEGORY = \"__nqtr-quest__\"\n\nexport interface QuestBaseModelProps {\n name?: string\n description?: string\n icon?: string\n image?: string\n isInDevelopment?: boolean\n}\n\nexport default class QuestBaseModel<TStage extends StageBaseModel = StageBaseModel> extends StoredClassModel {\n constructor(id: string, stages: TStage[], props: QuestBaseModelProps) {\n super(QUEST_CATEGORY, id)\n this._stages = stages\n this._name = props.name || \"\"\n this._description = props.description || \"\"\n this._icon = props.icon || \"\"\n this._image = props.image || \"\"\n this._isInDevelopment = props.isInDevelopment || false\n }\n private _stages: TStage[]\n get stages(): TStage[] {\n return this._stages\n }\n\n private _name: string\n get name(): string {\n return this._name\n }\n\n private _description: string\n get description(): string {\n return this._description\n }\n\n private _icon: string\n get icon(): string {\n return this._icon\n }\n\n private _image: string\n get image(): string {\n return this._image\n }\n\n private _isInDevelopment: boolean\n get isInDevelopment(): boolean {\n return this._isInDevelopment\n }\n}\n","import { StoredClassModel } from \"@drincs/pixi-vn\";\nimport { QuestsRequiredType } from \"../../types/QuestsRequired\";\nimport Goal, { IGoal } from \"./Goal\";\n\nconst STAGE_CATEGORY = \"__nqtr-stage__\"\n\nexport interface StageBaseModelProps {\n goals?: Goal[]\n name?: string\n description?: string\n adviceDescription?: string\n image?: string\n daysRequiredToStart: number\n flagsRequired: string[]\n questsRequired: QuestsRequiredType[]\n requestDescription?: string\n onStart: () => void\n onEnd: () => void\n}\n\nexport default class StageBaseModel extends StoredClassModel {\n constructor(id: string, props: StageBaseModelProps) {\n super(STAGE_CATEGORY, id)\n this._name = props.name || \"\"\n this._description = props.description || \"\"\n this._adviceDescription = props.adviceDescription || \"\"\n this._image = props.image || \"\"\n this._daysRequiredToStart = props.daysRequiredToStart\n this._flagsRequired = props.flagsRequired\n this._questsRequired = props.questsRequired\n this._requestDescription = props.requestDescription || \"\"\n this._onStart = props.onStart\n this._onEnd = props.onEnd\n }\n\n\n private _completed: boolean = false\n get completed(): boolean {\n return this._completed\n }\n\n private _active: boolean = false\n get active(): boolean {\n return this._active\n }\n\n private defaultGoals: Goal[] = []\n get goals(): Goal[] {\n let list = this.getStorageProperty<IGoal[]>('goals')\n if (!list) {\n return this.defaultGoals\n }\n return list.map(goal => new Goal(goal))\n }\n set goals(value: Goal[]) {\n let list = value.map(goal => goal.export)\n this.setStorageProperty('goals', list)\n }\n\n private _name: string\n get name(): string {\n return this._name\n }\n\n private _description: string\n get description(): string {\n return this._description\n }\n\n private _adviceDescription: string\n get adviceDescription(): string {\n return this._adviceDescription\n }\n\n private _image: string\n get image(): string {\n return this._image\n }\n\n private _daysRequiredToStart: number\n get daysRequiredToStart(): number {\n return this._daysRequiredToStart\n }\n\n private _flagsRequired: string[]\n get flagsRequired(): string[] {\n return this._flagsRequired\n }\n\n private _questsRequired: QuestsRequiredType[]\n get questsRequired(): QuestsRequiredType[] {\n return this._questsRequired\n }\n\n private _requestDescription: string\n get requestDescription(): string {\n return this._requestDescription\n }\n\n private _onStart: () => void\n get onStart(): () => void {\n return this._onStart\n }\n\n private _onEnd: () => void\n get onEnd(): () => void {\n return this._onEnd\n }\n}\n","export enum ExecutionTypeEnum {\n AUTOMATIC = \"automatic\",\n INTERACTION = \"interaction\",\n}\n","import { GameStorageManager } from \"@drincs/pixi-vn\";\nimport { LocationBaseModel, MapBaseModel, RoomBaseModel } from \"../classes/navigation\";\nimport { getRoomById } from \"../decorators/RoomDecorator\";\n\nconst CURRENT_ROOM_MEMORY_KEY = '___nqtr-current_room_memory___';\n\nexport function setCurrentRoom<TRoom extends RoomBaseModel = RoomBaseModel>(room: TRoom) {\n let roomRegistrated = getRoomById(room.id);\n if (!roomRegistrated) {\n console.error(`[NQTR] The room ${room.id} is not registered, so it can't be set as current room`);\n return;\n }\n localStorage.setItem(CURRENT_ROOM_MEMORY_KEY, room.id);\n}\n\nexport function getCurrentRoom<TRoom extends RoomBaseModel = RoomBaseModel>(): TRoom | undefined {\n let roomId = GameStorageManager.getVariable<string>(CURRENT_ROOM_MEMORY_KEY);\n if (!roomId) {\n console.error(`[NQTR] The current room has not yet been set`);\n return\n }\n let room = getRoomById<TRoom>(roomId);\n if (!room) {\n console.error(`[NQTR] Current room ${roomId} not found`);\n return\n }\n return room\n}\n\nexport function getCurrenrLocation<TLocation extends LocationBaseModel = LocationBaseModel>(): TLocation | undefined {\n let room = getCurrentRoom<RoomBaseModel<TLocation>>();\n if (!room) {\n return\n }\n return room.location\n}\n\nexport function getCueerntMap<TMap extends MapBaseModel = MapBaseModel>(): TMap | undefined {\n let location = getCurrenrLocation<LocationBaseModel<TMap>>();\n if (!location) {\n return\n }\n return location.map\n}\n","import { ActivityRoom } from \"../classes/navigation/ActivityRoom\"\nimport { registeredRooms } from \"../decorators/RoomDecorator\"\nimport { getCurrentRoom } from \"./NavigationFunctions\"\n\nexport function clearExpiredActivities() {\n Object.entries(registeredRooms).forEach(([_, room]) => {\n room.clearExpiredActivities()\n })\n}\n\nexport function currentActivities(): ActivityRoom[] {\n let currentRoom = getCurrentRoom()\n if (!currentRoom) {\n return []\n }\n return currentRoom.activities.filter(activity => !activity.hidden)\n}\n"],"mappings":"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","names":["getFlag","getFlag","StoredClassModel","getFlag","StoredClassModel","GameStorageManager","commitment","StoredClassModel","getFlag","StoredClassModel","StoredClassModel","StoredClassModel","ExecutionTypeEnum","GameStorageManager","GameStorageManager"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@drincs/nqtr",
3
- "version": "0.0.1",
4
- "description": "Navigation Quest Time Routine System for Pixi'VN",
3
+ "version": "0.0.2",
4
+ "description": "A complete system introducing the concepts of location, time and event, producing the framework of a not-quite-point-and-click adventure game.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",