diff --git a/lang/ru.json b/lang/ru.json
index 134caf0..25082e3 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -12,8 +12,9 @@
},
"Item": {
"Name": "Название",
- "Modifier": "Модификатор",
- "DefaultName": "Новый Предмет"
+ "Dice": "Кубик",
+ "DefaultName": "Новый Предмет",
+ "NoDice": "Нет"
},
"Ranks": {
"1": "Агент 3-го разряда",
@@ -46,6 +47,7 @@
"Uses": "Использует",
"InHeroicMoment": "В свой Героический Момент",
"SkillCheck": "Совершает проверку навыка",
+ "ItemUsed": "Использует \"{item}\"",
"DifficultyX": "Сложность {diff}"
},
"HeroicMoment": "Героический Момент",
diff --git a/module/sheets/efs-character-sheet.js b/module/sheets/efs-character-sheet.js
index b80db45..e733477 100644
--- a/module/sheets/efs-character-sheet.js
+++ b/module/sheets/efs-character-sheet.js
@@ -17,10 +17,16 @@ export default class EFSCharacterSheet extends ActorSheet {
html.find(".clickable.approach").click(this._approachClicked.bind(this));
html.find(".heroic-mode").click(this._heroicModeClicked.bind(this));
html.find(".clickable#extra").click(this._showExtra.bind(this));
+
html.find(".skill-4").click(this._skill4Click.bind(this));
html.find(".skill-8").click(this._skill8Click.bind(this));
html.find(".skill-12").click(this._skill12Click.bind(this));
html.find(".skill-16").click(this._skill16Click.bind(this));
+
+ html.find(".edit-item").click(this._onEditItem.bind(this))
+ html.find(".delete-item").click(this._onDeleteItem.bind(this))
+ html.find(".add-item").click(this._onAddItem.bind(this))
+ html.find(".item").click(this._onClickItem.bind(this))
}
async _skill4Click(event) {
@@ -55,6 +61,57 @@ export default class EFSCharacterSheet extends ActorSheet {
});
}
+ async _onClickItem(event) {
+ event.preventDefault();
+ const itemId = event.target.dataset.id;
+ const item = this.actor.getEmbeddedDocument("Item", itemId);
+
+ let r = await new Roll(`1d`+item._system.dice).evaluate({async: true});
+ let message = ""+game.i18n.localize("EFS.Message.ItemUsed").replace("{item}", item.name)+""
+
+ await r.toMessage({
+ flavor: message,
+ speaker: ChatMessage.getSpeaker({actor: this.actor})
+ });
+ }
+
+ _onEditItem(event) {
+ event.preventDefault();
+
+ const item = this.actor.getEmbeddedDocument("Item", event.target.dataset.id);
+ if (!item) {
+ return;
+ }
+ item.sheet.render(true);
+ }
+
+ async _onDeleteItem(event) {
+ event.preventDefault();
+ const itemId = event.target.dataset.id;
+ const item = this.actor.getEmbeddedDocument("Item", itemId);
+
+ new Dialog({
+ title: game.i18n.localize("EFS.Dialog.ActionConfirm"),
+ content: game.i18n.localize("EFS.Dialog.ConfirmDeletion")+""+item.name+"?",
+ buttons: {
+ yes: {
+ label: game.i18n.localize("EFS.Dialog.Yes"),
+ callback: () => {this.actor.deleteEmbeddedDocuments("Item", [event.target.dataset.id])},
+ },
+ no: {
+ label: game.i18n.localize("EFS.Dialog.No"),
+ callback: () => {}
+ }
+ }
+ }).render(true);
+ }
+
+ async _onAddItem(event) {
+ event.preventDefault();
+ const items = await this.actor.createEmbeddedDocuments("Item", [{name:game.i18n.localize("EFS.Item.DefaultName"), type:"item"}])
+ await items[0].sheet.render(true);
+ }
+
async _showExtra(event) {
new EFSCharacterExtraSheet(this.actor).render(true);
}
diff --git a/template.json b/template.json
index 98307a4..67a4d4e 100644
--- a/template.json
+++ b/template.json
@@ -33,7 +33,7 @@
"item"
],
"item": {
- "modifier": 0,
+ "dice": 0,
"description": ""
}
}
diff --git a/templates/sheets/efs-character-sheet.html b/templates/sheets/efs-character-sheet.html
index 4eb2478..eca8198 100644
--- a/templates/sheets/efs-character-sheet.html
+++ b/templates/sheets/efs-character-sheet.html
@@ -35,91 +35,122 @@
{{ localize 'EFS.Character.Skills' }}
4:
- {{editor data.skills.four target="system.skills.four" class="skill-4 clickable regular skill-desc" button=true editable=true engine="prosemirror"}}
+ {{editor data.skills.four target="system.skills.four" class="skill-4 clickable regular
+ skill-desc" button=true editable=true engine="prosemirror"}}
8:
- {{editor data.skills.eight target="system.skills.eight" class="skill-8 clickable regular skill-desc" button=true editable=true engine="prosemirror"}}
+ {{editor data.skills.eight target="system.skills.eight" class="skill-8 clickable regular
+ skill-desc" button=true editable=true engine="prosemirror"}}
- 12:
- {{editor data.skills.twelve target="system.skills.twelve" class="skill-12 clickable regular skill-desc" button=true editable=true engine="prosemirror"}}
+ 12:
+ {{editor data.skills.twelve target="system.skills.twelve" class="skill-12 clickable regular
+ skill-desc" button=true editable=true engine="prosemirror"}}
16:
- {{editor data.skills.sixteen target="system.skills.sixteen" class="skill-16 clickable regular skill-desc" button=true editable=true engine="prosemirror"}}
+ {{editor data.skills.sixteen target="system.skills.sixteen" class="skill-16 clickable
+ regular skill-desc" button=true editable=true engine="prosemirror"}}
-
-
-
-
-
-
+
+
+
+
+
+
+
{{ localize 'EFS.Character.DP' }} ({{ localize 'EFS.Max' }})
-
-
-
-
-
-
- {{ localize 'EFS.Approaches.Short.Brutal' }}
-
-
-
+
+
+
+
+
+
+ {{ localize 'EFS.Approaches.Short.Brutal' }}
+
+
+
{{ localize 'EFS.Approaches.Short.Skillful' }}
-
+
+
-
-
+
-
- {{ localize 'EFS.Approaches.Short.Smart' }}
-
-
-
+
+ {{ localize 'EFS.Approaches.Short.Smart' }}
+
+
+
{{ localize 'EFS.Approaches.Short.Charismatic' }}
-
+
+
+
+
+
+ {{#each items as |item|}}
+
+
+ {{item.name}} {{#if (gt item.data.dice 0)}}{{ localize 'EFS.DicePrefix'
+ }}{{item.data.dice}}{{/if}}
+
+
+
+
+
+
+
{{{item._system.description}}}
+
+ {{/each}}
+
+
diff --git a/templates/sheets/efs-item-sheet.html b/templates/sheets/efs-item-sheet.html
index bcf2c35..2141c14 100644
--- a/templates/sheets/efs-item-sheet.html
+++ b/templates/sheets/efs-item-sheet.html
@@ -7,20 +7,19 @@
- {{ localize 'EFS.Item.Modifier' }}
-
-
-
-
{{ localize 'EFS.Description' }}
{{editor data.description target="system.description" button=true editable=true}}
diff --git a/templates/sheets/extra-dialog.html b/templates/sheets/extra-dialog.html
index b3a353a..1981913 100644
--- a/templates/sheets/extra-dialog.html
+++ b/templates/sheets/extra-dialog.html
@@ -6,22 +6,5 @@
{{localize 'EFS.Description'}}
{{editor data.extra.description target="system.extra.description" button=true editable=true}}
-
-
-
- {{#each items as |item|}}
-
- {{item.name}} {{#if (gt item._system.modifier 0)}}+{{item._system.modifier}}{{/if}}
-
-
-
-
-
-
-
{{{item._system.description}}}
-
- {{/each}}
-
-
\ No newline at end of file