warframe-worldstate-parser
Version:
An Open parser for Warframe's Worldstate in Javascript
100 lines (99 loc) • 3.31 kB
JavaScript
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 };