+ Button für Skills

Changes:
 + Styling anpassung für + buttons
 + CreatItem funktion angepasst, man kann optionen reingeben
 + button um skills zu erstellen eingefügt
This commit is contained in:
2024-02-21 16:23:43 +01:00
parent c2aa466ce1
commit 39813cd7c3
8 changed files with 64 additions and 63 deletions
+7
View File
@@ -61,6 +61,13 @@ export enum M5ItemType {
EFFECT = "effect",
}
export enum M5SkillType {
INNATE = "innate",
GENERAL = "general",
LANGUAGE = "language",
COMBAT = "combat",
}
export enum M5EwResult {
TBD = "",
FUMBLE = "roll-ew-result-fumble",
+3 -2
View File
@@ -1,5 +1,5 @@
import { M5Item } from "../items/M5Item";
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned } from "../M5Base";
import { M5Attribute, M5CharacterCalculatedData, M5ItemMod, M5ItemType, M5ModOperation, M5ModResult, M5RollData, M5Skill, M5SkillCalculated, M5SkillLearned, M5SkillType } from "../M5Base";
import M5ModAggregate from "./M5ModAggregate";
export class M5Character extends Actor {
// constructor(
@@ -523,10 +523,11 @@ export class M5Character extends Actor {
});
}
createItem(itemName: string, itemType: M5ItemType): Promise<M5Item> {
createItem(itemName: string, itemType: M5ItemType, options?: any): Promise<M5Item> {
const itemData = {
name: itemName,
type: itemType,
data: options,
};
return (this as any).createEmbeddedDocuments("Item", [itemData]).then((docs) => {
+41 -38
View File
@@ -1,7 +1,7 @@
import Logger from "../../utils/Logger";
import { M5Character } from "../actors/M5Character";
import { M5Item } from "../items/M5Item";
import { M5ItemType, M5SkillLearned, M5SkillUnlearned } from "../M5Base";
import { M5ItemType, M5SkillLearned, M5SkillType, M5SkillUnlearned } from "../M5Base";
import { M5Roll } from "../rolls/M5Roll";
export default class M5CharacterSheet extends ActorSheet {
@@ -270,11 +270,12 @@ export default class M5CharacterSheet extends ActorSheet {
const context = this.actor as any;
const item = context.items.get(itemId);
if (item.system.equipped === true) {
item.system.equipped = false;
} else {
item.system.equipped = true;
}
item.update({
data: {
equipped: !item.system.equipped,
},
});
this.render();
});
@@ -282,14 +283,7 @@ export default class M5CharacterSheet extends ActorSheet {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.item"), M5ItemType.ITEM).then((i) => {
const item = i as any;
item.update({
data: {
quantity: 1,
},
});
});
character.createItem((game as Game).i18n.localize("TYPES.Item.item"), M5ItemType.ITEM, { quantity: 1 });
});
html.find(".add-weapon").on("click", async (event) => {
@@ -317,42 +311,51 @@ export default class M5CharacterSheet extends ActorSheet {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.container"), M5ItemType.CONTAINER).then((i) => {
const item = i as any;
item.update({
data: {
quantity: 1,
},
});
});
character.createItem((game as Game).i18n.localize("TYPES.Item.container"), M5ItemType.CONTAINER, { quantity: 1 });
});
html.find(".add-innate-skill").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.innate-ability"), M5ItemType.SKILL, { type: M5SkillType.INNATE });
});
html.find(".add-general-skill").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.skill"), M5ItemType.SKILL, { type: M5SkillType.GENERAL });
});
html.find(".add-combat-skill").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.weapon-skill"), M5ItemType.SKILL, { type: M5SkillType.COMBAT });
});
html.find(".add-language-skill").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.language"), M5ItemType.SKILL, { type: M5SkillType.LANGUAGE });
});
html.find(".add-spell").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.spell"), M5ItemType.SPELL).then((i) => {
const item = i as any;
item.update({
data: {
process: "none",
},
});
});
character.createItem((game as Game).i18n.localize("TYPES.Item.spell"), M5ItemType.SPELL, { process: "none" });
});
html.find(".add-kampfkunst").on("click", async (event) => {
const data = this.actor.system;
const character = this.actor as M5Character;
character.createItem((game as Game).i18n.localize("TYPES.Item.kampfkunst"), M5ItemType.KAMPFKUNST).then((i) => {
const item = i as any;
item.update({
data: {
type: "angriff",
variante: "anstuermen",
},
});
character.createItem((game as Game).i18n.localize("TYPES.Item.kampfkunst"), M5ItemType.KAMPFKUNST, {
type: "angriff",
variante: "anstuermen",
});
});