Merge pull request #11615 from Plushtoast/1.5.5

[Das Schwarze Auge (TDE) 5 OFFICIAL by Ulisses] v1.5.5 - New Feature - Ranged attack roll preview
This commit is contained in:
Miguel Peres
2023-03-21 12:18:12 -03:00
committed by GitHub
2 changed files with 24 additions and 10 deletions
@@ -5,6 +5,16 @@
## Changelog
### v1.5.5 (03/20/2023)
* Preview ranged attack roll final die
### v1.5.4 (03/04/2023)
* Support for Patron
* Support for Demonmark
* Support for magical sign
* Grimorum Cantiones update
* Pact special abilities
### v1.5.0 (11/14/2022)
* LE, KE, AE section has been reworked and simplified (pain levels visible via hover on max LE or in the headerbar on LE)
* Advanced roll dialog (3d20) has now a dropdown for default difficulties
@@ -21467,6 +21467,10 @@
<div class="section optnsub2 filterBorder" style="margin: 40px 0;">
<div style="margin-top: 40px;">
<h3>v1.5.5 (03/20/2023)</h3>
<ul>
<li>Preview ranged attack roll final die</li>
</ul>
<h3>v1.5.4 (03/04/2023)</h3>
<ul>
<li>Support for Patron</li>
@@ -25240,14 +25244,14 @@
<input type="text" name="attr_nk_name" readonly />
</div>
<div class="col15 center">
<button type="roll" name="roll_attacke_nahkampf" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{nk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusNK}]]}} {{attribute0=mut}} {{name=@{nk_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{at_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{dmg=[^{TP}](~nahkampf_tp)}} {{dmgCrit=[^{x2}](~nahkampf_2tp)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{critresult=^{forceHalfParry}}} {{reichweite=@{nk_rw}}}">
<button type="roll" name="roll_attacke_nahkampf" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{nk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusNK}]]}} {{attribute0=mut}} {{name=@{nk_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{at_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{at_situation_mod}+@{at_sf_mod}+@{at_effekt_mod})]]}} {{dmg=[^{TP}](~nahkampf_tp)}} {{dmgCrit=[^{x2}](~nahkampf_2tp)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{critresult=^{forceHalfParry}}} {{reichweite=@{nk_rw}}}">
<div class="singleDie large">
<div class="die mut"></div>
<span class="overlayResult mut"><input type="number" name="attr_at_roll" value="0" readonly/></span>
</div>
</button>
<button type="roll" name="roll_passierschlag" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{defenseMalus=[[@{defenseMalusNK}]]}} {{attribute0=mut}} {{name=@{nk_name}}} {{subtags=^{passierschlag}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{passierschlag_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{dmg=[^{TP}](~nahkampf_tp)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<button type="roll" name="roll_passierschlag" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{defenseMalus=[[@{defenseMalusNK}]]}} {{attribute0=mut}} {{name=@{nk_name}}} {{subtags=^{passierschlag}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{passierschlag_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{at_situation_mod}+@{at_sf_mod}+@{at_effekt_mod})]]}} {{dmg=[^{TP}](~nahkampf_tp)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<div class="singleDie large">
<div class="die mut"></div>
<span class="overlayResult mut" data-i18n="passierschlagShort">P</span>
@@ -25255,14 +25259,14 @@
</button>
</div>
<div class="col15 center">
<button type="roll" name="roll_parade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nk_name}}} {{subtags=^{parade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{pa_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{critresult=^{critOpportunity}}}">
<button type="roll" name="roll_parade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nk_name}}} {{subtags=^{parade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{pa_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{pa_situation_mod}+@{pa_sf_mod})]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{critresult=^{critOpportunity}}}">
<div class="singleDie large">
<div class="die intuition"></div>
<span class="overlayResult intuition"><input type="number" name="attr_pa_roll" value="0" readonly/></span>
</div>
</button>
<button type="roll" name="roll_halbe_parade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nk_name}}} {{subtags=^{halbeParade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(round(@{pa_roll}/2)+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{critresult=^{critOpportunity}}}">
<button type="roll" name="roll_halbe_parade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nk_name}}} {{subtags=^{halbeParade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(round(@{pa_roll}/2)+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{pa_situation_mod}+@{pa_sf_mod})]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{critresult=^{critOpportunity}}}">
<div class="singleDie large">
<div class="die intuition"></div>
<span class="overlayResult intuition" data-i18n="1/2">1/2</span>
@@ -25316,7 +25320,7 @@
</div>
</div>
<div class="col15 center">
<button type="roll" name="roll_zweite_attacke" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{nk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusNH}]]}} {{attribute0=mut}} {{name=@{nh_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{at_nh_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{dmg=[^{TP}](~nahkampf_tpc)}} {{dmgCrit=[^{x2}](~nahkampf_tp2c)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{critresult=^{forceHalfParry}}} {{reichweite=@{nh_rw}}}">
<button type="roll" name="roll_zweite_attacke" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{nk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusNH}]]}} {{attribute0=mut}} {{name=@{nh_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{at_nh_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{at_situation_mod}+@{at_sf_mod}+@{nh_at_sf_mod}+@{at_effekt_mod})]]}} {{dmg=[^{TP}](~nahkampf_tpc)}} {{dmgCrit=[^{x2}](~nahkampf_tp2c)}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}} {{critresult=^{forceHalfParry}}} {{reichweite=@{nh_rw}}}">
<div class="singleDie large">
<div class="die mut"></div>
<span class="overlayResult mut"><input type="number" name="attr_at_nh_roll" value="0" readonly/></span>
@@ -25325,13 +25329,13 @@
</div>
<div class="col15 center">
<button type="roll" name="roll_schildparade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nh_name}}} {{subtags=^{schildparade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{pa_nh_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<button type="roll" name="roll_schildparade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nh_name}}} {{subtags=^{schildparade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{pa_nh_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{pa_situation_mod}+@{pa_sf_mod}+@{nh_pa_sf_mod}+@{pa_effekt_mod})]]}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<div class="singleDie large">
<div class="die intuition"></div>
<span class="overlayResult intuition"><input type="number" name="attr_pa_nh_roll" value="0" readonly/></span>
</div>
</button>
<button type="roll" name="roll_halbeSchildparade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nh_name}}} {{subtags=^{halbeSchildparade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(round(@{pa_nh_roll}/2)+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier})]]}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<button type="roll" name="roll_halbeSchildparade" class="dieButton fixedSize" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{attribute0=intuition}} {{name=@{nh_name}}} {{subtags=^{halbeSchildparade}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(round(@{pa_nh_roll}/2)+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{pa_situation_mod}+@{pa_sf_mod}+@{nh_pa_sf_mod}+@{pa_effekt_mod})]]}} {{hitzone=[^{hitzones}](~ownhitzone)}} {{hitzoneon=[[0d6+@{hitzoneParry}]]}} {{botch=[^{patzer}](~nahkampf-atpa-patzer)}}">
<div class="singleDie large">
<div class="die intuition"></div>
<span class="overlayResult intuition" data-i18n="1/2">1/2</span>
@@ -25775,7 +25779,7 @@
</div>
<div class="col20 row-section center">
<div class="col20">
<button type="roll" name="roll_attacke_fk" class="dieButton" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{fk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusFK}]]}} {{attribute0=mut}} {{name=@{fk_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{fk_roll}+@{gesamt_fk_mod}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{gesamt_fk_mod}+@{mod_option}+@{kampf_modifier})]]}} {{dmg=[^{TP}](~tp_fk)}} {{dmgCrit=[^{x2}](~tp2_fk)}} {{botch=[^{patzer}](~fernkampf-patzer)}} {{critresult=^{forceHalfParry}}}">
<button type="roll" name="roll_attacke_fk" class="dieButton" value="@{output_option} &{template:DSA-combat} {{bestaetigungswurf=[^{bestaetigungswurf}](~bestaetigungswurf)}} {{bestroll=[[@{deactivateConfirmationRoll}]]}} {{hitzone=[[@{fk_hitzone}]]}} {{defenseMalus=[[@{defenseMalusFK}]]}} {{attribute0=mut}} {{name=@{fk_name}}} {{subtags=^{attacke}}} {{wurf=[[1d20cs1cf20]]}} {{wert=[[(@{fk_roll}+@{mod_option}+@{kampf_modifier})]]}} {{mod=[[(@{mod_option}+@{kampf_modifier}+@{gesamt_fk_mod})]]}} {{dmg=[^{TP}](~tp_fk)}} {{dmgCrit=[^{x2}](~tp2_fk)}} {{botch=[^{patzer}](~fernkampf-patzer)}} {{critresult=^{forceHalfParry}}}">
<div class="singleDie large">
<div class="die mut"></div>
<span class="overlayResult mut"><input type="number" name="attr_fk_roll" value="0" readonly/></span>
@@ -29247,10 +29251,10 @@
const status_modifier = Math.max(-5, kampfstatus_modifier + entrueckung_modifier);
const verschleiss = Number(values[`repeating_rangeweapon_${id}_fkwaffe_verschleiss`])
const verschleiss_mod = [0,1,2,2,2][verschleiss];
//let gesamt_fk_mod = parseInt(values.gesamt_fk_mod) || 0;
let gesamt_fk_mod = parseInt(values.gesamt_fk_mod) || 0;
//let gesamt_tp_mod = parseInt(values.gesamt_tp_mod) || 0;
let fk_hitzone_final = Math.round(Number(values.fk_hitzone) * (Number(values.fk_hitzone_divider) || 1))
let fk_roll = verschleiss > 2 ? 0 : Math.max(0, fk + fkwaffe_fk_mod + status_modifier + fk_hitzone_final - verschleiss_mod);
let fk_roll = verschleiss > 2 ? 0 : Math.max(0, fk + fkwaffe_fk_mod + status_modifier + fk_hitzone_final - verschleiss_mod + gesamt_fk_mod);
let fk_tp_dice_roll = fkwaffe_tp_anz_wuerfel;
let fk_tp_zusatz_roll = fkwaffe_tp_wert + Number(values.gesamt_tp_mod);
let fk_reichweite = fkwaffe_rw;