diff --git a/efs.css b/efs.css index 79c1ffe..5273d6d 100644 --- a/efs.css +++ b/efs.css @@ -36,6 +36,14 @@ margin-left: 30px; } +.clickable.regular { + font-weight: normal !important; +} + +.skill { + margin: 12px 0; +} + .photo .picture { object-fit: cover; object-position: top; @@ -132,11 +140,29 @@ .efs .editor { height: 100%; + width: 100%; } .efs .editor .editor-content { min-height: 200px; } + +.efs .editor .skill-desc.editor-content { + min-height: 100px; + min-width: 360px; + width: 360px; + position: relative; +} + +.skills .editor-edit { + font-size: 18px; + z-index: 1; +} + +.skills .editor-menu .text, .skills .editor-menu .source-code-edit { + display: none; +} + .efs.columns { display: flex; flex-direction: row; diff --git a/lang/ru.json b/lang/ru.json index 2a97d24..134caf0 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -7,6 +7,7 @@ "Rank": "Ранг", "Class": "Класс", "Credits": "Кредиты", + "Skills": "Навыки", "DP": "ОП" }, "Item": { @@ -43,7 +44,9 @@ }, "Message": { "Uses": "Использует", - "InHeroicMoment": "В свой Героический Момент" + "InHeroicMoment": "В свой Героический Момент", + "SkillCheck": "Совершает проверку навыка", + "DifficultyX": "Сложность {diff}" }, "HeroicMoment": "Героический Момент", "Sheets": { diff --git a/module/sheets/efs-character-sheet.js b/module/sheets/efs-character-sheet.js index bdc21e7..b80db45 100644 --- a/module/sheets/efs-character-sheet.js +++ b/module/sheets/efs-character-sheet.js @@ -17,6 +17,42 @@ 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)); + } + + async _skill4Click(event) { + await this._skillCheck(4) + } + async _skill8Click(event) { + await this._skillCheck(8) + } + async _skill12Click(event) { + await this._skillCheck(12) + } + async _skill16Click(event) { + await this._skillCheck(16) + } + + async _skillCheck(diff) { + let diffHint = game.i18n.localize("EFS.Message.DifficultyX").replace("{diff}", diff) + let r = await new Roll(`d20[${diffHint}]`).evaluate({async: true}); + let skillLvls = { + 4: "four", + 8: "eight", + 12: "twelve", + 16: "sixteen" + } + let skillName = this.actor._system.skills[skillLvls[diff]] + let skillMessage = ""+game.i18n.localize("EFS.Message.SkillCheck") + + `
${skillName}
` + + await r.toMessage({ + flavor: skillMessage, + speaker: ChatMessage.getSpeaker({actor: this.actor}) + }); } async _showExtra(event) { diff --git a/template.json b/template.json index 0465c4f..98307a4 100644 --- a/template.json +++ b/template.json @@ -17,6 +17,12 @@ "smart": 0, "charismatic": 0 }, + "skills": { + "four": "", + "eight": "", + "twelve": "", + "sixteen": "" + }, "extra": { "description": "" } diff --git a/templates/sheets/efs-character-sheet.html b/templates/sheets/efs-character-sheet.html index 1e8fb74..4eb2478 100644 --- a/templates/sheets/efs-character-sheet.html +++ b/templates/sheets/efs-character-sheet.html @@ -30,6 +30,26 @@ {{ localize 'EFS.Character.Credits' }} +
+
+ {{ 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"}} +
+
+ 8: + {{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"}} +
+
+ 16: + {{editor data.skills.sixteen target="system.skills.sixteen" class="skill-16 clickable regular skill-desc" button=true editable=true engine="prosemirror"}} +
+
@@ -38,7 +58,9 @@
- {{ localize 'EFS.Character.DP' }} ({{ localize 'EFS.Max' }}) + {{ localize 'EFS.Character.DP' }} ({{ localize 'EFS.Max' }})
@@ -102,6 +124,7 @@

- {{ localize 'EFS.Extra' }} + {{ localize 'EFS.Extra' }} \ No newline at end of file