@skullandbonestools/snbdata
Version:
Inofficial data package for the Skull and Bones game by Ubisoft.
33 lines • 1.53 kB
JavaScript
import modificationsData from '../../data/modifications.json';
export class Modification {
constructor(id, effectType, damageType,
// Determines if the modification can only be applied to a weapon that includes the specific damage type.
requiredDamageType, variants, dropOnly, repairAccess, grade, dateAdded, lastUpdated) {
this.id = id;
this.effectType = effectType;
this.damageType = damageType;
this.requiredDamageType = requiredDamageType;
this.variants = variants;
this.dropOnly = dropOnly;
this.repairAccess = repairAccess;
this.grade = grade;
this.dateAdded = dateAdded;
this.lastUpdated = lastUpdated;
}
static fromRawData(rawData) {
const variants = rawData.variants.map((variant) => ({
itemType: variant.itemType,
range: variant.range,
}));
return new Modification(rawData.id, rawData.effectType ?? undefined, rawData.damageType ?? undefined, rawData.requiredDamageType ?? undefined, variants, rawData.dropOnly, rawData.repairAccess, rawData.grade, new Date(rawData.dateAdded), new Date(rawData.lastUpdated));
}
static loadModifications() {
const modifications = {};
for (const [key, value] of Object.entries(modificationsData)) {
modifications[key] = Modification.fromRawData(value);
}
return modifications;
}
}
export const Modifications = Modification.loadModifications();
//# sourceMappingURL=modifications.js.map