From 6141ae7693c4b2eea177c149218b55c99956fd8d Mon Sep 17 00:00:00 2001 From: U~man Date: Fri, 3 Jul 2020 14:37:49 +0200 Subject: [PATCH] ENH: Layout rework --- src/assets/heart_empty.png | Bin 8112 -> 4344 bytes src/assets/heart_full.png | Bin 10726 -> 10775 bytes src/assets/shield.png | Bin 7799 -> 4693 bytes src/lang/en.json | 10 +- src/module/actor/actor-sheet.js | 7 + src/module/helpers.js | 8 + src/module/item/entity.js | 75 ++++++++ src/scss/actor-base.scss | 24 ++- src/scss/apps.scss | 97 ++++++++++ src/scss/character.scss | 12 +- src/template.json | 8 +- .../actors/dialogs/tweaks-dialog.html | 22 +++ .../partials/character-attributes-tab.html | 176 +++++++++++------- src/templates/chat/item-card.html | 38 ++++ 14 files changed, 394 insertions(+), 83 deletions(-) create mode 100644 src/templates/chat/item-card.html diff --git a/src/assets/heart_empty.png b/src/assets/heart_empty.png index 06735457149e447e28c136c5955a7d21d4e34af2..99578eb28386bc9e4e1a4856d1c7ae1af93a6b09 100644 GIT binary patch delta 4289 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 literal 8112 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
$wNj7Jz>KtU>rPmVOE1d_1P^> z;67vvcovFLrhZk_@^}XsZU%R&ZqXFjqo3x-B_3AZ0@LJ>kEu^LdnvmVDjWJHOwlCB z1-)u~F^7ypb&sr8>5M|hLr8j06D^9NlYG?YXT4OcYLPc)jhSgC5POn%R{W=0dcd zM5f0{@w;+Lz@yof^`zPJELk?G?Ao*!`VyNBE3%kQcpoZPOe&KGV;M}yj+VAZQue4r zPu#qyhVXb(mZ&)XUQ+CNrTEvrGTf;FtpTZ#eH=5pHh0rLG^8XOl&+-o1ejs#y(h$3 z`hbns54pwplsO#y1hQe35y)3W)&7zAgll7(4s~))r2)12S|5zb;5vRrOuR0y5qt2+ z5|Ue2g!jVf%rPOu{jEk)fc`ks3>&N6{0&RFJ#a=&u;H7svdGo`e^Oy3Y!w^ltSaxD z%U6~SfQ8PBrkCclNIN)Ci{%NctJDjH+K7$k@<5|L4=TkH@lJNg&xH5{=+C)094qD8 zA@q4xW^ea!L(1!i^;s;viJi{CX-$jNyH%Bpnln9OJkWohW6)`Eq3yWX`5<$pW{{rU!zw z&&WA(Ci}TRkIS9~WgBWeevntf(IQ*^yqoY2EHP#c`PrcKi1mVnO@=#6z!kV9=r0Kt zwaasZpk7*y-O{#|Ql1f-I{p*A-uGbcjhu|2b8@>kDLy#>x za24@U#OlGi5iIIz6(2A#zVMy<%Z%Xqa6r6u*X^Lrh3EXjvjLld>xtG!Lyw>q5=X_U zACoCQcJmEwanQXGThn^LYW5inKcJ#q!-2k*^asZ#!;t&D`|HOPX*+EoT?DSdqt3M$ zq_Pb=^Csls%17#a_z^;+swFBGNfJVB9!3d}>lL;3KuH;VjGTAi8a;mNsn3o4U`%xO z{Bq#(+@VUvPpO@mb-9R7kA6u3*7Ks|FL?(Lt4wjJn0Yy!;F+xAW#MH+g{!3#BkpL+ zG2+uK(;5~0549wd)e9SMw~!vDw*FL?gQLf;Ii=p?A#mX>L&;pw;|d;)CZoNJ$D4tsbg~pYA;}F^=+9UwPM0N~6KE48 zZNibd6Q;Z1Kf{K0#&*JZ60#A79}5Aa9QYXB3_=iE?`an^;6Q*;#N>w>ot1JXJQ{Sa zCz<1c(I8X90|ltw8i=9`lnRL7mJKQ4m^J&M|8wrW@03~ex0RIcM*rw}d;+NiHH z=)hkh3UK387Ldm&z9T8u$9Gl*-fX)CQM+Dr2Pnbl*2yL7g~9D&)(SH)TQP{Ph-Z6N z41?^pL+VV1UE*0XfVFb#z*Ag-yA7>AR+pW2NQ-n37`)C8!njizhxGJ?NsjUxw!qmc zQc(z2o$>Wi$}h}D*Qxzl@L3ZvLrmMA(``_a)b=1R2LKiYt7rTF64wltXDosEEoJ{a So&Tla0b@gRgBm@z`2Pc)-wWpe diff --git a/src/assets/heart_full.png b/src/assets/heart_full.png index 29747b88773073d63f503c2f298603d9df4c165a..ed2da98be5ed768af82caa8194891496f7e9f869 100644 GIT binary patch literal 10775 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 Jt7H}Ne*nMn@TmX* literal 10726 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 OKut*tTJhZa&Hn+&t}=E2 diff --git a/src/assets/shield.png b/src/assets/shield.png index a2f7eed5bbed2ec1fb21b8ed44066078c8c90edc..049f92a8b78a80e9e237e10e5dabeba65d86c67b 100644 GIT binary patch literal 4693 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 Qo1n8{ZfuRIH^kole+Dc!5&!@I diff --git a/src/lang/en.json b/src/lang/en.json index cd52679..fa0f5cd 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -57,8 +57,12 @@ "OSE.HealthShort": "HP", "OSE.HitDice": "Hit Dice", "OSE.HitDiceShort": "HD", - "OSE.Movement": "Movement", - "OSE.MovementShort": "MOV", + "OSE.Movement": "Movement Rate", + "OSE.MovementEncounter": "Encounter Movement Rate", + "OSE.MovementEncounterShort": "ENC", + "OSE.MovementOverland": "Overland Movement Rate", + "OSE.MovementOverlandShort": "OVE", + "OSE.MovementShort": "MR", "OSE.ArmorClass": "Armor Class", "OSE.ArmorClassShort": "AC", "OSE.AscArmorClassShort": "AAC", @@ -67,8 +71,10 @@ "OSE.Thac0": "THAC0", "OSE.MeleeShort": "MEL", "OSE.Melee": "Melee", + "OSE.MeleeBonus": "Melee Bonus", "OSE.MissileShort": "MIS", "OSE.Missile": "Missile", + "OSE.MissileBonus": "Missile Bonus", "OSE.Initiative": "Initiative", "OSE.InitiativeShort": "INIT", "OSE.Attacks": "Attacks Usable per Round", diff --git a/src/module/actor/actor-sheet.js b/src/module/actor/actor-sheet.js index a1417e5..d3790e9 100644 --- a/src/module/actor/actor-sheet.js +++ b/src/module/actor/actor-sheet.js @@ -85,6 +85,13 @@ export class OseActorSheet extends ActorSheet { }); }); + html.find(".item-image").click(async (ev) => { + const li = $(ev.currentTarget).parents(".item"); + const item = this.actor.getOwnedItem(li.data("itemId")); + item.roll(); + }); + + super.activateListeners(html); } diff --git a/src/module/helpers.js b/src/module/helpers.js index 0062abd..3613183 100644 --- a/src/module/helpers.js +++ b/src/module/helpers.js @@ -12,6 +12,14 @@ export const registerHelpers = async function () { return parseInt(rh) - parseInt(lh); }); + Handlebars.registerHelper("divide", function (lh, rh) { + return Math.floor(parseFloat(lh) / parseFloat(rh)); + }); + + Handlebars.registerHelper("mult", function (lh, rh) { + return parseInt(lh) * parseInt(rh); + }); + Handlebars.registerHelper("counter", function (status, value, max) { return status ? Math.clamped((100.0 * value) / max, 0, 100) : Math.clamped(100 - (100.0 * value) / max, 0, 100); }); diff --git a/src/module/item/entity.js b/src/module/item/entity.js index 0c23cc0..8c979a3 100644 --- a/src/module/item/entity.js +++ b/src/module/item/entity.js @@ -12,4 +12,79 @@ export class OseItem extends Item { prepareData() { super.prepareData(); } + + getChatData(htmlOptions) { + const data = duplicate(this.data.data); + + // Rich text description + data.description = TextEditor.enrichHTML(data.description, htmlOptions); + + // Item properties + const props = []; + const labels = this.labels; + + if (this.data.type == "weapon") { + props.push(data.qualities); + } + if (this.data.type == "spell") { + props.push( + `${data.class} ${data.lvl}`, + data.range, + data.duration + ); + } + if (data.hasOwnProperty("equipped")) { + props.push(data.equipped ? "Equipped" : "Not Equipped"); + } + + // Filter properties and return + data.properties = props.filter((p) => !!p); + return data; + } + + /** + * Roll the item to Chat, creating a chat card which contains follow up attack or damage roll options + * @return {Promise} + */ + async roll({ configureDialog = true } = {}) { + // Basic template rendering data + const token = this.actor.token; + const templateData = { + actor: this.actor, + tokenId: token ? `${token.scene._id}.${token.id}` : null, + item: this.data, + data: this.getChatData(), + labels: this.labels, + hasAttack: this.hasAttack, + isHealing: this.isHealing, + hasDamage: this.hasDamage, + isSpell: this.data.type === "spell", + hasSave: this.hasSave, + }; + + // Render the chat card template + const template = `systems/ose/templates/chat/item-card.html`; + const html = await renderTemplate(template, templateData); + + // Basic chat message data + const chatData = { + user: game.user._id, + type: CONST.CHAT_MESSAGE_TYPES.OTHER, + content: html, + speaker: { + actor: this.actor._id, + token: this.actor.token, + alias: this.actor.name, + }, + }; + + // Toggle default roll mode + let rollMode = game.settings.get("core", "rollMode"); + if (["gmroll", "blindroll"].includes(rollMode)) + chatData["whisper"] = ChatMessage.getWhisperRecipients("GM"); + if (rollMode === "blindroll") chatData["blind"] = true; + + // Create the chat message + return ChatMessage.create(chatData); + } } diff --git a/src/scss/actor-base.scss b/src/scss/actor-base.scss index 2099b9c..882d1e7 100644 --- a/src/scss/actor-base.scss +++ b/src/scss/actor-base.scss @@ -95,7 +95,7 @@ padding: 0; .attribute { position: relative; - margin: 10px; + margin: 8px; border: 1px solid $colorTan; .attribute-name { color: whitesmoke; @@ -104,25 +104,31 @@ background: $colorDark; text-align: center; } - .attribute-value { - padding: 4px; - display: flex; - flex-direction: row; - &.multiple input { - min-width: 28px; + &.attribute-secondaries { + margin: 10px 5px; + } + &.ability-score { + height: 40px; + .attribute-value { + line-height: 36px; } } + .attribute-value { + text-align: center; + padding: 4px; + } .attribute-mod { position: absolute; color: $colorTan; right: 5px; - top: 0; + top: -5px; font-size: 13px; } } } .attribute-group { flex: 0 0 105px; + margin: auto 0; .attributes { .attribute { display: flex; @@ -130,7 +136,7 @@ .attribute-name { width: 40px; margin: 0; - line-height: 28px; + line-height: 38px; a { margin: auto; } diff --git a/src/scss/apps.scss b/src/scss/apps.scss index e69de29..fcd39d7 100644 --- a/src/scss/apps.scss +++ b/src/scss/apps.scss @@ -0,0 +1,97 @@ + +.ose.chat-card { + font-style: normal; + font-size: 12px; + + .card-header { + padding: 3px 0; + border-top: 2px groove #FFF; + border-bottom: 2px groove #FFF; + + img { + flex: 0 0 36px; + margin-right: 5px; + } + + h3 { + flex: 1; + margin: 0; + line-height: 36px; + color: $colorOlive; + &:hover { + color: #111; + text-shadow: 0 0 10px red; + } + } + } + + .card-content { + margin: 5px 0; + + h3 { + font-size: 12px; + margin: 0; + font-weight: bold; + } + + > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + } + } + + .card-buttons { + margin: 5px 0; + + span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid $colorTan; + } + + button { + font-size: 12px; + height: 24px; + line-height: 20px; + margin: 2px 0; + } + } + + .card-footer { + padding: 3px 0 0; + border-top: 2px groove #FFF; + + span { + border-right: 2px groove #FFF; + padding: 0 5px 0 0; + font-size: 10px; + + &:last-child { + border-right: none; + padding-right: 0; + } + } + } + } + + .dice-roll .dice-total { + &.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; + } + &.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; + } + &.critical { + color: green; + } + &.fumble { + color: red; + } + } \ No newline at end of file diff --git a/src/scss/character.scss b/src/scss/character.scss index 6576274..56f7748 100644 --- a/src/scss/character.scss +++ b/src/scss/character.scss @@ -28,10 +28,10 @@ .health { &.armor-class { background: url('/systems/ose/assets/shield.png') no-repeat center; - background-size: 90px; + background-size: 70px; } margin: 10px 0; - height: 90px; + height: 70px; position: relative; input { font-size: 16px; @@ -42,25 +42,25 @@ border-bottom: none; position: absolute; font-size: 24px; - top: 28px; + top: 10px; width: 70px; left: calc(50% - 35px); } .health-bottom { border-bottom: none; position: absolute; - bottom: 12px; + bottom: 8px; width: 40px; right: calc(50% + -20px); } .health-empty { background: url('/systems/ose/assets/heart_empty.png') no-repeat center; - background-size: 90px; + background-size: 70px; background-position: top; } .health-full { background: url('/systems/ose/assets/heart_full.png') no-repeat center; - background-size: 90px; + background-size: 70px; background-position: bottom; } } diff --git a/src/template.json b/src/template.json index a0ebbc9..84ae158 100644 --- a/src/template.json +++ b/src/template.json @@ -24,7 +24,10 @@ }, "thac0": { "value": 19, - "mod": 0 + "mod": { + "missile": 0, + "melee": 0 + } }, "saves": { "death": 10, @@ -34,8 +37,7 @@ "spell": 10 }, "movement": { - "base": 0, - "encounter": 0 + "base": 120 } }, "spellcaster": { diff --git a/src/templates/actors/dialogs/tweaks-dialog.html b/src/templates/actors/dialogs/tweaks-dialog.html index 964c834..42fff28 100644 --- a/src/templates/actors/dialogs/tweaks-dialog.html +++ b/src/templates/actors/dialogs/tweaks-dialog.html @@ -35,6 +35,28 @@ /> +
+ +
+ +
+
+
+ +
+ +
+
{{/if}}