diff --git a/module/actor.js b/module/actor.js index a302fc0..1a4ca12 100644 --- a/module/actor.js +++ b/module/actor.js @@ -227,6 +227,7 @@ export class SoSActor extends Actor { modifierList: SoSUtility.fillRange(-10, +10), tnList: SoSUtility.fillRange(6, 20), consequencesList: duplicate( this.getApplicableConsequences() ), + wounds: duplicate( this.data.data.wounds), malusConsequence: 0, bonusConsequence: 0 } @@ -241,6 +242,7 @@ export class SoSActor extends Actor { statList: duplicate(this.data.data.stats), selectedStat: 'strength', consequencesList: duplicate( this.getApplicableConsequences() ), + wounds: duplicate( this.data.data.wounds), skill: duplicate(skill), actor: this, modifierList: SoSUtility.fillRange(-10, +10), @@ -275,6 +277,7 @@ export class SoSActor extends Actor { target: target, selectedStat: selectedStatName, consequencesList: duplicate( this.getApplicableConsequences() ), + wounds: duplicate( this.data.data.wounds), skill: duplicate(skill), actor: this, modifierList: SoSUtility.fillRange(-10, +10), diff --git a/module/sos-card-deck.js b/module/sos-card-deck.js index 91b9734..d79f2c7 100644 --- a/module/sos-card-deck.js +++ b/module/sos-card-deck.js @@ -244,9 +244,9 @@ export class SoSCardDeck { // Compute final result and compare if ( flipData.mode == 'stat' || flipData.mode == 'weapon' ) { - flipData.baseScore = flipData.stat.value + flipData.malusConsequence; + flipData.baseScore = flipData.stat.value + flipData.malusConsequence + flipData.bonusConsequence + flipData.woundMalus; } else if (flipData.mode == 'skill') { - flipData.baseScore = Math.floor(flipData.stat.value/2) + flipData.skill.data.value + flipData.malusConsequence + flipData.baseScore = Math.floor(flipData.stat.value/2) + flipData.skill.data.value + flipData.malusConsequence + flipData.bonusConsequence + flipData.woundMalus; } flipData.finalScore = flipData.baseScore + flipData.cardTotal + Number(flipData.modifier); flipData.magnitude = flipData.finalScore - flipData.tn; diff --git a/module/sos-flip-dialog.js b/module/sos-flip-dialog.js index 0cd68a2..16a7daf 100644 --- a/module/sos-flip-dialog.js +++ b/module/sos-flip-dialog.js @@ -33,10 +33,17 @@ export class SoSFlipDialog extends Dialog { scoreBase = Math.floor(this.flipData.statList[ statKey ].value / 2) + this.flipData.skill.data.value; } else { //Stat mode let statKey = $('#statSelect').val(); - scoreBase = this.flipData.stat.value; + scoreBase = this.flipData.stat.value; } + this.flipData.woundMalus = 0; + this.flipData.woundMalus += ($('#wound-light-checkbox').is(":checked")) ? (-1) : 0; + this.flipData.woundMalus += ($('#wound-moderate-checkbox').is(":checked")) ? (-2) : 0; + this.flipData.woundMalus += ($('#wound-severe-checkbox').is(":checked")) ? (-3) : 0; + this.flipData.woundMalus += ($('#wound-critical-checkbox').is(":checked")) ? (-4) : 0; scoreBase += this.flipData.malusConsequence; scoreBase += this.flipData.bonusConsequence; + scoreBase += this.flipData.woundMalus; + $('#wound-malus').text(this.flipData.woundMalus); $('#score-base').text( scoreBase); } @@ -122,6 +129,18 @@ export class SoSFlipDialog extends Dialog { html.find('#consequenceSelectBonus').change((event) => { this.updateConsequenceBonus( event ); } ); + html.find('#wound-light-checkbox').change((event) => { + this.updateScoreBase( event ); + } ); + html.find('#wound-moderate-checkbox').change((event) => { + this.updateScoreBase( event ); + } ); + html.find('#wound-severe-checkbox').change((event) => { + this.updateScoreBase( event ); + } ); + html.find('#wound-critical-checkbox').change((event) => { + this.updateScoreBase( event ); + } ); html.find('.class-view-deck').click((event) => { let flipData = this.flipData; diff --git a/styles/simple.css b/styles/simple.css index 8036d10..ca51d61 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -638,6 +638,11 @@ ul, li { font-weight: bold; flex-grow: 2; } +.dialog-label { + flex-grow: 2; + font-size: 0.8rem; + font-weight: bold; +} .attribut-value, .stat-value { flex-grow: 0; diff --git a/templates/dialog-flip.html b/templates/dialog-flip.html index 946ba94..2141a11 100644 --- a/templates/dialog-flip.html +++ b/templates/dialog-flip.html @@ -5,14 +5,15 @@
{{#if (eq mode 'stat')}} -

- Stat Only Flip : {{localize stat.label}} : {{stat.value}} - -

+ + -

Final Score : 0

+
{{else}} -

Select Stat

+
@@ -35,7 +36,7 @@ {{/each}} {{/select}} -

Consequences Malus : 0

+

Consequences Malus : 0

@@ -47,9 +48,24 @@ {{/each}} {{/select}} -

Consequences Bonus : 0

+

Consequences Bonus : 0

+
+ {{#if (gt wounds.light 0)}} + + {{/if}} + {{#if (gt wounds.moderate 0)}} + + {{/if}} + {{#if (gt wounds.severe 0)}} + + {{/if}} + {{#if (gt wounds.critical 0)}} + + {{/if}} +

Wounds Malus : 0

+

@@ -62,9 +78,9 @@
- + {{#if target}} - + {{else}} {{/if}} - +
@@ -97,7 +113,7 @@
- +