UNPKG

warframe-worldstate-parser

Version:

An Open parser for Warframe's Worldstate in Javascript

67 lines (66 loc) 1.9 kB
import { n as __decorateMetadata, t as __decorate } from "../../decorate-BCC26nnB.mjs"; import { WorldStateObject } from "./WorldStateObject.mjs"; import { DuviriChoice } from "../supporting/DuviriChoice.mjs"; import { Type } from "class-transformer"; import { IsArray, IsString, ValidateNested } from "class-validator"; //#region lib/models/DuviriCycle.ts const cycleTime = 36e3; const stateTime = 7200; const states = [ "sorrow", "fear", "joy", "anger", "envy" ]; const getStageInfo = () => { const cycleDelta = (Math.floor(Date.now() / 1e3) - 52) % cycleTime; const stateInd = Math.floor(cycleDelta / stateTime); const untilNext = stateTime - cycleDelta % stateTime; const expiry = new Date(Date.now() + untilNext * 1e3); expiry.setSeconds(0); expiry.setMilliseconds(0); const activation = /* @__PURE__ */ new Date(expiry.getTime() - stateTime * 1e3); activation.setSeconds(0); activation.setMilliseconds(0); return { state: states[stateInd], expiry, activation }; }; /** * @typedef {WorldStateObject} DuviriCycle * @augments {WorldStateObject} */ var DuviriCycle = class extends WorldStateObject { /** * Current stage key */ state; /** * Choice options for this Cycle */ choices; /** * @param duviriChoices The current circuit choices */ constructor(duviriChoices) { super({ _id: { $oid: "duviriCycle0" } }); const { activation, expiry, state } = getStageInfo(); this.activation = activation; this.expiry = expiry; this.state = state; this.choices = duviriChoices; this.id = `duviriCycle${this.state}${this.expiry.getTime()}`; } }; __decorate([IsString(), __decorateMetadata("design:type", String)], DuviriCycle.prototype, "state", void 0); __decorate([ IsArray(), ValidateNested({ each: true }), Type(() => DuviriChoice), __decorateMetadata("design:type", Array) ], DuviriCycle.prototype, "choices", void 0); //#endregion export { DuviriCycle };