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' }} - + +
+
+

{{localize 'EFS.Items'}}

+
+ {{#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' }} - + {{#select data.dice}} + + + + + + {{/select}}
-
- -

{{ 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}}
-
-

{{localize 'EFS.Items'}}

-
- {{#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