diff --git a/src/assets/melee.png b/src/assets/melee.png new file mode 100644 index 0000000..831b0fc Binary files /dev/null and b/src/assets/melee.png differ diff --git a/src/assets/missile.png b/src/assets/missile.png new file mode 100644 index 0000000..20bf16c Binary files /dev/null and b/src/assets/missile.png differ diff --git a/src/assets/shield.png b/src/assets/shield.png index 049f92a..3fb7cbb 100644 Binary files a/src/assets/shield.png and b/src/assets/shield.png differ diff --git a/src/assets/twohanded.png b/src/assets/twohanded.png new file mode 100644 index 0000000..033cf04 Binary files /dev/null and b/src/assets/twohanded.png differ diff --git a/src/lang/en.json b/src/lang/en.json index 7728378..43b1286 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -49,6 +49,7 @@ "OSE.details.experience.base": "Experience", "OSE.details.experience.bonus": "Bonus Experience", "OSE.details.experience.next": "Next level", + "OSE.details.experience.share": "Experience Share", "OSE.details.experience.award": "XP Award", "OSE.details.treasure": "Treasure type", "OSE.details.treasureTable": "Table", diff --git a/src/module/config.js b/src/module/config.js index 4a0d8d2..4f2014a 100644 --- a/src/module/config.js +++ b/src/module/config.js @@ -70,5 +70,17 @@ export const OSE = { melee: "OSE.items.Melee", missile: "OSE.items.Missile", slow: "OSE.items.Slow", + blunt: "OSE.items.Blunt", + reload: "OSE.items.Reload", + splash: "OSE.items.Splash", + brace: "OSE.items.Brace", + twohanded: "OSE.items.TwoHanded", + }, + tag_images: { + melee: "/systems/ose/assets/melee.png", + missile: "/systems/ose/assets/missile.png", + slow: "", + twohanded: "/systems/ose/assets/twohanded.png", } }; +// fa-sign-language \ No newline at end of file diff --git a/src/module/dialog/party-sheet.js b/src/module/dialog/party-sheet.js index 31acc66..80b5759 100644 --- a/src/module/dialog/party-sheet.js +++ b/src/module/dialog/party-sheet.js @@ -115,10 +115,10 @@ export class OsePartySheet extends FormApplication { activateListeners(html) { super.activateListeners(html); html - .find("button[data-action='select-actors']") + .find(".item-controls .item-control .select-actors") .click(this._selectActors.bind(this)); - html.find("button[data-action='deal-xp']").click(this._dealXP.bind(this)); + html.find(".item-controls .item-control .deal-xp").click(this._dealXP.bind(this)); html.find("a.resync").click(() => this.render(true)); diff --git a/src/module/helpers.js b/src/module/helpers.js index 26f08a5..1e79bde 100644 --- a/src/module/helpers.js +++ b/src/module/helpers.js @@ -34,6 +34,10 @@ export const registerHelpers = async function () { return parseFloat(lh) * parseFloat(rh); }); + Handlebars.registerHelper("roundWeight", function (weight) { + return Math.round(parseFloat(weight) / 100) / 10; + }); + Handlebars.registerHelper("counter", function (status, value, max) { return status ? Math.clamped((100.0 * value) / max, 0, 100) diff --git a/src/module/item/entity.js b/src/module/item/entity.js index 6a07a77..de1e6db 100644 --- a/src/module/item/entity.js +++ b/src/module/item/entity.js @@ -191,6 +191,8 @@ export class OseItem extends Item { if (matches) { title = matches[1]; val = val.substring(0, matches.index); + } else { + title = val; } // Auto fill checkboxes switch (val) { diff --git a/src/scss/actor-base.scss b/src/scss/actor-base.scss index be16dad..a4427ee 100644 --- a/src/scss/actor-base.scss +++ b/src/scss/actor-base.scss @@ -274,6 +274,7 @@ height: 30px; margin: 0; line-height: 30px; + flex-basis: 90px; .item-image { flex-basis: 30px; flex-grow: 0; @@ -285,12 +286,23 @@ } } } + .icon-row { + img { + border: none; + margin: 3px 1px; + } + } + .field-flex { + flex: 1; + text-align: left; + font-size: 12px; + text-indent: 8px; + } .field-longer { text-indent: 8px; text-align: left; - flex-basis: 150px; + flex-basis: 90px; font-size: 12px; - flex-grow: 0; } .field-long { flex-basis: 65px; diff --git a/src/scss/apps.scss b/src/scss/apps.scss index f2bc975..3326a19 100644 --- a/src/scss/apps.scss +++ b/src/scss/apps.scss @@ -15,7 +15,20 @@ color: whitesmoke; background: $darkBackground; padding: 4px 0; - text-align: center; + line-height: 20px; + text-align: left; + padding: 2px 10px; + .item-controls { + .item-control { + padding: 0 2px; + button { + line-height: 15px; + margin: 0 1px; + background: rgba(255, 255, 240, 0.8); + border: 1px solid #b5b3a4; + } + } + } } .actor-list { margin: 0; @@ -23,15 +36,20 @@ list-style: none; padding: 0; .actor { - &:nth-child(even) { - background-color: rgba(0, 0, 0, 0.1); - } + border-bottom: 1px solid $colorTan; + border-top: 1px solid $colorTan; .fas { padding: 0 2px; + font-size: 10px; } - padding: 4px; + margin-bottom: 2px; font-size: 12px; text-align: center; + .fields .field-row{ + &:nth-child(odd) { + background-color: rgba(0, 0, 0, 0.1); + } + } .field-img { flex: 0 0 50px; position: relative; @@ -42,14 +60,14 @@ } img { border: none; - width: 50px; - height: 50px; + width: 45px; + height: 45px; } .img-btns { position: absolute; bottom: 0; left: 0; - width: 50px; + width: 45px; height: 12px; button { display: none; diff --git a/src/template.json b/src/template.json index d57e992..0260b21 100644 --- a/src/template.json +++ b/src/template.json @@ -91,6 +91,7 @@ "alignment": "", "level": 1, "xp": { + "share": 100, "next": 2000, "value": 0, "bonus": 0 diff --git a/src/templates/actors/dialogs/tweaks-dialog.html b/src/templates/actors/dialogs/tweaks-dialog.html index fb96b43..e8cc220 100644 --- a/src/templates/actors/dialogs/tweaks-dialog.html +++ b/src/templates/actors/dialogs/tweaks-dialog.html @@ -33,6 +33,12 @@ +
+ +
+ +
+
diff --git a/src/templates/actors/partials/character-inventory-tab.html b/src/templates/actors/partials/character-inventory-tab.html index 30666d8..bcfa8e3 100644 --- a/src/templates/actors/partials/character-inventory-tab.html +++ b/src/templates/actors/partials/character-inventory-tab.html @@ -22,9 +22,13 @@
-
+
{{#each item.data.tags as |tag|}} + {{#if (lookup @root.config.tag_images tag.value)}} + + {{else}} {{tag.value}} + {{/if}} {{/each}}
diff --git a/src/templates/apps/party-sheet.html b/src/templates/apps/party-sheet.html index ee32374..91a54aa 100644 --- a/src/templates/apps/party-sheet.html +++ b/src/templates/apps/party-sheet.html @@ -1,18 +1,18 @@
-
- {{#if user.isGM}} - - - {{/if}} -
-
- +
+
+ {{#if user.isGM}} +
+
+ +
+
+ +
+
+ {{/if}}
    {{#each data.entities as |e|}} {{#if e.data.flags.ose.party}} @@ -23,48 +23,61 @@
-
-
+
+
{{e.name}}
-
+
{{e.data.data.hp.value}}/{{e.data.data.hp.max}}
-
+
- {{#if @root.settings.ascending}}{{e.data.data.aac.value}} {{e.data.data.aac.naked}} + {{#if @root.settings.ascending}}{{e.data.data.aac.value}} + {{e.data.data.aac.naked}} {{else}}{{e.data.data.ac.value}} {{e.data.data.ac.naked}} {{/if}}
-
-
- - {{e.data.data.thac0.mod.melee}} {{e.data.data.thac0.value}} {{e.data.data.thac0.mod.missile}} -
-
- - {{e.data.data.movement.encounter}} +
+
+ + {{#unless settings.ascendingAC}} + {{e.data.data.thac0.value}} + {{else}} + {{e.data.data.thac0.bba}} + {{/unless}}
{{#if (eq e.data.type 'character')}} -
- - {{e.data.data.encumbrance.value}} +
+ + {{add e.data.data.scores.str.mod e.data.data.thac0.mod.melee}}
-
- - {{e.data.data.treasure}} +
+ + {{add e.data.data.scores.dex.mod e.data.data.thac0.mod.missile}} +
+ {{/if}} +
+ + {{e.data.data.movement.encounter}} {{e.data.data.movement.base}} +
+ {{#if (eq e.data.type 'character')}} +
+ + {{roundWeight e.data.data.encumbrance.value}}k
{{/if}}
-
+
{{#each e.data.data.saves as |s i|}} - {{lookup @root.config.saves_short i}} {{s.value}} + {{lookup @root.config.saves_short i}} {{s.value}} {{/each}} - {{#if (eq e.data.type 'character')}}{{mod e.data.data.scores.wis.mod}}{{/if}} + {{#if (eq e.data.type 'character')}}{{mod e.data.data.scores.wis.mod}}{{/if}}