UNPKG

warframe-worldstate-parser

Version:

An Open parser for Warframe's Worldstate in Javascript

100 lines (99 loc) 3.31 kB
import { n as __decorateMetadata, t as __decorate } from "../../decorate-BCC26nnB.mjs"; import { WorldStateObject } from "./WorldStateObject.mjs"; import { Type } from "class-transformer"; import { IsBoolean, IsDate, IsInt, IsNumber, IsString, Min } from "class-validator"; import { languageString, node, parseDate, region } from "warframe-worldstate-data/utilities"; //#region lib/models/PersistentEnemy.ts /** * Represents a persistent enemy * @augments {WorldStateObject} */ var PersistentEnemy = class extends WorldStateObject { /** * The enemy's type */ agentType; /** * The location tag */ locationTag; /** * The enemy's rank */ rank; /** * The enemy's remaining health percentage */ healthPercent; /** * The percentual damage that the enemy takes when it's defeated */ fleeDamage; /** * The region where the enemy is located */ region; /** * The last time the enemy was discovered */ lastDiscoveredTime; /** * The node at which the enemy was last discovered */ lastDiscoveredAt; /** * Whether or not the enemy is currently available */ isDiscovered; /** * Whether or not the enemy is using ticketing */ isUsingTicketing; /** * Fake ID incorporating discovery */ pid; /** * @param data The persistent enemy data * @param deps The dependencies object * @param deps.locale Locale to use for translations */ constructor(data, { locale } = { locale: "en" }) { super(data); this.agentType = languageString(data.AgentType, locale); this.locationTag = languageString(data.LocTag, locale); this.rank = data.Rank; this.healthPercent = Number.parseFloat(data.HealthPercent); this.fleeDamage = data.FleeDamage; this.region = region(data.Region, locale); this.lastDiscoveredTime = parseDate(data.LastDiscoveredTime); this.lastDiscoveredAt = node(data.LastDiscoveredLocation, locale); this.isDiscovered = data.Discovered; this.isUsingTicketing = data.UseTicketing; this.pid = `${this.id}${this.isDiscovered}`; } }; __decorate([IsString(), __decorateMetadata("design:type", String)], PersistentEnemy.prototype, "agentType", void 0); __decorate([IsString(), __decorateMetadata("design:type", String)], PersistentEnemy.prototype, "locationTag", void 0); __decorate([ IsInt(), Min(0), __decorateMetadata("design:type", Number) ], PersistentEnemy.prototype, "rank", void 0); __decorate([ IsNumber(), Min(0), __decorateMetadata("design:type", Number) ], PersistentEnemy.prototype, "healthPercent", void 0); __decorate([IsNumber(), __decorateMetadata("design:type", Number)], PersistentEnemy.prototype, "fleeDamage", void 0); __decorate([ IsDate(), Type(() => Date), __decorateMetadata("design:type", typeof Date === "undefined" ? Object : Date) ], PersistentEnemy.prototype, "lastDiscoveredTime", void 0); __decorate([IsString(), __decorateMetadata("design:type", String)], PersistentEnemy.prototype, "lastDiscoveredAt", void 0); __decorate([IsBoolean(), __decorateMetadata("design:type", Boolean)], PersistentEnemy.prototype, "isDiscovered", void 0); __decorate([IsBoolean(), __decorateMetadata("design:type", Boolean)], PersistentEnemy.prototype, "isUsingTicketing", void 0); __decorate([IsString(), __decorateMetadata("design:type", String)], PersistentEnemy.prototype, "pid", void 0); //#endregion export { PersistentEnemy };