add armor item

This commit is contained in:
Vlyan
2020-12-15 10:56:19 +01:00
parent 0b51804f21
commit 971c33321e
15 changed files with 190 additions and 27 deletions

View File

@@ -0,0 +1,47 @@
import { ItemSheetL5r5e } from "./item-sheet.js";
/**
* @extends {ItemSheet}
*/
export class ArmorSheetL5r5e extends ItemSheetL5r5e {
/** @override */
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
classes: ["l5r5e", "sheet", "armor"],
template: CONFIG.L5r5e.paths.templates + "item/armor-sheet.html",
width: 520,
height: 480,
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }],
});
}
getData() {
const sheetData = super.getData();
sheetData.data.dtypes = ["String", "Number", "Boolean"];
sheetData.data.isArmor = true;
sheetData.data.isEquipment = true;
return sheetData;
}
/**
* Subscribe to events from the sheet.
* @param html HTML content of the sheet.
*/
activateListeners(html) {
super.activateListeners(html);
// Everything below here is only needed if the sheet is editable
if (!this.options.editable) return;
}
/**
* Update item with values from the sheet.
* @param event
* @param formData
*/
_updateObject(event, formData) {
return this.object.update(formData);
}
}

View File

@@ -8,6 +8,7 @@ import { NpcSheetL5r5e } from "./sheets/npc-sheet.js";
import { RollL5r5e, AbilityDie, RingDie, DicePickerDialog } from "./dice-l5r5e.js";
import { ItemL5r5e } from "./items/item.js";
import { ItemSheetL5r5e } from "./items/item-sheet.js";
import { ArmorSheetL5r5e } from "./items/armor-sheet.js";
import { WeaponSheetL5r5e } from "./items/weapon-sheet.js";
import { FeatSheetL5r5e } from "./items/feat-sheet.js";
@@ -63,6 +64,7 @@ Hooks.once("init", async function () {
// Items sheet
Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("l5r5e", ItemSheetL5r5e, { types: ["item"], makeDefault: true });
Items.registerSheet("l5r5e", ArmorSheetL5r5e, { types: ["armor"], makeDefault: true });
Items.registerSheet("l5r5e", WeaponSheetL5r5e, { types: ["weapon"], makeDefault: true });
Items.registerSheet("l5r5e", FeatSheetL5r5e, { types: ["feat"], makeDefault: true });

View File

@@ -19,6 +19,8 @@ export const PreloadTemplates = async function () {
"systems/l5r5e/templates/item/item-entry.html",
"systems/l5r5e/templates/item/weapons.html",
"systems/l5r5e/templates/item/weapon-entry.html",
"systems/l5r5e/templates/item/armors.html",
"systems/l5r5e/templates/item/armor-entry.html",
"systems/l5r5e/templates/item/feat-sheet.html",
"systems/l5r5e/templates/item/feat-entry.html",
];

View File

@@ -58,13 +58,24 @@ export class ActorSheetL5r5e extends ActorSheet {
*/
_prepareItems(sheetData) {
for (let item of sheetData.items) {
if (item.type === "weapon") {
item.isWeapon = true;
item.isEquipment = true;
} else if (item.type === "feat") {
item.isFeat = true;
} else {
item.isEquipment = true;
switch (item.type) {
case "weapon":
item.isWeapon = true;
item.isEquipment = true;
break;
case "armor":
item.isArmor = true;
item.isEquipment = true;
break;
case "feat":
item.isFeat = true;
break;
default:
item.isEquipment = true;
break;
}
}
}

View File

@@ -40,13 +40,24 @@ export class NpcSheetL5r5e extends ActorSheet {
*/
_prepareItems(sheetData) {
for (let item of sheetData.items) {
if (item.type === "weapon") {
item.isWeapon = true;
item.isEquipment = true;
} else if (item.type === "feat") {
item.isFeat = true;
} else {
item.isEquipment = true;
switch (item.type) {
case "weapon":
item.isWeapon = true;
item.isEquipment = true;
break;
case "armor":
item.isArmor = true;
item.isEquipment = true;
break;
case "feat":
item.isFeat = true;
break;
default:
item.isEquipment = true;
break;
}
}
}