diff --git a/langs/en-ca.json b/langs/en-ca.json index af66f19..89d1be0 100644 --- a/langs/en-ca.json +++ b/langs/en-ca.json @@ -64,6 +64,12 @@ "protection": "Protection", "quantity": "Quantity", "rank": "Rank", + "rankNames": { + "novice": "Novice", + "adept": "Adept", + "expert": "Expert", + "master": "Master" + }, "range": "Range", "run": "Run", "shield": "Shield", diff --git a/module/data/Item/Skill.mjs b/module/data/Item/Skill.mjs index b2429be..d2ace39 100644 --- a/module/data/Item/Skill.mjs +++ b/module/data/Item/Skill.mjs @@ -1,7 +1,23 @@ +import { gameTerms } from "../../gameTerms.mjs"; + +const { fields } = foundry.data; + export class SkillData extends foundry.abstract.TypeDataModel { // MARK: Schema static defineSchema() { - return {}; + const schema = {}; + + const advances = {}; + for (const rank of Object.values(gameTerms.Rank)) { + advances[rank] = new fields.StringField({ + blank: false, + nullable: true, + initial: null, + }); + }; + schema.advances = new fields.SchemaField(advances); + + return schema; }; // MARK: Base Data diff --git a/module/gameTerms.mjs b/module/gameTerms.mjs index b893c3b..3406baf 100644 --- a/module/gameTerms.mjs +++ b/module/gameTerms.mjs @@ -11,12 +11,12 @@ export const gameTerms = Object.preventExtensions({ `Rare`, `Scarce`, ], - Rank: { - NOVICE: `Novice`, - ADEPT: `Adept`, - EXPERT: `Expert`, - MASTER: `Master`, - }, + Rank: Object.freeze({ + NOVICE: `novice`, + ADEPT: `adept`, + EXPERT: `expert`, + MASTER: `master`, + }), Anatomy: Object.freeze({ HEAD: `head`, BODY: `body`,