diff --git a/src/lang/en.json b/src/lang/en.json index 53dc372..f8d8faf 100644 --- a/src/lang/en.json +++ b/src/lang/en.json @@ -8,6 +8,7 @@ "OSE.Formula": "Formula", "OSE.SitMod": "Situational Modifier", + "OSE.Modifier": "Modifier", "OSE.RollMode": "Roll Mode", "OSE.RollExample": "Roll Example", @@ -53,6 +54,7 @@ "OSE.saves.breath.long": "Dragon Breath", "OSE.saves.spell.short": "S", "OSE.saves.spell.long": "Rod, Staff, Spell", + "OSE.saves.magic.long": "vs Magic", "OSE.Health": "Hit Points", "OSE.HealthMax": "Maximum Hit Points", @@ -65,6 +67,7 @@ "OSE.MovementOverland": "Overland Movement Rate", "OSE.MovementOverlandShort": "OVE", "OSE.MovementShort": "MV", + "OSE.ArmorClassNaked": "Naked Armor Class", "OSE.ArmorClass": "Armor Class", "OSE.ArmorClassShort": "AC", "OSE.AscArmorClassShort": "AAC", @@ -80,11 +83,16 @@ "OSE.Missile": "Missile", "OSE.MissileBonus": "Missile Bonus", "OSE.Initiative": "Initiative", + "OSE.InitiativeBonus": "Initiative Bonus", "OSE.InitiativeShort": "INIT", "OSE.Attacks": "Attacks Usable per Round", "OSE.AttacksShort": "ATT", "OSE.Spellcaster": "Spellcaster", + "OSE.SpokenLanguages": "Spoken Languages", + "OSE.Literacy": "Literacy", + "OSE.NPCReaction": "NPC Reaction", + "OSE.RetainersMax": "#Retainers", "OSE.category.attributes": "Attributes", "OSE.category.inventory": "Inventory", @@ -99,7 +107,7 @@ "OSE.Setting.IndividualInitHint": "Initiative is rolled for each actor and modified by its DEX score", "OSE.Setting.AscendingAC": "Ascending Armor Class", "OSE.Setting.AscendingACHint": "The more the better", - "OSE.Setting.Morale": "Enable Monster Morale checks", + "OSE.Setting.Morale": "Enable monsters Morale Rating", "OSE.Setting.MoraleHint": "Morale Rating is shown on monster sheets", "OSE.Setting.THAC0Attacks": "Attacks with THAC0", "OSE.Setting.THAC0AttacksHint": "Attacks are resolved using the THAC0 value, not compatible with AAC", @@ -132,5 +140,7 @@ "OSE.spells.Duration": "Duration", "OSE.spells.Level": "Level", - "OSE.abilities.Requirements": "Requirements" + "OSE.abilities.Requirements": "Requirements", + + "OSE.exploration.OpenDoors": "Open Doors" } \ No newline at end of file diff --git a/src/module/actor/character-sheet.js b/src/module/actor/character-sheet.js index 493674e..8c8ba0a 100644 --- a/src/module/actor/character-sheet.js +++ b/src/module/actor/character-sheet.js @@ -128,6 +128,14 @@ export class OseActorSheetCharacter extends OseActorSheet { let element = event.currentTarget; let attack = element.parentElement.parentElement.dataset.attack; actorObject.rollAttack(attack, { event: event }); + }); + + html.find(".ability-score .attribute-mod a").click(ev => { + let box = $(event.currentTarget.parentElement.parentElement.parentElement); + box.children('.attribute-bonuses').slideDown(200); + }) + html.find(".ability-score .attribute-bonuses a").click(ev => { + $(event.currentTarget.parentElement.parentElement).slideUp(200); }) // Handle default listeners last so system listeners are triggered first diff --git a/src/module/actor/entity.js b/src/module/actor/entity.js index 2874697..60d87cd 100644 --- a/src/module/actor/entity.js +++ b/src/module/actor/entity.js @@ -129,13 +129,26 @@ export class OseActor extends Actor { return 0; } }; - return { + let mods = { str: _valueToMod(this.data.data.scores.str.value), int: _valueToMod(this.data.data.scores.int.value), dex: _valueToMod(this.data.data.scores.dex.value), + init: _valueToMod(this.data.data.scores.dex.value), cha: _valueToMod(this.data.data.scores.cha.value), + npc: _valueToMod(this.data.data.scores.cha.value), wis: _valueToMod(this.data.data.scores.wis.value), con: _valueToMod(this.data.data.scores.con.value), + }; + if (mods.init > 1) { + mods.init -= 1; + } else if (mods.init < -1) { + mods.init += 1; } + if (mods.npc > 1) { + mods.npc -= 1; + } else if (mods.npc < -1) { + mods.npc += 1; + } + return mods; } } diff --git a/src/module/settings.js b/src/module/settings.js index 4a01fcc..1b8af94 100644 --- a/src/module/settings.js +++ b/src/module/settings.js @@ -26,15 +26,6 @@ export const registerSettings = function () { config: true }); - game.settings.register('ose', 'thac0Attacks', { - name: game.i18n.localize('OSE.Setting.THAC0Attacks'), - hint: game.i18n.localize('OSE.Setting.THAC0AttacksHint'), - default: false, - scope: 'world', - type: Boolean, - config: true - }); - game.settings.register('ose', 'variableWeaponDamage', { name: game.i18n.localize('OSE.Setting.VariableWeaponDamage'), hint: game.i18n.localize('OSE.Setting.VariableWeaponDamageHint'), diff --git a/src/scss/actor-base.scss b/src/scss/actor-base.scss index dd546f4..801ba0b 100644 --- a/src/scss/actor-base.scss +++ b/src/scss/actor-base.scss @@ -138,9 +138,20 @@ .attribute-mod { position: absolute; color: $colorTan; - right: 5px; - top: -5px; - font-size: 13px; + right: 1px; + top: 1px; + line-height: 10px; + font-size: 10px; + } + .attribute-bonuses { + display: none; + position: absolute; + background: #222; + padding: 2px; + font-size: 10px; + color: whitesmoke; + width: 100%; + height: 100%; } } } @@ -159,9 +170,14 @@ margin: auto; } } - &.saving-throw .attribute-name { - line-height: 16px; - width: 80px; + &.saving-throw { + .attribute-name { + line-height: 16px; + width: 80px; + } + .attribute-value { + line-height: 29px; + } } .attribute-value { width: 45px; diff --git a/src/scss/character.scss b/src/scss/character.scss index b91b422..a9b65d3 100644 --- a/src/scss/character.scss +++ b/src/scss/character.scss @@ -64,6 +64,11 @@ background-position: bottom; } } + .saving-throw { + .attribute-value.flat { + line-height: 30px; + } + } } /* ----------------------------------------- */ /* Item Controls */ diff --git a/src/templates/actors/dialogs/tweaks-dialog.html b/src/templates/actors/dialogs/tweaks-dialog.html index a6284f3..9693a3a 100644 --- a/src/templates/actors/dialogs/tweaks-dialog.html +++ b/src/templates/actors/dialogs/tweaks-dialog.html @@ -59,6 +59,18 @@ /> +
+ +
+ +
+
{{/if}}