Skip to content

Commit

Permalink
patch 1.2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
Plushtoast committed Mar 14, 2021
1 parent 10f2191 commit 1bce2a9
Show file tree
Hide file tree
Showing 14 changed files with 118 additions and 13 deletions.
4 changes: 3 additions & 1 deletion lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,9 @@
"MODS": {
"partChecks": "Teilprobenmodifikator",
"FP": "Fertigkeitspunktemodifikator",
"combatTurmoil": "Schuss ins Kampfgetümmel"
"combatTurmoil": "Schuss ins Kampfgetümmel",
"QS": "Qualitätsstufenmodifikator",
"damage": "Schadensmodifikator (z.B. 1d6)"
},

"WIZARD": {
Expand Down
4 changes: 3 additions & 1 deletion lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,9 @@
"MODS": {
"partChecks": "Part of skill check modifier",
"FP": "Skill points modifier",
"combatTurmoil": "Shooting into Melee"
"combatTurmoil": "Shooting into Melee",
"QS": "Quality level modifier",
"damage": "Damage modifier (f.e. 1d6)"
},

"SKILL": {
Expand Down
1 change: 1 addition & 0 deletions modules/hooks/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ Hooks.once("init", () => {
"systems/dsa5/templates/items/item-description.html",
"systems/dsa5/templates/dialog/default-dialog.html",
"systems/dsa5/templates/dialog/enhanced-default-dialog.html",
"systems/dsa5/templates/dialog/default-combat-dialog.html",
"systems/dsa5/templates/chat/roll/test-card.html",
"systems/dsa5/templates/items/item-equipment.html",
"systems/dsa5/templates/actors/actor-combat.html",
Expand Down
4 changes: 3 additions & 1 deletion modules/item/subclasses/ceremony-item-dsa.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import DSA5 from "../../system/config-dsa5.js";
import ItemRulesDSA5 from "../../system/item-rules-dsa5.js";
import LiturgyItemDSA5 from "./liturgy-item-dsa.js";

export default class CeremonyItemDSA5 extends LiturgyItemDSA5 {
Expand All @@ -16,9 +17,10 @@ export default class CeremonyItemDSA5 extends LiturgyItemDSA5 {
})
}

static getSituationalModifiers(situationalModifiers, actor, data) {
static getSituationalModifiers(situationalModifiers, actor, data, source) {
let skMod = 0
let zkMod = 0
situationalModifiers.push(...ItemRulesDSA5.getTalentBonus(actor.data, source.name, ["advantage", "disadvantage", "specialability", "equipment"]))
if (game.user.targets.size) {
game.user.targets.forEach(target => {
skMod = target.actor.data.data.status.soulpower.max * -1
Expand Down
9 changes: 7 additions & 2 deletions modules/item/subclasses/meleeweapon-item-dsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,16 @@ export default class MeleeweaponDSA5 extends Itemdsa5 {
testData.situationalModifiers.push({
name: game.i18n.localize("opportunityAttack"),
value: attackOfOpportunity
})
testData.situationalModifiers.push({
}, {
name: game.i18n.localize("attackFromBehind"),
value: html.find('[name="attackFromBehind"]').is(":checked") ? -4 : 0
}, {
name: game.i18n.localize("MODS.damage"),
damageBonus: html.find('[name="damageModifier"]').val(),
value: 0,
step: 1
})

testData.situationalModifiers.push(...Itemdsa5.getSpecAbModifiers(html, mode))

return { testData, cardOptions };
Expand Down
5 changes: 5 additions & 0 deletions modules/item/subclasses/rangeweapon-item.dsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,11 @@ export default class RangeweaponItemDSA5 extends Itemdsa5 {
}, {
name: game.i18n.localize("aim"),
value: Number(html.find('[name="aim"]').val()) || 0
}, {
name: game.i18n.localize("MODS.damage"),
damageBonus: html.find('[name="damageModifier"]').val(),
value: 0,
step: 1
})
testData.situationalModifiers.push(...Itemdsa5.getSpecAbModifiers(html, "attack"))
return { testData, cardOptions };
Expand Down
5 changes: 4 additions & 1 deletion modules/item/subclasses/ritual-item-dsa.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import DSA5 from "../../system/config-dsa5.js";
import AdvantageRulesDSA5 from "../../system/advantage-rules-dsa5.js";
import SpellItemDSA5 from "./spell-item-dsa.js";
import ItemRulesDSA5 from "../../system/item-rules-dsa5.js";

export default class RitualItemDSA5 extends SpellItemDSA5 {
static getCallbackData(testData, html, actor) {
super.getCallbackData(testData, html, actor)
Expand All @@ -18,9 +20,10 @@ export default class RitualItemDSA5 extends SpellItemDSA5 {
value: html.find('[name="timeModifier"]').val()
})
}
static getSituationalModifiers(situationalModifiers, actor, data) {
static getSituationalModifiers(situationalModifiers, actor, data, source) {
let skMod = 0
let zkMod = 0
situationalModifiers.push(...ItemRulesDSA5.getTalentBonus(actor.data, source.name, ["advantage", "disadvantage", "specialability", "equipment"]))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.minorSpirits'), -1))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.magicalAttunement')))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.magicalRestriction'), -1))
Expand Down
4 changes: 3 additions & 1 deletion modules/item/subclasses/skill-item-dsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ export default class SkillItemDSA5 extends Itemdsa5 {
testData.situationalModifiers = Actordsa5._parseModifiers('[name="situationalModifiers"]')
testData.advancedModifiers = {
chars: [0, 1, 2].map(x => Number(html.find(`[name="ch${x}"]`).val())),
fps: Number(html.find(`[name="fp"]`).val())
fps: Number(html.find(`[name="fp"]`).val()),
qls: Number(html.find(`[name="qs"]`).val())
}

return { testData, cardOptions };
}
};
Expand Down
10 changes: 6 additions & 4 deletions modules/item/subclasses/spell-item-dsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import DSA5StatusEffects from "../../status/status_effects.js";
import AdvantageRulesDSA5 from "../../system/advantage-rules-dsa5.js";
import Itemdsa5 from "../item-dsa5.js";
import Actordsa5 from "../../actor/actor-dsa5.js";
import ItemRulesDSA5 from "../../system/item-rules-dsa5.js";
export default class SpellItemDSA5 extends Itemdsa5 {
static chatData(data, name) {
return [
Expand Down Expand Up @@ -55,7 +56,8 @@ export default class SpellItemDSA5 extends Itemdsa5 {
testData.extensions = SpellItemDSA5.getSpecAbModifiers(html).join(", ")
testData.advancedModifiers = {
chars: [0, 1, 2].map(x => Number(html.find(`[name="ch${x}"]`).val())),
fps: Number(html.find(`[name="fp"]`).val())
fps: Number(html.find(`[name="fp"]`).val()),
qls: Number(html.find(`[name="qs"]`).val())
}
}

Expand All @@ -67,10 +69,10 @@ export default class SpellItemDSA5 extends Itemdsa5 {
return res
}

static getSituationalModifiers(situationalModifiers, actor, data) {
static getSituationalModifiers(situationalModifiers, actor, data, source) {
let skMod = 0
let zkMod = 0

situationalModifiers.push(...ItemRulesDSA5.getTalentBonus(actor.data, source.name, ["advantage", "disadvantage", "specialability", "equipment"]))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.minorSpirits'), -1))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.magicalAttunement')))
situationalModifiers.push(...AdvantageRulesDSA5.getVantageAsModifier(actor.data, game.i18n.localize('LocalizedIDs.magicalRestriction'), -1))
Expand Down Expand Up @@ -121,7 +123,7 @@ export default class SpellItemDSA5 extends Itemdsa5 {
}

let situationalModifiers = actor ? DSA5StatusEffects.getRollModifiers(actor, spell) : []
this.getSituationalModifiers(situationalModifiers, actor, data)
this.getSituationalModifiers(situationalModifiers, actor, data, spell)
data["situationalModifiers"] = situationalModifiers

let dialogOptions = {
Expand Down
5 changes: 5 additions & 0 deletions modules/item/subclasses/trait-item-dsa.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,11 @@ export default class TraitItemDSA5 extends Itemdsa5 {
}, {
name: game.i18n.localize("aim"),
value: Number(html.find('[name="aim"]').val()) || 0
}, {
name: game.i18n.localize("MODS.damage"),
damageBonus: html.find('[name="damageModifier"]').val(),
value: 0,
step: 1
})
testData.situationalModifiers.push(...Itemdsa5.getSpecAbModifiers(html, mode))
return { testData, cardOptions };
Expand Down
10 changes: 9 additions & 1 deletion modules/system/dice-dsa5.js
Original file line number Diff line number Diff line change
Expand Up @@ -664,14 +664,20 @@ export default class DiceDSA5 {

description = description.join(", ")

let ql = (fps == 0 ? 1 : (fps > 0 ? Math.ceil(fps / 3) : 0)) + (testData.qualityStep != undefined ? Number(testData.qualityStep) : 0)

if (ql > 0) ql += (testData.advancedModifiers.qls || 0)

Math.min(game.settings.get("dsa5", "capQSat"), ql)

return {
result: fps,
characteristics: [
{ char: testData.source.data.characteristic1.value, res: roll.terms[0].results[0].result, suc: res[0] <= 0, tar: tar[0] },
{ char: testData.source.data.characteristic2.value, res: roll.terms[2].results[0].result, suc: res[1] <= 0, tar: tar[1] },
{ char: testData.source.data.characteristic3.value, res: roll.terms[4].results[0].result, suc: res[2] <= 0, tar: tar[2] }
],
qualityStep: Math.min(game.settings.get("dsa5", "capQSat"), (fps == 0 ? 1 : (fps > 0 ? Math.ceil(fps / 3) : 0)) + (testData.qualityStep != undefined ? Number(testData.qualityStep) : 0)),
qualityStep: ql,
description: description,
preData: testData,
successLevel: successLevel,
Expand Down Expand Up @@ -921,6 +927,8 @@ export default class DiceDSA5 {
chatData.modifierList.push({ name: game.i18n.localize('MODS.partChecks'), value: testData.preData.advancedModifiers.chars })
if (testData.preData.advancedModifiers.fps != 0)
chatData.modifierList.push({ name: game.i18n.localize('MODS.FP'), value: testData.preData.advancedModifiers.fps })
if (testData.preData.advancedModifiers.qls != 0)
chatData.modifierList.push({ name: game.i18n.localize('MODS.QS'), value: testData.preData.advancedModifiers.qls })
}

if (["gmroll", "blindroll"].includes(chatOptions.rollMode)) chatOptions["whisper"] = ChatMessage.getWhisperRecipients("GM").map(u => u.id);
Expand Down
2 changes: 1 addition & 1 deletion templates/dialog/combatskill-enhanced-dialog.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<form class="skill-test">
<div class="row-section">
<div class="col sixty">
{{> systems/dsa5/templates/dialog/default-dialog.html}} {{#if melee}}
{{> systems/dsa5/templates/dialog/default-combat-dialog.html}} {{#if melee}}
<div class="form-group custom-select">
<label>{{localize "narrowSpace"}}</label>
<input type="checkbox" id="narrowSpace" name="narrowSpace" value="1" {{#if constricted}}checked{{/if}}>
Expand Down
62 changes: 62 additions & 0 deletions templates/dialog/default-combat-dialog.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<div class="row-section">
<div class="col fourty"></div>
<div class="row-section col sixty">
<div class="col five">
</div>
{{#if showAttack}}
<div class="col five center" title="{{localize 'MODS.damage'}}">
{{localize 'CHARAbbrev.damage'}}
</div>
{{/if}}
</div>
</div>
<div class="form-group">
<label>{{localize "Modifier"}}</label>
<div class="row-section">
<div class="col five">
<input class="quantity-click" type="number" name="testModifier" value="{{testModifier}}" />
</div>
{{#if showAttack}}
<div class="col five">
<input type="text" name="damageModifier" value="0" />
</div>
{{/if}}
</div>
</div>
{{# if difficultyLabels}}
<div class="form-group custom-select">
<label>{{localize "Difficulty"}}</label>
<select name="testDifficulty">
{{#select testDifficulty}}
{{#each difficultyLabels as |difficultyLabel difficultyKey|}}
<option value="{{difficultyKey}}">{{localize difficultyLabel}}</option>
{{/each}}
{{/select}}
</select>
</div>
{{/if}}
<div class="form-group custom-select">
<label>{{localize "DIALOG.RollMode"}}</label>
<select name="rollMode">
{{#select rollMode}}
{{#each rollModes as |label mode|}}
<option value="{{mode}}">{{localize label}}</option>
{{/each}}
{{/select}}
</select>
</div>
{{#if hasSituationalModifiers}}
<div class="modifiers form-group custom-select">
<label>{{localize "DIALOG.SituationalModifiers"}}</label>
<select name="situationalModifiers" multiple title="{{localize 'DIALOG.deselectWithStrg'}}">
{{#select selectedModifiers}}
{{#each situationalModifiers as |mod t|}}
<option title="{{localize mod.name}}" value="{{mod.value}}" {{#if mod.selected}}selected{{/if}}>
{{localize
mod.name}} [{{mod.value}}]
</option>
{{/each}}
{{/select}}
</select>
</div>
{{/if}}
6 changes: 6 additions & 0 deletions templates/dialog/enhanced-default-dialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
<div class="col five center" title="{{localize 'FP'}}">
{{localize 'CHARAbbrev.FP'}}
</div>
<div class="col five center" title="{{localize 'qualityStep'}}">
{{localize 'CHARAbbrev.QS'}}
</div>
</div>
</div>
<div class="form-group">
Expand All @@ -27,6 +30,9 @@
<div class="col five" title="{{localize 'MODS.FP'}}">
<input class="quantity-click" type="number" name="fp" value="0" />
</div>
<div class="col five" title="{{localize 'MODS.QS'}}">
<input class="quantity-click" type="number" name="qs" value="0" />
</div>
</div>
</div>
{{# if difficultyLabels}}
Expand Down

0 comments on commit 1bce2a9

Please sign in to comment.