diff --git a/system/lang/en-en.json b/system/lang/en-en.json index 2f6c401..8a7313a 100644 --- a/system/lang/en-en.json +++ b/system/lang/en-en.json @@ -94,6 +94,7 @@ "properties": "Properties", "weapons": { "title": "Weapons", + "title_new": "New Weapon", "damage": "Damage", "range": "Range", "stats": "Stats", @@ -105,17 +106,21 @@ }, "armors": { "title": "Armors", + "title_new": "New Armor", "type": "Defence", "physical": "physical", "supernatural": "supernatural", "equipped": "Equipped" }, - "items": "Items", + "items": { + "title": "Items", + "title_new": "New Item" + }, "feats": "Feats", "techniques": { "title": "Techniques", - "type": "Type accessible", "title_new": "New Technique", + "type": "Type accessible", "kata": "Kata", "kiho": "Kihõ", "invocation": "Invocation", @@ -124,6 +129,9 @@ "maho": "Mahõ", "ninjutsu": "Ninjutsu" }, + "peculiarities": { + "title_new": "Nouvelle particularité" + }, "skill": "Skill", "level": "Level", "approaches": "Approaches", diff --git a/system/lang/es-es.json b/system/lang/es-es.json index c02c7ad..f967dc5 100644 --- a/system/lang/es-es.json +++ b/system/lang/es-es.json @@ -94,6 +94,7 @@ "properties": "Propiedades", "weapons": { "title": "Armas", + "title_new": "New Weapon", "damage": "Daño", "range": "Rango", "stats": "Stats", @@ -105,12 +106,16 @@ }, "armors": { "title": "Armors", + "title_new": "New Armor", "type": "Defensa", "physical": "physical", "supernatural": "supernatural", "equipped": "Equipped" }, - "items": "Equipo", + "items": { + "title": "Equipo", + "title_new": "New Item" + }, "feats": "Feats", "techniques": { "title": "Techniques", @@ -124,6 +129,9 @@ "maho": "Mahõ", "ninjutsu": "Ninjutsu" }, + "peculiarities": { + "title_new": "Nouvelle particularité" + }, "skill": "Habilidad", "level": "Nivel", "approaches": "Planteamientos", diff --git a/system/lang/fr-fr.json b/system/lang/fr-fr.json index 3393183..2083587 100644 --- a/system/lang/fr-fr.json +++ b/system/lang/fr-fr.json @@ -94,6 +94,7 @@ "properties": "Propriétés", "weapons": { "title": "Armement", + "title_new": "Nouvelle Arme", "damage": "Dégâts de base (DDB)", "range": "Portée (PRT)", "stats": "Attributs", @@ -105,17 +106,21 @@ }, "armors": { "title": "Armures", + "title_new": "Nouvelle Armure", "type": "Défense", "physical": "Physique", "supernatural": "Spirituelle", "equipped": "Équipé" }, - "items": "Objets", + "items": { + "title": "Objets", + "title_new": "Nouvel Objet" + }, "feats": "Prouesses", "techniques": { "title": "Techniques", - "type": "Type accessible", "title_new": "Nouvelle Technique", + "type": "Type accessible", "kata": "Kata", "kiho": "Kihõ", "invocation": "Invocation", @@ -124,6 +129,9 @@ "maho": "Mahõ", "ninjutsu": "Ninjutsu" }, + "peculiarities": { + "title_new": "Nouvelle particularité" + }, "skill": "Compétence", "level": "Niveau", "approaches": "Approches", diff --git a/system/packs/core-armor.db b/system/packs/core-armor.db new file mode 100644 index 0000000..981033b --- /dev/null +++ b/system/packs/core-armor.db @@ -0,0 +1,9 @@ +{"_id":"L5RCoreArm000000","name":"Ashigaru Armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"3","rarity":"0","zeni":"5 koku","properties":[{"id":"L5RCorePro000010","name":"Wargear"}],"armor":{"physical":"3","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000001","name":"Plated Armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"8","rarity":"0","zeni":"40 koku","properties":[{"id":"L5RCorePro000005","name":"Cumbersome"},{"id":"L5RCorePro000014","name":" Durable"},{"id":"L5RCorePro000010","name":" Wargear"}],"armor":{"physical":"5","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000002","name":"Concealed Armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"4","rarity":"0","zeni":"5 koku","properties":[{"id":"L5RCorePro000004","name":"Concealable"}],"armor":{"physical":"2","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000003","name":"Lacquered Armor","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"6","rarity":"0","zeni":"25 koku","properties":[{"id":"L5RCorePro000001","name":"Ceremonial"},{"id":"L5RCorePro000005","name":" Cumbersome"},{"id":"L5RCorePro000010","name":" Wargear"}],"armor":{"physical":"4","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000004","name":"Ceremonial Clothes","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"4","rarity":"0","zeni":"1 koku","properties":[{"id":"L5RCorePro000001","name":"Ceremonial"},{"id":"L5RCorePro000009","name":" Resplendent"}],"armor":{"physical":"1","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000005","name":"Traveling Clothes","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"2","rarity":"0","zeni":"2 bu","properties":[{"id":"L5RCorePro000014","name":"Durable"},{"id":"L5RCorePro000011","name":" Mundane"},{"id":"L5RCorePro000015","name":" Subtle"}],"armor":{"physical":"2","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000006","name":"Sanctified Robes","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"7","rarity":"0","zeni":"4 koku","properties":[{"id":"L5RCorePro000001","name":"Ceremonial"}],"armor":{"physical":"1","supernatural":"3"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000007","name":"Sleeping Garb","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"2","rarity":"0","zeni":"1 koku","properties":[],"armor":{"physical":"-","supernatural":""},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} +{"_id":"L5RCoreArm000008","name":"Common Clothes","permission":{"default":0},"type":"armor","data":{"equipped":false,"quantity":1,"weight":"1","rarity":"0","zeni":"1 bu","properties":[{"id":"L5RCorePro000011","name":"Mundane"}],"armor":{"physical":"1","supernatural":"-"},"description":"","book_reference":"Core p.239"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/armor.svg","effects":[]} diff --git a/system/packs/core-property.db b/system/packs/core-property.db new file mode 100644 index 0000000..17551de --- /dev/null +++ b/system/packs/core-property.db @@ -0,0 +1,16 @@ +{"_id":"L5RCorePro000000","name":"Razor-Edged","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000001","name":"Ceremonial","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000002","name":"Damaged","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000003","name":"Destroyed","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000004","name":"Concealable","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000005","name":"Cumbersome","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000006","name":"Snaring","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000007","name":"Unholy","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000008","name":"Forbidden","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000009","name":"Resplendent","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000010","name":"Wargear","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000011","name":"Mundane","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000012","name":"Prepare","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000013","name":"Sacred","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000014","name":"Durable","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.240"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} +{"_id":"L5RCorePro000015","name":"Subtle","permission":{"default":0},"type":"property","data":{"description":"","book_reference":"Core p.241"},"sort":100001,"flags":{},"img":"systems/l5r5e/assets/icons/items/property.svg","effects":[]} diff --git a/system/scripts/actors/base-sheet.js b/system/scripts/actors/base-sheet.js index 28259f4..0cf353b 100644 --- a/system/scripts/actors/base-sheet.js +++ b/system/scripts/actors/base-sheet.js @@ -94,34 +94,18 @@ export class BaseSheetL5r5e extends ActorSheet { // tgt.hasClass('toggle-active') ? tgt.removeClass('toggle-active') : tgt.addClass('toggle-active'); // }); - // *** Items : edit, delete *** - ["item", "peculiarity", "technique", "advancement"].forEach((type) => { - html.find(`.${type}-edit`).on("click", (event) => { - this._editSubItem(event, type); - }); - html.find(`.${type}-delete`).on("click", (event) => { - this._deleteSubItem(event, type); - }); - - if (type !== "item") { - html.find(`.${type}-curriculum`).on("click", (event) => { - this._switchSubItemCurriculum(event, type); - }); - } + // *** Items : add, edit, delete, curriculum *** + html.find(".item-add").on("click", (event) => { + this._addSubItem(event); }); - - // *** Items : add *** - html.find(".technique-add").on("click", (event) => { - this._addSubItem({ - name: game.i18n.localize("l5r5e.techniques.title_new"), - type: "technique", - }); + html.find(`.item-edit`).on("click", (event) => { + this._editSubItem(event); }); - html.find(".advancement-add").on("click", (event) => { - this._addSubItem({ - name: game.i18n.localize("l5r5e.advancements.title_new"), - type: "advancement", - }); + html.find(`.item-delete`).on("click", (event) => { + this._deleteSubItem(event); + }); + html.find(`.item-curriculum`).on("click", (event) => { + this._switchSubItemCurriculum(event); }); } @@ -129,20 +113,30 @@ export class BaseSheetL5r5e extends ActorSheet { * Add a generic item with sub type * @private */ - async _addSubItem(data) { - const created = await this.actor.createEmbeddedEntity("OwnedItem", data); + async _addSubItem(event) { + const type = $(event.currentTarget).data("item-type"); + const titles = { + item: "l5r5e.items.title_new", + armor: "l5r5e.armors.title_new", + weapon: "l5r5e.weapons.title_new", + technique: "l5r5e.techniques.title_new", + peculiarity: "l5r5e.peculiarities.title_new", + advancement: "l5r5e.advancements.title_new", + }; + const created = await this.actor.createEmbeddedEntity("OwnedItem", { + name: game.i18n.localize(titles[type]), + type: type, + }); const item = this.actor.getOwnedItem(created._id); item.sheet.render(true); - return item; } /** * Edit a generic item with sub type * @private */ - async _editSubItem(event, type) { - const li = $(event.currentTarget).parents("." + type); - const itemId = li.data(type + "Id"); + _editSubItem(event) { + const itemId = $(event.currentTarget).data("item-id"); const item = this.actor.getOwnedItem(itemId); item.sheet.render(true); } @@ -151,23 +145,24 @@ export class BaseSheetL5r5e extends ActorSheet { * Delete a generic item with sub type * @private */ - async _deleteSubItem(event, type) { - const li = $(event.currentTarget).parents("." + type); - return this.actor.deleteOwnedItem(li.data(type + "Id")); + _deleteSubItem(event, type) { + const itemId = $(event.currentTarget).data("item-id"); + return this.actor.deleteOwnedItem(itemId); } /** * Switch "in_curriculum" * @private */ - _switchSubItemCurriculum(event, type) { - const li = $(event.currentTarget).parents("." + type); - const itemId = li.data(type + "Id"); + _switchSubItemCurriculum(event) { + const itemId = $(event.currentTarget).data("item-id"); const item = this.actor.getOwnedItem(itemId); - return item.update({ - data: { - in_curriculum: !item.data.data.in_curriculum, - }, - }); + if (item.type !== "item") { + item.update({ + data: { + in_curriculum: !item.data.data.in_curriculum, + }, + }); + } } } diff --git a/system/scripts/config.js b/system/scripts/config.js index 050f36a..39be8f5 100644 --- a/system/scripts/config.js +++ b/system/scripts/config.js @@ -1,5 +1,14 @@ export const L5R5E = {}; +L5R5E.packsIds = { + properties: { + core: "l5r5e.core-properties", + }, + techniques: { + core: "l5r5e.core-techniques", + }, +}; + L5R5E.paths = { assets: `systems/l5r5e/assets/`, templates: `systems/l5r5e/templates/`, diff --git a/system/scripts/items/item-sheet.js b/system/scripts/items/item-sheet.js index 51f25de..95985b0 100644 --- a/system/scripts/items/item-sheet.js +++ b/system/scripts/items/item-sheet.js @@ -44,7 +44,7 @@ export class ItemSheetL5r5e extends ItemSheet { props.push({ id: property.id, name: item.name }); } else { // Pack item - item = await game.packs.get("l5r5e.Properties").getEntry(property.id); + item = await game.packs.get(CONFIG.l5r5e.packsIds.properties.core).getEntry(property.id); if (item) { sheetData.data.propertiesList.push(item); props.push({ id: item._id, name: item.name }); diff --git a/system/system.json b/system/system.json index b9262c1..e864c1f 100644 --- a/system/system.json +++ b/system/system.json @@ -11,6 +11,60 @@ "esmodules": ["./scripts/main-l5r5e.js"], "styles": ["./styles/l5r5e.css"], "packs": [ + { + "name": "core-properties", + "label": "Properties", + "path": "packs/core-property.db", + "entity": "Item" + }, + { + "name": "core-techniques", + "label": "Techniques", + "path": "packs/core-technique.db", + "entity": "Item" + }, + { + "name": "core-items", + "label": "Items", + "path": "packs/core-item.db", + "entity": "Item" + }, + { + "name": "core-armors", + "label": "Armors", + "path": "packs/core-armor.db", + "entity": "Item" + }, + { + "name": "core-weapons", + "label": "Weapons", + "path": "packs/core-weapon.db", + "entity": "Item" + }, + { + "name": "core-distinctions", + "label": "Distinctions", + "path": "packs/core-distinction.db", + "entity": "Item" + }, + { + "name": "core-passions", + "label": "Passions", + "path": "packs/core-passion.db", + "entity": "Item" + }, + { + "name": "core-adversities", + "label": "Adversities", + "path": "packs/core-adversity.db", + "entity": "Item" + }, + { + "name": "core-anxieties", + "label": "Anxieties", + "path": "packs/core-anxiety.db", + "entity": "Item" + }, { "name": "macros", "label": "L5R5e Macros", diff --git a/system/templates/actors/character/advancement.html b/system/templates/actors/character/advancement.html index 947eec4..0e6d75d 100644 --- a/system/templates/actors/character/advancement.html +++ b/system/templates/actors/character/advancement.html @@ -1,12 +1,14 @@ -