@skullandbonestools/snbdata
Version:
Inofficial data package for the Skull and Bones game by Ubisoft.
34 lines • 1.48 kB
JavaScript
import achievementData from "../../data/achievements.json";
import { Events } from "./events";
import { Seasons } from "./seasons";
import { WorldEvents } from "./worldEvents";
export class Achievement {
constructor(id, tier, category, season, event, worldEvent, goal, dateAdded, lastUpdated) {
this.id = id;
this.tier = tier;
this.category = category;
this.season = season;
this.event = event;
this.worldEvent = worldEvent;
this.goal = goal;
this.dateAdded = dateAdded;
this.lastUpdated = lastUpdated;
}
static fromRawData(key, rawData) {
const season = rawData.season;
const event = rawData.event;
const worldEvent = Array.isArray(rawData.worldEvent)
? rawData.worldEvent.map((_worldEvent) => WorldEvents[_worldEvent])
: WorldEvents[rawData.worldEvent];
return new Achievement(key, rawData.tier ?? undefined, rawData.category, Seasons[season], event ? Events[event] : undefined, worldEvent ?? undefined, rawData.goal, new Date(rawData.dateAdded), new Date(rawData.lastUpdated));
}
static loadAchievements() {
const achievements = {};
for (const [key, value] of Object.entries(achievementData)) {
achievements[key] = Achievement.fromRawData(key, value);
}
return achievements;
}
}
export const Achievements = Achievement.loadAchievements();
//# sourceMappingURL=achievements.js.map