[Knight] Bugfix + add features

This commit is contained in:
Zakarik
2021-11-29 22:12:11 +01:00
parent 6893351103
commit 7d01f2801f
30 changed files with 9262 additions and 1966 deletions
+274 -2
View File
@@ -503,6 +503,9 @@ div.charsheet > div.content input[type=hidden].phase2[value="1"] ~ div button[ty
background: RGB(93, 111, 179);
color: white;
}
div.charsheet > div.content input[type=hidden].herauts[value="0"] ~ div div.herauts {
display: none;
}
div.charsheet > div.content div.topLeft {
display: flex;
background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Knight/knightLogo.png");
@@ -2519,6 +2522,9 @@ div.charsheet > div.content div.tabArmure div.dataArmure div.titre,
div.charsheet > div.content div.tabArmure div.dataArmure h1.titre {
display: flex;
}
div.charsheet > div.content div.tabArmure div.dataArmure h1.titre {
text-transform: capitalize;
}
div.charsheet > div.content div.tabArmure div.dataArmure input[type=number] {
width: 100%;
border: 0px;
@@ -4920,6 +4926,88 @@ div.charsheet > div.content div.tabArmure div.styleCombat input[type=hidden][val
div.charsheet > div.content div.tabArmure div.styleCombat input[type=hidden][value=suppression] ~ div.suppression {
display: flex;
}
div.charsheet > div.content div.tabArmure div.herauts {
flex-wrap: wrap;
width: 100%;
align-content: baseline;
background-color: RGB(93, 111, 179);
border: 1px solid RGB(93, 111, 179);
/*
///PARAMETRES EXISTANTS\\\
- titre : Pour tous les paramètres concernant le titre principal
- hasButton : Pour dire qu'il y a des boutons. (true / false)
- hasRollSpecial : S'il y a un bouton "Jet spécial". (true / false)
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
- hasButtonPersonnel : s'il s'agit d'un bouton "Personnel" (true / false)
- hasActionSpecial : s'il s'agit d'un bouton "action spécial" (true / false)
- hasSelect : s'il s'agit d'un select (true / false)
- secondTitre : S'il y a un second titre (avec la classe titreBis
- actif : Pour dire qu'il est actif. (true / false)
- background : pour définir le background (transparent par défaut)
- color : pour définir la couleur du texte (white par défaut)
- hasButton : s'il a un bouton (true/false).
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- titreInverse : Si les boutons du titre sont inversés par rapport à d'habitude.
- actif : Pour dire qu'il est actif. (true / false)
- hasButton : s'il a un bouton (true/false).
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
*/
}
div.charsheet > div.content div.tabArmure div.herauts h1.titre {
width: 100%;
align-content: baseline;
background: transparent;
color: white;
line-height: 28px;
min-height: 28px;
justify-content: center;
font-size: 14px;
}
div.charsheet > div.content div.tabArmure div.herauts div.titre {
align-content: center;
align-items: center;
position: relative;
width: 100%;
min-height: 28px;
border-bottom: 1px solid RGB(93, 111, 179);
}
div.charsheet > div.content div.tabArmure div.herauts h1.titre {
display: flex;
}
div.charsheet > div.content div.tabArmure div.herauts div {
display: flex;
width: 100%;
background: RGB(213, 215, 237);
justify-content: space-between;
flex-wrap: wrap;
padding-right: 2px;
padding-left: 2px;
}
div.charsheet > div.content div.tabArmure div.herauts div button[type=action] {
display: flex;
width: calc((100% / 2) - 5px);
background: RGB(213, 215, 237);
color: black;
justify-content: center;
border: 1px solid black;
padding: 0px;
margin-top: 2px;
margin-bottom: 2px;
font-weight: bold;
height: 25px;
line-height: 25px;
}
div.charsheet > div.content div.tabArmure div.herauts div button[type=action]:nth-of-type(3) {
margin-left: auto;
margin-right: auto;
}
div.charsheet > div.content div.tabArmure div.herauts div input[type=hidden].devasterAnatheme[value="1"] ~ button[type=action].devasterAnatheme, div.charsheet > div.content div.tabArmure div.herauts div input[type=hidden].bourreauTenebres[value="1"] ~ button[type=action].bourreauTenebres, div.charsheet > div.content div.tabArmure div.herauts div input[type=hidden].equilibreBalance[value="1"] ~ button[type=action].equilibreBalance {
background: RGB(93, 111, 179);
color: white;
}
div.charsheet > div.content div.tabArmure div.barbarianGoliath {
flex-wrap: wrap;
width: 100%;
@@ -14050,6 +14138,9 @@ div.charsheet > div.content div.tabCombat div.dataArmure input[type=number] {
text-align: center;
height: 28px;
}
div.charsheet > div.content div.tabCombat div.dataArmure h1.titre {
text-transform: capitalize;
}
div.charsheet > div.content div.tabCombat div.dataArmure div.ligneTitre {
display: flex;
width: 100%;
@@ -14914,6 +15005,88 @@ div.charsheet > div.content div.tabCombat div.styleCombat input[type=hidden][val
div.charsheet > div.content div.tabCombat div.styleCombat input[type=hidden][value=suppression] ~ div.suppression {
display: flex;
}
div.charsheet > div.content div.tabCombat div.herauts {
flex-wrap: wrap;
width: 100%;
align-content: baseline;
background-color: RGB(93, 111, 179);
border: 1px solid RGB(93, 111, 179);
/*
///PARAMETRES EXISTANTS\\\
- titre : Pour tous les paramètres concernant le titre principal
- hasButton : Pour dire qu'il y a des boutons. (true / false)
- hasRollSpecial : S'il y a un bouton "Jet spécial". (true / false)
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
- hasButtonPersonnel : s'il s'agit d'un bouton "Personnel" (true / false)
- hasActionSpecial : s'il s'agit d'un bouton "action spécial" (true / false)
- hasSelect : s'il s'agit d'un select (true / false)
- secondTitre : S'il y a un second titre (avec la classe titreBis
- actif : Pour dire qu'il est actif. (true / false)
- background : pour définir le background (transparent par défaut)
- color : pour définir la couleur du texte (white par défaut)
- hasButton : s'il a un bouton (true/false).
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- titreInverse : Si les boutons du titre sont inversés par rapport à d'habitude.
- actif : Pour dire qu'il est actif. (true / false)
- hasButton : s'il a un bouton (true/false).
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
*/
}
div.charsheet > div.content div.tabCombat div.herauts h1.titre {
width: 100%;
align-content: baseline;
background: transparent;
color: white;
line-height: 28px;
min-height: 28px;
justify-content: center;
font-size: 14px;
}
div.charsheet > div.content div.tabCombat div.herauts div.titre {
align-content: center;
align-items: center;
position: relative;
width: 100%;
min-height: 28px;
border-bottom: 1px solid RGB(93, 111, 179);
}
div.charsheet > div.content div.tabCombat div.herauts h1.titre {
display: flex;
}
div.charsheet > div.content div.tabCombat div.herauts div {
display: flex;
width: 100%;
background: RGB(213, 215, 237);
justify-content: space-between;
flex-wrap: wrap;
padding-right: 2px;
padding-left: 2px;
}
div.charsheet > div.content div.tabCombat div.herauts div button[type=action] {
display: flex;
width: calc((100% / 2) - 5px);
background: RGB(213, 215, 237);
color: black;
justify-content: center;
border: 1px solid black;
padding: 0px;
margin-top: 2px;
margin-bottom: 2px;
font-weight: bold;
height: 25px;
line-height: 25px;
}
div.charsheet > div.content div.tabCombat div.herauts div button[type=action]:nth-of-type(3) {
margin-left: auto;
margin-right: auto;
}
div.charsheet > div.content div.tabCombat div.herauts div input[type=hidden].devasterAnatheme[value="1"] ~ button[type=action].devasterAnatheme, div.charsheet > div.content div.tabCombat div.herauts div input[type=hidden].bourreauTenebres[value="1"] ~ button[type=action].bourreauTenebres, div.charsheet > div.content div.tabCombat div.herauts div input[type=hidden].equilibreBalance[value="1"] ~ button[type=action].equilibreBalance {
background: RGB(93, 111, 179);
color: white;
}
div.charsheet > div.content div.tabCombat label.BMJets {
display: flex;
background: RGB(213, 215, 237);
@@ -34015,6 +34188,88 @@ div.charsheet > div.content div.tabVehicule div.donnees label select {
div.charsheet > div.content div.tabVehicule div.donnees label:not(:first-of-type) {
border-top: 1px solid RGB(93, 111, 179);
}
div.charsheet > div.content div.tabVehicule div.herauts {
flex-wrap: wrap;
width: 100%;
align-content: baseline;
background-color: RGB(93, 111, 179);
border: 1px solid RGB(93, 111, 179);
/*
///PARAMETRES EXISTANTS\\\
- titre : Pour tous les paramètres concernant le titre principal
- hasButton : Pour dire qu'il y a des boutons. (true / false)
- hasRollSpecial : S'il y a un bouton "Jet spécial". (true / false)
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
- hasButtonPersonnel : s'il s'agit d'un bouton "Personnel" (true / false)
- hasActionSpecial : s'il s'agit d'un bouton "action spécial" (true / false)
- hasSelect : s'il s'agit d'un select (true / false)
- secondTitre : S'il y a un second titre (avec la classe titreBis
- actif : Pour dire qu'il est actif. (true / false)
- background : pour définir le background (transparent par défaut)
- color : pour définir la couleur du texte (white par défaut)
- hasButton : s'il a un bouton (true/false).
- hasBonusCarac : s'il s'agit de boutons de caracs (true / false)
- titreInverse : Si les boutons du titre sont inversés par rapport à d'habitude.
- actif : Pour dire qu'il est actif. (true / false)
- hasButton : s'il a un bouton (true/false).
- hasButtonActivate : s'il s'agit de boutons "Activé" (true / false)
*/
}
div.charsheet > div.content div.tabVehicule div.herauts h1.titre {
width: 100%;
align-content: baseline;
background: transparent;
color: white;
line-height: 28px;
min-height: 28px;
justify-content: center;
font-size: 14px;
}
div.charsheet > div.content div.tabVehicule div.herauts div.titre {
align-content: center;
align-items: center;
position: relative;
width: 100%;
min-height: 28px;
border-bottom: 1px solid RGB(93, 111, 179);
}
div.charsheet > div.content div.tabVehicule div.herauts h1.titre {
display: flex;
}
div.charsheet > div.content div.tabVehicule div.herauts div {
display: flex;
width: 100%;
background: RGB(213, 215, 237);
justify-content: space-between;
flex-wrap: wrap;
padding-right: 2px;
padding-left: 2px;
}
div.charsheet > div.content div.tabVehicule div.herauts div button[type=action] {
display: flex;
width: calc((100% / 2) - 5px);
background: RGB(213, 215, 237);
color: black;
justify-content: center;
border: 1px solid black;
padding: 0px;
margin-top: 2px;
margin-bottom: 2px;
font-weight: bold;
height: 25px;
line-height: 25px;
}
div.charsheet > div.content div.tabVehicule div.herauts div button[type=action]:nth-of-type(3) {
margin-left: auto;
margin-right: auto;
}
div.charsheet > div.content div.tabVehicule div.herauts div input[type=hidden].devasterAnatheme[value="1"] ~ button[type=action].devasterAnatheme, div.charsheet > div.content div.tabVehicule div.herauts div input[type=hidden].bourreauTenebres[value="1"] ~ button[type=action].bourreauTenebres, div.charsheet > div.content div.tabVehicule div.herauts div input[type=hidden].equilibreBalance[value="1"] ~ button[type=action].equilibreBalance {
background: RGB(93, 111, 179);
color: white;
}
div.charsheet > div.content div.tabVehicule div.jet {
flex-wrap: wrap;
width: 100%;
@@ -41524,11 +41779,11 @@ div.charsheet > div.content div.tabEquipage div.equipage .repcontainer .repitem:
.sheet-rolltemplate-simple div.sheet-ligneF > span.sheet-fullText > *,
.sheet-rolltemplate-combat div.sheet-ligneF > span.sheet-fullText > *,
.sheet-rolltemplate-mechaArmure div.sheet-ligneF > span.sheet-fullText > * {
width: max-content;
width: 100%;
font-size: inherit;
font-weight: inherit;
line-height: inherit;
padding-right: 2px;
padding: 0px;
}
.sheet-rolltemplate-base div.sheet-ligneF > span.sheet-fullText .inlinerollresult,
.sheet-rolltemplate-simple div.sheet-ligneF > span.sheet-fullText .inlinerollresult,
@@ -41542,6 +41797,23 @@ div.charsheet > div.content div.tabEquipage div.equipage .repcontainer .repitem:
.sheet-rolltemplate-mechaArmure div.sheet-ligneF > span.sheet-fullText:last-of-type {
margin-bottom: 3px;
}
.sheet-rolltemplate-base div.sheet-ligneFullHerauts,
.sheet-rolltemplate-simple div.sheet-ligneFullHerauts,
.sheet-rolltemplate-combat div.sheet-ligneFullHerauts,
.sheet-rolltemplate-mechaArmure div.sheet-ligneFullHerauts {
display: flex;
width: 100%;
background: RGB(213, 215, 237);
line-height: 16px;
flex-wrap: wrap;
justify-content: center;
word-wrap: anywhere;
min-height: 28px;
align-content: center;
font-weight: bold;
font-size: 12px;
text-align: center;
}
.sheet-rolltemplate-base .sheet-space > span:last-of-type,
.sheet-rolltemplate-simple .sheet-space > span:last-of-type,
.sheet-rolltemplate-combat .sheet-space > span:last-of-type,
+2087 -981
View File
File diff suppressed because it is too large Load Diff
+74 -2
View File
@@ -1027,6 +1027,18 @@
</select>
<span name="attr_ameliorationArmes-description"></span>
</div>
<div class="fichePJ druid herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="fichePJ druid druidModJetCompagnons">
<h1 class="titre" data-i18n="bonus/malus-aux-jets-des-compagnons">Bonus/Malus aux Jets des Compagnons</h1>
<input type="number" name="attr_jetModifDesComp" value="0" />
@@ -1110,6 +1122,18 @@
<textarea name="attr_styleCombatDescr" readonly></textarea>
</div>
</div>
<div class="fichePJ monk herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="fichePJ monk monkModeCea">
<input type="hidden" name="attr_bonusCarac" class="bonusCarac" value="0" />
@@ -1685,6 +1709,18 @@
</select>
</div>
</div>
<div class="fichePJ ranger herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="fichePJ ranger portee">
<h1 class="titre" data-i18n="portee">Portée</h1>
<div class="col5">
@@ -2124,7 +2160,7 @@
<span data-i18n="champ-de-force">Champ de force</span>
<div><input type="number" name="attr_cdfAscension" value="10" readonly /></div>
<div><input type="number" name="attr_cdfAscension_max" value="10" readonly /></div>
<div><input type="number" name="attr_cdfPJModif" value="0" /></div>
<div><input type="number" name="attr_cdfPJAscensionModif" value="0" /></div>
</div>
</div>
</div>
@@ -2763,6 +2799,18 @@
<textarea name="attr_styleCombatDescr" readonly></textarea>
</div>
</div>
<div class="fichePJ wizard herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="MAL">
<h1 class="titre" data-i18n="meta-armure-legende">Méta-armure de légende</h1>
@@ -2901,6 +2949,18 @@
</select>
<span name="attr_ameliorationArmes-description"></span>
</div>
<div class="MALDruid herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="MALDruid information">
<h1 class="titre" data-i18n="panneau-d'information">Panneau d'Information</h1>
<div class="autoex autoex28">
@@ -3879,7 +3939,19 @@
<input type="number" name="attr_MALWarriorScoutBP" value="@{MALWarriorScoutBonus}" disabled />
</label>
</div>
<div class="MALWizard herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
<div class="MALWizard wizardOriflamme">
<div class="titre">
<h1 class="titre" data-i18n="wizard-mode-oriflamme">Mode Oriflamme</h1>
+14 -1
View File
@@ -253,6 +253,19 @@
<span data-i18n="bonus/malus-jets">Bonus/Malus aux Jets</span>
<input type="number" name="attr_jetModifDes" value="0" />
</label>
<div class="fichePJ herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
</div>
<input class="subTabDistance" type="hidden" name="attr_tabDistance" value="1" />
@@ -890,7 +903,7 @@
<span data-i18n="champ-de-force">Champ de force</span>
<div><input type="number" name="attr_cdfAscension" value="10" readonly /></div>
<div><input type="number" name="attr_cdfAscension_max" value="10" readonly /></div>
<div><input type="number" name="attr_cdfPJModif" value="0" /></div>
<div><input type="number" name="attr_cdfPJAschensionModif" value="0" /></div>
</div>
</div>
+13
View File
@@ -122,6 +122,19 @@
<input type="number" name="attr_ODVehicule" value="0" />
</label>
</div>
<div class="herauts">
<h1 class="titre">Chevalier de la lumière / Hérauts de l'équilibre</h1>
<div>
<input type="hidden" name="attr_devasterAnatheme" class="devasterAnatheme" value="0" />
<input type="hidden" name="attr_bourreauTenebres" class="bourreauTenebres" value="0" />
<input type="hidden" name="attr_equilibreBalance" class="equilibreBalance" value="0" />
<button type="action" name="act_devasterAnatheme" class="devasterAnatheme" >Dévaster l'Anathème actif</button>
<button type="action" name="act_bourreauTenebres" class="bourreauTenebres" >Bourreau des ténèbres actif</button>
<button type="action" name="act_equilibreBalance" class="equilibreBalance" >Équilibrer la balance actif</button>
</div>
</div>
</div>
<div class="col">
+32 -27
View File
@@ -15,6 +15,12 @@
<h3 class="titre3">{{MALspecial2}}</h3>
{{/MALspecial2}}
{{#herauts}}
<div class="ligneFullHerauts">
<span>{{herauts}}</span>
</div>
{{/herauts}}
{{#portee}}
<h3 class="titre3">{{portee}}</h3>
{{/portee}}
@@ -243,7 +249,7 @@
{{#degats}}
<div class="ligneM f14 doubleBordureTop">
<span class="nom" data-i18n="degats">Dégâts</span>
<span class="value">{{degats}}</span>
<span class="value">{{computed::degats}}</span>
{{#vForce}}
<span class="full"><span data-i18n="bonus-force-inclus">Bonus force inclus</span> ({{vForce}})</span>
{{/vForce}}
@@ -328,7 +334,7 @@
{{#attaqueSurprise}}
<div class="ligneM f12">
<span class="nom">+{{attaqueSurprise}}</span>
<span class="value">{{attaqueSurpriseValue}}</span>
<span class="value">{{computed::attaqueSurpriseValue}}</span>
<span class="full">
{{attaqueSurpriseCondition}}
</span>
@@ -337,7 +343,7 @@
{{#destructeur}}
<div class="ligneM f12">
<span class="nom">+{{destructeur}}</span>
<span class="value">{{destructeurValue}}</span>
<span class="value">{{computed::destructeurValue}}</span>
<span class="full">
{{destructeurCondition}}
</span>
@@ -346,7 +352,7 @@
{{#meurtrier}}
<div class="ligneM f12">
<span class="nom">+{{meurtrier}}</span>
<span class="value">{{meurtrierValue}}</span>
<span class="value">{{computed::meurtrierValue}}</span>
<span class="full">
{{meurtrierCondition}}
</span>
@@ -355,7 +361,7 @@
{{#armeAzurine}}
<div class="ligneM f12">
<span class="nom">+{{armeAzurine}}</span>
<span class="value">{{armeAzurineValueD}}</span>
<span class="value">{{computed::armeAzurineValueD}}</span>
<span class="full">
{{armeAzurineCondition}}
</span>
@@ -364,7 +370,7 @@
{{#armeRougeSang}}
<div class="ligneM f12">
<span class="nom">+{{armeRougeSang}}</span>
<span class="value">{{armeRougeSangValueD}}</span>
<span class="value">{{computed::armeRougeSangValueD}}</span>
<span class="full">
{{armeRougeSangCondition}}
</span>
@@ -373,7 +379,7 @@
{{#cheneSculpte}}
<div class="ligneM f12">
<span class="nom">+{{cheneSculpte}}</span>
<span class="value">{{cheneSculpteValue}}</span>
<span class="value">{{computed::cheneSculpteValue}}</span>
<span class="full">
{{cheneSculpteCondition}}
</span>
@@ -382,7 +388,7 @@
{{#griffuresGravees}}
<div class="ligneM f12">
<span class="nom">+{{griffuresGravees}}</span>
<span class="value">{{griffuresGraveesValueD}}</span>
<span class="value">{{computed::griffuresGraveesValueD}}</span>
<span class="full">
{{griffuresGraveesCondition}}
</span>
@@ -391,7 +397,7 @@
{{#masqueBrise}}
<div class="ligneM f12">
<span class="nom">+{{masqueBrise}}</span>
<span class="value">{{masqueBriseValueD}}</span>
<span class="value">{{computed::masqueBriseValueD}}</span>
<span class="full">
{{masqueBriseCondition}}
</span>
@@ -400,7 +406,7 @@
{{#rouagesCasses}}
<div class="ligneM f12">
<span class="nom">+{{rouagesCasses}}</span>
<span class="value">{{rouagesCassesValueD}}</span>
<span class="value">{{computed::rouagesCassesValueD}}</span>
<span class="full">
{{rouagesCassesCondition}}
</span>
@@ -502,30 +508,29 @@
{{#tenebricide}}
<div class="ligneM f12">
<span class="nom">{{tenebricide}}</span>
<span class="value">{{tenebricideValueD}}</span>
<span class="value">{{computed::tenebricideValueD}}</span>
{{#tenebricideAS}}
<div class="subValue">
<span>+{{tenebricideAS}}</span>
<span>{{tenebricideASValue}}</span>
<span>{{computed::tenebricideASValue}}</span>
</div>
{{/tenebricideAS}}
{{#destructeur}}
<div class="subValue">
<span>+{{destructeur}}</span>
<span>{{computed::destructeurValue}}</span>
<span>{{computed::tDestructeurValue}}</span>
</div>
{{/destructeur}}
{{#meurtrier}}
<div class="subValue">
<span>+{{meurtrier}}</span>
<span>{{computed::meurtrierValue}}</span>
<span>{{computed::tMeurtrierValue}}</span>
</div>
{{/meurtrier}}
{{#cheneSculpte}}
<div class="subValue">
<span class="nom">+{{cheneSculpte}}</span>
<span class="value">{{computed::cheneSculpteValue}}</span>
<span class="value">{{computed::tCheneSculpteValue}}</span>
</div>
{{/cheneSculpte}}
<span class="full">
@@ -563,7 +568,7 @@
{{#violence}}
<div class="ligneM f14 doubleBordureTop">
<span class="nom" data-i18n="violence">Violence</span>
<span class="value">{{violence}}</span>
<span class="value">{{computed::violence}}</span>
{{#vBarbarianV}}
<span class="full"><span data-i18n="goliath-inclus">Bonus du Mode Goliath inclus</span> ({{vBarbarianV}})</span>
{{/vBarbarianV}}
@@ -604,7 +609,7 @@
{{#fureur}}
<div class="ligneM f12">
<span class="nom">+{{fureur}}</span>
<span class="value">{{fureurValue}}</span>
<span class="value">{{computed::fureurValue}}</span>
<span class="full">
{{fureurCondition}}
</span>
@@ -613,7 +618,7 @@
{{#ultraviolence}}
<div class="ligneM f12">
<span class="nom">+{{ultraviolence}}</span>
<span class="value">{{ultraviolenceValue}}</span>
<span class="value">{{computed::ultraviolenceValue}}</span>
<span class="full">
{{ultraviolenceCondition}}
</span>
@@ -622,7 +627,7 @@
{{#armeAzurine}}
<div class="ligneM f12">
<span class="nom">+{{armeAzurine}}</span>
<span class="value">{{armeAzurineValueV}}</span>
<span class="value">{{computed::armeAzurineValueV}}</span>
<span class="full">
{{armeAzurineCondition}}
</span>
@@ -631,7 +636,7 @@
{{#armeRougeSang}}
<div class="ligneM f12">
<span class="nom">+{{armeRougeSang}}</span>
<span class="value">{{armeRougeSangValueV}}</span>
<span class="value">{{computed::armeRougeSangValueV}}</span>
<span class="full">
{{armeRougeSangCondition}}
</span>
@@ -640,7 +645,7 @@
{{#griffuresGravees}}
<div class="ligneM f12">
<span class="nom">+{{griffuresGravees}}</span>
<span class="value">{{griffuresGraveesValueV}}</span>
<span class="value">{{computed::griffuresGraveesValueV}}</span>
<span class="full">
{{griffuresGraveesCondition}}
</span>
@@ -649,7 +654,7 @@
{{#masqueBrise}}
<div class="ligneM f12">
<span class="nom">+{{masqueBrise}}</span>
<span class="value">{{masqueBriseValueV}}</span>
<span class="value">{{computed::masqueBriseValueV}}</span>
<span class="full">
{{masqueBriseCondition}}
</span>
@@ -658,7 +663,7 @@
{{#rouagesCasses}}
<div class="ligneM f12">
<span class="nom">+{{rouagesCasses}}</span>
<span class="value">{{rouagesCassesValueV}}</span>
<span class="value">{{computed::rouagesCassesValueV}}</span>
<span class="full">
{{rouagesCassesCondition}}
</span>
@@ -688,17 +693,17 @@
{{#tenebricide}}
<div class="ligneM f12">
<span class="nom">{{tenebricide}}</span>
<span class="value">{{tenebricideValueV}}</span>
<span class="value">{{computed::tenebricideValueV}}</span>
{{#fureur}}
<div class="subValue">
<span>+{{fureur}}</span>
<span>{{computed::fureurValue}}</span>
<span>{{computed::tFureurValue}}</span>
</div>
{{/fureur}}
{{#ultraviolence}}
<div class="subValue">
<span>+{{ultraviolence}}</span>
<span>{{computed::ultraviolenceValue}}</span>
<span>{{computed::tUltraviolenceValue}}</span>
</div>
{{/ultraviolence}}
<span class="full">
+11 -5
View File
@@ -13,6 +13,12 @@
<h3 class="titre3">{{special2B}}</h3>
{{/special2B}}
{{#herauts}}
<div class="ligneFullHerauts">
<span>{{herauts}}</span>
</div>
{{/herauts}}
{{#portee}}
<h3 class="titre3">{{portee}}</h3>
{{/portee}}
@@ -73,7 +79,7 @@
{{#degats}}
<div class="ligneM f14 doubleBordureTop">
<span class="nom" data-i18n="degats">Dégâts</span>
<span class="value">{{degats}}</span>
<span class="value">{{computed::degats}}</span>
{{#vForce}}
<span class="full"><span data-i18n="bonus-force-inclus">Bonus force inclus</span> ({{vForce}})</span>
{{/vForce}}
@@ -92,7 +98,7 @@
{{#attaqueSurprise}}
<div class="ligneM f12">
<span class="nom">+{{attaqueSurprise}}</span>
<span class="value">{{attaqueSurpriseValue}}</span>
<span class="value">{{computed::attaqueSurpriseValue}}</span>
<span class="full">
{{attaqueSurpriseCondition}}
</span>
@@ -109,7 +115,7 @@
{{#meurtrier}}
<div class="ligneM f12">
<span class="nom">+{{meurtrier}}</span>
<span class="value">{{meurtrierValue}}</span>
<span class="value">{{computed::meurtrierValue}}</span>
<span class="full">
{{meurtrierCondition}}
</span>
@@ -120,7 +126,7 @@
{{#violence}}
<div class="ligneM f14 doubleBordureTop">
<span class="nom" data-i18n="violence">Violence</span>
<span class="value">{{violence}}</span>
<span class="value">{{computed::violence}}</span>
{{#vMStyleV}}
<span class="full"><span data-i18n="style-inclus">Style inclus</span> ({{vMStyleV}})</span>
@@ -140,7 +146,7 @@
{{#fureur}}
<div class="ligneM f12">
<span class="nom">+{{fureur}}</span>
<span class="value">{{fureurValue}}</span>
<span class="value">{{computed::fureurValue}}</span>
<span class="full">
{{fureurCondition}}
</span>
+6
View File
@@ -128,6 +128,12 @@
<span data-i18n="inclure-onglet-gerer-vehicule">Inclure un onglet pour gérer le véhicule.</span>
</label>
</div>
<div class="full fichePJ">
<label>
<input type="checkbox" name="attr_chevaliersHerauts" value="1">
<span>Rendre disponible les avantages spéciaux de La Geste (M15).</span>
</label>
</div>
<div class="half fichePJ">
<label>
<input type="checkbox" name="attr_tabEgide" value="1">
+427 -2
View File
@@ -121,12 +121,14 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite,
let isLeste = false;
let isLourd = false;
let isELumiere = false;
let isFureur = false;
let isMeurtrier = false;
let isObliteration = false;
let isOrfevrerie = false;
let isSilencieux = false;
let isTenebricide = false;
let isTirRafale = false;
let isUltraviolence = false;
const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]);
const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]);
@@ -262,6 +264,7 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite,
if (eFureur) {
isConditionnelV = true;
isFureur = true;
firstExec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
@@ -343,8 +346,6 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite,
isConditionnelD = true;
isConditionnelV = true;
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
isTenebricide = true;
}
@@ -357,6 +358,7 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite,
if (eUltraviolence) {
isConditionnelV = true;
isUltraviolence = true;
firstExec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
@@ -451,6 +453,8 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite,
result.isAssistantAttaque = isAssistantAttaque;
result.isAntiAnatheme = isAntiAnatheme;
result.isTirRafale = isTirRafale;
result.isFureur = isFureur;
result.isUltraviolence = isUltraviolence;
result.eLumiere = eLumiere;
result.isELumiere = isELumiere;
@@ -3607,3 +3611,424 @@ function getStyleDistanceMod(value, diceDegats, diceViolence, pilonnage, hasArmu
return result;
}
function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, diceViolence, bonusViolence, conditions) {
const tSurprise = roll.results.attaqueSurpriseValue || {};
const tDestructeur = roll.results.destructeurValue || {};
const tFureur = roll.results.fureurValue || {};
const tMeurtrier = roll.results.meurtrierValue || {};
const tUltraviolence = roll.results.ultraviolenceValue || {};
const tArmeAzurineValueD = roll.results.armeAzurineValueD || {};
const tArmeAzurineValueV = roll.results.armeAzurineValueV || {};
const tArmeRougeSangValueD = roll.results.armeRougeSangValueD || {};
const tArmeRougeSangValueV = roll.results.armeRougeSangValueV || {};
const tCheneSculpte = roll.results.cheneSculpteValue || {};
const tGriffuresGraveesValueD = roll.results.griffuresGraveesValueD || {};
const tGriffuresGraveesValueV = roll.results.griffuresGraveesValueV || {};
const tMasqueBriseValueD = roll.results.masqueBriseValueD || {};
const tMasqueBriseValueV = roll.results.masqueBriseValueV || {};
const tRouagesCassesValueD = roll.results.rouagesCassesValueD || {};
const tRouagesCassesValueV = roll.results.rouagesCassesValueV || {};
const isTenebricide = conditions.isTenebricide || false;
const isSurprise = conditions.isSurprise || false;
const isDestructeur = conditions.isDestructeur || false;
const isFureur = conditions.isFureur || false;
const isMeurtrier = conditions.isMeurtrier || false;
const isUltraviolence = conditions.isUltraviolence || false;
const isArmeAzurine = conditions.isArmeAzurine || false;
const isArmeRougeSang = conditions.isArmeRougeSang || false;
const isCheneSculpte = conditions.isCheneSculpte || false;
const isGriffureGravee = conditions.isGriffureGravee || false;
const isMasqueBrise = conditions.isMasqueBrise || false;
const isRouagesCasses = conditions.isRouagesCasses || false;
let tDegats = totalDegats;
let tViolence = totalViolence;
let hDestructeur = 0;
let hFureur = 0;
let hMeurtrier = 0;
let hSurprise = 0;
let hUltraviolence = 0;
let hArmeAzurineValueD = 0;
let hArmeAzurineValueV = 0;
let hArmeRougeSangValueD = 0;
let hArmeRougeSangValueV = 0;
let hCheneSculpte = 0;
let hGriffuresGraveesValueD = 0;
let hGriffuresGraveesValueV = 0;
let hMasqueBriseValueD = 0;
let hMasqueBriseValueV = 0;
let hRouagesCassesValueD = 0;
let hRouagesCassesValueV = 0;
if (isSurprise) { hSurprise = tSurprise.result; }
if (isDestructeur) { hDestructeur = tDestructeur.result; }
if (isFureur) { hFureur = tFureur.result; }
if (isMeurtrier) { hMeurtrier = tMeurtrier.result; }
if (isUltraviolence) { hUltraviolence = tUltraviolence.result; }
if (isArmeAzurine) {
hArmeAzurineValueD = tArmeAzurineValueD.result;
hArmeAzurineValueV = tArmeAzurineValueV.result;
}
if (isArmeRougeSang) {
hArmeRougeSangValueD = tArmeRougeSangValueD.result;
hArmeRougeSangValueV = tArmeRougeSangValueV.result;
}
if (isCheneSculpte) { hCheneSculpte = tCheneSculpte.result; }
if (isGriffureGravee) {
hGriffuresGraveesValueD = tGriffuresGraveesValueD.result;
hGriffuresGraveesValueV = tGriffuresGraveesValueV.result;
}
if (isMasqueBrise) {
hMasqueBriseValueD = tMasqueBriseValueD.result;
hMasqueBriseValueV = tMasqueBriseValueV.result;
}
if (isRouagesCasses) {
hRouagesCassesValueD = tRouagesCassesValueD.result;
hRouagesCassesValueV = tRouagesCassesValueV.result;
}
let vTDegats = 0;
let vTViolence = 0;
let vTDestructeur = 0;
let vTFureur = 0;
let vTMeurtrier = 0;
let vTSurprise = 0;
let vTUltraviolence = 0;
let vTCheneSculpte = 0;
if (conditions.bourreau || conditions.equilibre) {
tDegats = diceDegats.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
if (bonusDegats.length !== 0) { tDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
if (isDestructeur) {
hDestructeur = tDestructeur.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isMeurtrier) {
hMeurtrier = tMeurtrier.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isSurprise) {
if (tSurprise.dice.length !== 0) {
const normalRoll = tSurprise.dice.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante);
const bonusSurprise = +tSurprise.result - +normalRoll;
hSurprise = tSurprise.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
hSurprise += bonusSurprise;
}
}
if (isArmeAzurine) {
hArmeAzurineValueD = tArmeAzurineValueD.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isArmeRougeSang) {
hArmeRougeSangValueD = tArmeRougeSangValueD.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isCheneSculpte) {
hCheneSculpte = tCheneSculpte.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isGriffureGravee) {
hGriffuresGraveesValueD = tGriffuresGraveesValueD.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isMasqueBrise) {
hMasqueBriseValueD = tMasqueBriseValueD.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isRouagesCasses) {
hRouagesCassesValueD = tRouagesCassesValueD.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
}
if (conditions.devaste || conditions.equilibre) {
tViolence = diceViolence.reduce((accumulateur, valeurCourante) => {
let newV = valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
if (bonusViolence.length !== 0) { tViolence += bonusViolence.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
if (isFureur) {
hFureur = tFureur.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isUltraviolence) {
hUltraviolence = tUltraviolence.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isArmeAzurine) {
hArmeAzurineValueV = tArmeAzurineValueV.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isArmeRougeSang) {
hArmeRougeSangValueV = tArmeRougeSangValueV.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isGriffureGravee) {
hGriffuresGraveesValueV = tGriffuresGraveesValueV.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isMasqueBrise) {
hMasqueBriseValueV = tMasqueBriseValueV.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (isRouagesCasses) {
hRouagesCassesValueV = tRouagesCassesValueV.dice.reduce((accumulateur, valeurCourante) => {
let newV = +valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
}
if (isTenebricide) {
let limiteD = Math.floor(+diceDegats.length / 2);
let limiteV = Math.floor(+diceViolence.length / 2);
if (limiteD < 1) { limiteD = 1; }
if (limiteV < 1) { limiteV = 1; }
vTDegats = diceDegats.reduce((accumulateur, valeurCourante, index) => {
let result = +accumulateur;
if (index < limiteD) {
let newV = +valeurCourante;
if (conditions.bourreau || conditions.equilibre) {
if (newV <= 3) { newV = 4; }
}
result += newV;
}
return result;
}, 0);
if (bonusDegats.length !== 0) { vTDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
vTViolence = diceViolence.reduce((accumulateur, valeurCourante, index) => {
let result = +accumulateur;
if (index < limiteV) {
let newV = +valeurCourante;
if (conditions.bourreau || conditions.equilibre) {
if (newV <= 3) { newV = 4; }
}
result += newV;
}
return result;
}, 0);
if (bonusViolence.length !== 0) { vTViolence += bonusViolence.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); }
if (isMeurtrier) {
let diceMeurtrier = +tMeurtrier.dice[0];
if (conditions.bourreau || conditions.equilibre) {
if (diceMeurtrier <= 3) { diceMeurtrier = 4; }
}
vTMeurtrier = diceMeurtrier;
}
if (isDestructeur) {
let diceDestructeur = +tDestructeur.dice[0];
if (conditions.bourreau || conditions.equilibre) {
if (diceDestructeur <= 3) { diceDestructeur = 4; }
}
vTDestructeur = diceDestructeur;
}
if (isCheneSculpte) {
let diceCheneSculpte = +tCheneSculpte.dice[0];
if (conditions.bourreau || conditions.equilibre) {
if (diceCheneSculpte <= 3) { diceCheneSculpte = 4; }
}
vTCheneSculpte = diceCheneSculpte;
}
if (isFureur) {
let diceFureur1 = +tFureur.dice[0];
let diceFureur2 = +tFureur.dice[1];
if (conditions.devaste || conditions.equilibre) {
if (diceFureur1 <= 3) { diceFureur1 = 4; }
if (diceFureur2 <= 3) { diceFureur2 = 4; }
}
vTFureur = diceFureur1 + diceFureur2;
}
if (isSurprise) {
let bonusSurprise = +tSurprise.result;
if (tSurprise.dice.length !== 0) {
const dices = tSurprise.dice;
const limiteS = Math.floor(+dices.length / 2);
const normalRoll = dices.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante);
bonusSurprise -= +normalRoll;
vTSurprise = dices.reduce((accumulateur, valeurCourante, index) => {
let result = accumulateur;
if (index < limiteS) {
let newV = +valeurCourante;
if (conditions.bourreau || conditions.equilibre) {
if (newV <= 3) { newV = 4; }
}
result += newV;
}
return result;
}, 0);
}
vTSurprise += +bonusSurprise;
}
if (isUltraviolence) {
let diceUltraviolence = +tUltraviolence.dice[0];
if (conditions.devaste || conditions.equilibre) {
if (diceUltraviolence <= 3) { diceUltraviolence = 4; }
}
vTUltraviolence = diceUltraviolence;
}
}
const computed = {
degats: tDegats,
violence: tViolence,
tenebricideValueD: vTDegats,
tenebricideValueV: vTViolence,
tenebricideASValue: vTSurprise,
destructeurValue: hDestructeur,
fureurValue: hFureur,
meurtrierValue: hMeurtrier,
attaqueSurpriseValue: hSurprise,
ultraviolenceValue: hUltraviolence,
armeAzurineValueD: hArmeAzurineValueD,
armeAzurineValueV: hArmeAzurineValueV,
armeRougeSangValueD: hArmeRougeSangValueD,
armeRougeSangValueV: hArmeRougeSangValueV,
cheneSculpteValue: hCheneSculpte,
griffuresGraveesValueD: hGriffuresGraveesValueD,
griffuresGraveesValueV: hGriffuresGraveesValueV,
masqueBriseValueD: hMasqueBriseValueD,
masqueBriseValueV: hMasqueBriseValueV,
rouagesCassesValueD: hRouagesCassesValueD,
rouagesCassesValueV: hRouagesCassesValueV,
tDestructeurValue: vTDestructeur,
tFureurValue: vTFureur,
tMeurtrierValue: vTMeurtrier,
tUltraviolenceValue: vTUltraviolence,
tCheneSculpteValue: vTCheneSculpte,
};
return computed;
}
+4627
View File
File diff suppressed because it is too large Load Diff
+38 -4
View File
@@ -816,13 +816,17 @@ on('change:armurePJModif', async () => {
await setAttrsAsync({ armureAscension_max: base + modif });
});
on('change:cdfPJModif', async () => {
const attrs = await getAttrsAsync(['cdfPJModif']);
on('change:cdfPJAscensionModif', async () => {
const attrs = await getAttrsAsync(['cdfPJAscensionModif']);
const base = 10;
const modif = +attrs.cdfPJModif;
const modif = +attrs.cdfPJAscensionModif;
const total = base + modif;
await setAttrsAsync({ cdfAscension_max: base + modif });
await setAttrsAsync({
cdfAscension: total,
cdfAscension_max: total,
});
});
on('change:shamanNbreTotem', async () => {
@@ -3176,6 +3180,26 @@ on('change:rangerArmeDegatEvol change:rangerArmeDegat change:rangerArmeViolenceE
});
// LONGBOW
// HERAUT DE LEQUILIBRE - CHEVALIER DE LA LUMIERE
const chevalierHerauts = ['devasterAnatheme', 'bourreauTenebres', 'equilibreBalance'];
chevalierHerauts.forEach((button) => {
on(`clicked:${button}`, async () => {
const attrs = await getAttrsAsync([button]);
const value = +attrs[button];
const result = {};
let newValue = 1;
if (value === 1) { newValue = 0; }
result[button] = newValue;
await setAttrsAsync(result);
});
});
// HERAUT DE LEQUILIBRE - CHEVALIER DE LA LUMIERE
// Import NPC
on('clicked:importKNPCG', () => {
getAttrs(['importKNPCG'], (value) => {
@@ -3682,3 +3706,13 @@ on('change:ameliorationOArmes', (eventInfo) => {
setAttrsAsync(update);
});
on('change:chevaliersHerauts', () => {
const update = {};
update.devasterAnatheme = 0;
update.bourreauTenebres = 0;
update.equilibreBalance = 0;
setAttrsAsync(update);
});
+4 -1
View File
@@ -855,7 +855,10 @@ const i18n_deplacement = getTranslationByKey("deplacement"),
i18n_lameCinetique = getTranslationByKey("lames-cinetiques-geantes-effets"),
i18n_attaquesOmbres = getTranslationByKey("capacite-fan-made-Attaque-dans-les-ombres"),
i18n_porteeMoyenne = getTranslationByKey("portee-moyenne"),
i18n_porteeCourte = getTranslationByKey("portee-courte")
i18n_porteeCourte = getTranslationByKey("portee-courte"),
i18n_devasterAnatheme = getTranslationByKey("devaster-anatheme"),
i18n_bourreauTenebres = getTranslationByKey("bourreau-tenebres"),
i18n_equilibrerBalance = getTranslationByKey("equilibrer-balance")
;
function maxCar(carac, score, aspect)
+104 -63
View File
@@ -1,95 +1,136 @@
/* eslint-disable camelcase */
/* eslint-disable no-undef */
on('clicked:distanceBard', (info) => {
on('clicked:distanceBard', async (info) => {
const roll = info.htmlAttributes.value;
let attributs = [
'armureLegende',
'bardAttSpe',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(listArmureLegende);
const attrs = await getAttrsAsync(attributs);
getAttrs(attributs, (value) => {
const exec = [];
const exec = [];
const armureL = value.armureLegende;
const armureL = attrs.armureLegende;
const degats = value.bardAttSpe;
const violence = value.bardAttSpe;
const degats = attrs.bardAttSpe;
const violence = attrs.bardAttSpe;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let MALGoliath;
let MALGhost;
let MALTypeSoldier;
let MALTypeHunter;
let MALTypeHerald;
let MALTypeScholar;
let MALTypeScout;
let MALGoliath;
let MALGhost;
let MALTypeSoldier;
let MALTypeHunter;
let MALTypeHerald;
let MALTypeScholar;
let MALTypeScout;
exec.push(roll);
exec.push(roll);
switch (armureL) {
case 'barbarian':
MALGoliath = Number(value.MALBarbarianGoliath);
switch (armureL) {
case 'barbarian':
MALGoliath = Number(attrs.MALBarbarianGoliath);
if (MALGoliath !== 0) { exec.push(`{{MALGoliath=[[${MALGoliath}]]}}`); }
break;
if (MALGoliath !== 0) { exec.push(`{{MALGoliath=[[${MALGoliath}]]}}`); }
break;
case 'rogue':
MALGhost = value.MALRogueGhost;
case 'rogue':
MALGhost = attrs.MALRogueGhost;
if (MALGhost !== '') { exec.push(`{{MALspecial2=${i18n_ghostActive}}}`); }
break;
if (MALGhost !== '') { exec.push(`{{MALspecial2=${i18n_ghostActive}}}`); }
break;
case 'warrior':
MALTypeSoldier = value.MALWarriorSoldierA;
MALTypeHunter = value.MALWarriorHunterA;
MALTypeHerald = value.MALWarriorHeraldA;
MALTypeScholar = value.MALWarriorScholarA;
MALTypeScout = value.MALWarriorScoutA;
case 'warrior':
MALTypeSoldier = attrs.MALWarriorSoldierA;
MALTypeHunter = attrs.MALWarriorHunterA;
MALTypeHerald = attrs.MALWarriorHeraldA;
MALTypeScholar = attrs.MALWarriorScholarA;
MALTypeScout = attrs.MALWarriorScoutA;
if (MALTypeSoldier !== 0) { exec.push(`{{MALspecial2=${i18n_typeSoldier}}}`); }
if (MALTypeSoldier !== 0) { exec.push(`{{MALspecial2=${i18n_typeSoldier}}}`); }
if (MALTypeHunter !== 0) { exec.push(`{{MALspecial2=${i18n_typeHunter}}}`); }
if (MALTypeHunter !== 0) { exec.push(`{{MALspecial2=${i18n_typeHunter}}}`); }
if (MALTypeHerald !== 0) { exec.push(`{{MALspecial2=${i18n_typeHerald}}}`); }
if (MALTypeHerald !== 0) { exec.push(`{{MALspecial2=${i18n_typeHerald}}}`); }
if (MALTypeScholar !== 0) { exec.push(`{{MALspecial2=${i18n_typeScholar}}}`); }
if (MALTypeScholar !== 0) { exec.push(`{{MALspecial2=${i18n_typeScholar}}}`); }
if (MALTypeScout !== 0) { exec.push(`{{MALspecial2=${i18n_typeScout}}}`); }
break;
if (MALTypeScout !== 0) { exec.push(`{{MALspecial2=${i18n_typeScout}}}`); }
break;
default:
MALGoliath = 0;
default:
MALGoliath = 0;
MALGhost = '';
MALGhost = '';
MALTypeSoldier = '';
MALTypeHunter = '';
MALTypeHerald = '';
MALTypeScholar = '';
MALTypeScout = '';
break;
}
MALTypeSoldier = '';
MALTypeHunter = '';
MALTypeHerald = '';
MALTypeScholar = '';
MALTypeScout = '';
break;
}
exec.push(`{{degats=[[${degats}]]}}`);
exec.push(`{{violence=[[${violence}]]}}`);
exec.push('{{succesConditionnel=true}}');
exec.push(`{{chocAutomatique=${i18n_choc} 1}}`);
exec.push(`{{chocAutomatiqueCondition=${i18n_chocAutomatique} < 12}}`);
exec.push(`{{effets=${i18n_ignoreArmure} / ${i18n_ignoreCDF} / ${i18n_dispersion} 6}}`);
exec.push(`{{degats=[[${degats}]]}}`);
exec.push(`{{violence=[[${violence}]]}}`);
exec.push('{{succesConditionnel=true}}');
exec.push(`{{chocAutomatique=${i18n_choc} 1}}`);
exec.push(`{{chocAutomatiqueCondition=${i18n_chocAutomatique} < 12}}`);
exec.push(`{{effets=${i18n_ignoreArmure} / ${i18n_ignoreCDF} / ${i18n_dispersion} 6}}`);
startRoll(exec.join(' '), (results) => {
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
degats: tDegats,
violence: tViolence,
},
);
});
});
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.rolls[0].results;
const rViolence = finalRoll.results.violence.rolls[0].results;
let tDegats = finalRoll.results.degats.result;
let tViolence = finalRoll.results.violence.result;
if (bourreau || equilibre) {
tDegats = rDegats.reduce((accumulateur, valeurCourante) => {
let newV = valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
tDegats += 6;
}
if (devaste || equilibre) {
tViolence = rViolence.reduce((accumulateur, valeurCourante) => {
let newV = valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
tViolence += 6;
}
const computed = {
degats: tDegats,
violence: tViolence,
};
finishRoll(finalRoll.rollId, computed);
// ROLL
});
+74 -34
View File
@@ -3,10 +3,14 @@
const berserkIlluminationRoll = ['berserkIlluminationBlaze', 'berserkIlluminationLantern'];
berserkIlluminationRoll.forEach((button) => {
on(`clicked:${button}`, (info) => {
on(`clicked:${button}`, async (info) => {
const roll = info.htmlAttributes.value;
const attributs = [];
const attributs = [
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
if (button === 'berserkIlluminationBlaze') {
attributs.push(`${button}Dgts`);
@@ -19,43 +23,79 @@ berserkIlluminationRoll.forEach((button) => {
attributs.push(`${button}Portee`);
}
getAttrs(attributs, (value) => {
const exec = [];
exec.push(roll);
const attrs = await getAttrsAsync(attributs);
const exec = [];
exec.push(roll);
const dgts = value[`${button}Dgts`];
let violence = 0;
const portee = value[`${button}Portee`];
const dgts = attrs[`${button}Dgts`];
let violence = 0;
const portee = attrs[`${button}Portee`];
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
if (button === 'berserkIlluminationBlaze') {
violence = value[`${button}Violence`];
exec.push(`{{violence=[[${violence}]]}}`);
if (button === 'berserkIlluminationBlaze') {
violence = attrs[`${button}Violence`];
exec.push(`{{violence=[[${violence}]]}}`);
}
if (button === 'berserkIlluminationLantern') {
exec.push(`{{esperance=${i18n_esperance}}}`);
exec.push(`{{esperanceConditionD=${i18n_esperanceConditionD}}}`);
exec.push('{{degatsConditionnel=true}}');
}
exec.push(`{{degats=[[${dgts}]]}}`);
exec.push(`{{portee=${i18n_portee} ${portee}}}`);
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.rolls[0].results;
let tDegats = finalRoll.results.degats.result;
let tViolence = 0;
if (bourreau || equilibre) {
tDegats = rDegats.reduce((accumulateur, valeurCourante) => {
let newV = valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
if (finalRoll.results.violence !== undefined) {
const rViolence = finalRoll.results.violence.rolls[0].results;
tViolence = finalRoll.results.violence.result;
if (devaste || equilibre) {
tViolence = rViolence.reduce((accumulateur, valeurCourante) => {
let newV = valeurCourante;
if (newV <= 3) { newV = 4; }
return accumulateur + newV;
}, 0);
}
}
if (button === 'berserkIlluminationLantern') {
exec.push(`{{esperance=${i18n_esperance}}}`);
exec.push(`{{esperanceConditionD=${i18n_esperanceConditionD}}}`);
exec.push('{{degatsConditionnel=true}}');
}
const computed = {
degats: tDegats,
violence: tViolence,
};
exec.push(`{{degats=[[${dgts}]]}}`);
exec.push(`{{portee=${i18n_portee} ${portee}}}`);
startRoll(exec.join(' '), (results) => {
const tDegats = results.results.degats.result;
let tViolence = 0;
if (results.results.violence !== undefined) { tViolence = results.results.violence.result; }
finishRoll(
results.rollId,
{
degats: tDegats,
violence: tViolence,
},
);
});
});
finishRoll(finalRoll.rollId, computed);
});
});
+107 -115
View File
@@ -50,6 +50,9 @@ rollCombatContact.forEach((button) => {
`${ODValue.combat}`,
'energiePJ',
'espoir',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listArmure, listArmureLegende, listStyle, listBase);
@@ -302,6 +305,7 @@ rollCombatContact.forEach((button) => {
let eASAssassin = '';
let eASAssassinValue = 0;
let isSurprise = false;
let isAssistantAttaque = false;
let isAntiAnatheme = false;
let isCadence = false;
@@ -312,14 +316,14 @@ rollCombatContact.forEach((button) => {
let isDestructeur = false;
let vDestructeur = 0;
let isLeste = false;
let isFureur = false;
let isMeurtrier = false;
let vMeurtrier = 0;
let nowSilencieux = false;
let isObliteration = false;
let isOrfevrerie = false;
let isTenebricide = false;
let ASTenebricide = [];
let isUltraviolence = false;
let isCheneSculpte = false;
let vCheneSculpte = 0;
@@ -355,6 +359,10 @@ rollCombatContact.forEach((button) => {
const energie = attrs.energiePJ;
const espoir = attrs.espoir;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let autresEffets = [];
let autresAmeliorationsS = [];
let autresAmeliorationsO = [];
@@ -490,6 +498,10 @@ rollCombatContact.forEach((button) => {
isObliteration = effets.isObliteration;
isFureur = effets.isFureur;
isUltraviolence = effets.isUltraviolence;
lumiere = effets.eLumiere;
isELumiere = effets.isELumiere;
lumiereValue = Number(effets.eLumiereValue);
@@ -544,7 +556,7 @@ rollCombatContact.forEach((button) => {
// GESTION DES AMELIORATIONS ORNEMENTALES
ameliorationsO = getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, isAntiAnatheme);
ameliorationsO = getWeaponsContactAO(prefix, attrs, isCadence, vCadence, isObliteration, isAntiAnatheme);
if (ameliorationsO.isChromee) {
sCadence = ameliorationsO.rCadence;
@@ -591,6 +603,14 @@ rollCombatContact.forEach((button) => {
diceViolence += ameliorationsO.diceViolence;
// FIN GESTION DES AMELIORATIONS ORNEMENTALES
} else if (armure === 'berserk') {
isConditionnelD = true;
isConditionnelV = true;
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
isAntiAnatheme = true;
isTenebricide = true;
}
// GESTION DU STYLE
@@ -756,46 +776,6 @@ rollCombatContact.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (isTenebricide) {
let degatsTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
const diceDegatsTenebricide = Math.floor(diceDegats / 2);
const diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
if (eASAssassinValue > 0) {
eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
ASTenebricide.unshift(eASAssassin);
ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
}
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
} else if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
}
}
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -865,6 +845,24 @@ rollCombatContact.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (isTenebricide) {
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
if (isCheneSculpte) { firstExec.push('{{tCheneSculpteValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); } else if (isASLumiere) { autresAmeliorationsS.push(lumiere); }
@@ -907,98 +905,92 @@ rollCombatContact.forEach((button) => {
if (ameliorationsO.firstExec) { firstExec = firstExec.concat(ameliorationsO.firstExec); }
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
exec = firstExec.concat(exec);
// ROLL
let finalRoll;
if (pasEnergie === false) {
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tJet = finalRoll.results.jet.result;
const tMeurtrier = results.results.meurtrierValue;
let vTMeurtrier = 0;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const tDestructeur = results.results.destructeurValue;
let vTDestructeur = 0;
const conditions = {
bourreau,
devaste,
equilibre,
isTenebricide,
isSurprise,
isDestructeur,
isFureur,
isMeurtrier,
isUltraviolence,
isArmeAzurine,
isArmeRougeSang,
isCheneSculpte,
isGriffureGravee,
isMasqueBrise,
isRouagesCasses,
};
if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
const tFureur = results.results.fureurValue;
let vTFureur = 0;
const finalComputed = {
jet: tJet + tBonus,
};
if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
Object.assign(finalComputed, computed);
const tUltraviolence = results.results.ultraviolenceValue;
finishRoll(finalRoll.rollId, finalComputed);
let vTUltraviolence = 0;
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
const exploitComputed = {
jet: tRExploit,
};
const tCheneSculpte = results.results.cheneSculpteValue;
let vTCheneSculpte = 0;
finishRoll(exploitRoll.rollId, exploitComputed);
}
if (tCheneSculpte !== undefined) { vTCheneSculpte = tCheneSculpte.dice[0]; }
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
meurtrierValue: vTMeurtrier,
destructeurValue: vTDestructeur,
fureurValue: vTFureur,
ultraviolenceValue: vTUltraviolence,
cheneSculpteValue: vTCheneSculpte,
},
);
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
if (sEnergie !== false) {
if (armure === 'berserk') {
setAttrs({ espoir: newEnergie });
} else {
setAttrs({ energiePJ: newEnergie });
}
if (sEnergie !== false) {
if (armure === 'berserk') {
setAttrs({
espoir: newEnergie,
});
} else {
setAttrs({
energiePJ: newEnergie,
});
}
if (newEnergie === 0) {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
}
if (newEnergie === 0) {
const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
finishRoll(noEnergieRoll.rollId, {});
}
});
}
} else if (button === 'repeating_armeCaC:armecontact') {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
finishRoll(finalRoll.rollId, {});
} else {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`);
finishRoll(finalRoll.rollId, {});
}
});
// ROLL
});
+93 -107
View File
@@ -24,6 +24,9 @@ rollCombatDistance.forEach((button) => {
`${ODValue.dexterite}`,
'tir',
`${ODValue.tir}`,
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listArmure, listArmureLegende, listStyle, listBase);
@@ -266,6 +269,7 @@ rollCombatDistance.forEach((button) => {
let eASAssassin = '';
let eASAssassinValue = 0;
let isSurprise = false;
let isAssistantAttaque = false;
let isAntiAnatheme = false;
let isCadence = false;
@@ -274,12 +278,14 @@ rollCombatDistance.forEach((button) => {
let isDeuxMains = false;
let isDestructeur = false;
let vDestructeur = 0;
let isFureur = false;
let isMeurtrier = false;
let vMeurtrier = 0;
let nowSilencieux = false;
let isObliteration = false;
let isTenebricide = false;
let isTirRafale = false;
let isUltraviolence = false;
let isChambreDouble = false;
let isELumiere = false;
@@ -293,6 +299,10 @@ rollCombatDistance.forEach((button) => {
const energie = attrs.energiePJ;
const espoir = attrs.espoir;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let autresEffets = [];
let autresAmeliorationsA = [];
const autresSpecial = [];
@@ -386,6 +396,7 @@ rollCombatDistance.forEach((button) => {
isAntiAnatheme = effets.isAntiAnatheme;
isAssassin = effets.isAssassin;
isAssistantAttaque = effets.isAssistantAttaque;
isCadence = effets.isCadence;
@@ -405,6 +416,9 @@ rollCombatDistance.forEach((button) => {
isTenebricide = effets.isTenebricide;
isFureur = effets.isFureur;
isUltraviolence = effets.isUltraviolence;
isObliteration = effets.isObliteration;
isTirRafale = effets.isTirRafale;
@@ -627,47 +641,6 @@ rollCombatDistance.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (isTenebricide) {
let degatsTenebricide = [];
let ASTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
const diceDegatsTenebricide = Math.floor(diceDegats / 2);
const diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
if (eASAssassinValue > 0) {
eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
ASTenebricide.unshift(eASAssassin);
ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
}
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
} else if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
}
}
if (isObliteration) {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -725,10 +698,37 @@ rollCombatDistance.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (isTenebricide) {
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (isELumiere) { autresEffets.push(`${i18n_lumiere} ${lumiereValue}`); }
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (autresEffets.length > 0) {
autresEffets.sort();
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
@@ -756,90 +756,76 @@ rollCombatDistance.forEach((button) => {
exec = firstExec.concat(exec);
// ROLL
let finalRoll;
if (pasEnergie === false) {
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
finalRoll = await startRoll(exec.join(' '));
const tJet = finalRoll.results.jet.result;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const tMeurtrier = results.results.meurtrierValue;
let vTMeurtrier = 0;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const tDestructeur = results.results.destructeurValue;
let vTDestructeur = 0;
const conditions = {
bourreau,
devaste,
equilibre,
isTenebricide,
isSurprise,
isDestructeur,
isFureur,
isMeurtrier,
isUltraviolence,
};
if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
const tFureur = results.results.fureurValue;
let vTFureur = 0;
const finalComputed = {
jet: tJet + tBonus,
};
if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
Object.assign(finalComputed, computed);
const tUltraviolence = results.results.ultraviolenceValue;
finishRoll(finalRoll.rollId, finalComputed);
let vTUltraviolence = 0;
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
finishRoll(exploitRoll.rollId, exploitComputed);
}
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
meurtrierValue: vTMeurtrier,
destructeurValue: vTDestructeur,
fureurValue: vTFureur,
ultraviolenceValue: vTUltraviolence,
},
);
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
if (sEnergie !== false) {
if (armure === 'berserk') {
setAttrs({
espoir: newEnergie,
});
} else {
setAttrs({
energiePJ: newEnergie,
});
}
if (sEnergie !== false) {
if (armure === 'berserk') {
setAttrs({
espoir: newEnergie,
});
} else {
setAttrs({
energiePJ: newEnergie,
});
}
if (newEnergie === 0) {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
}
if (newEnergie === 0) {
const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
finishRoll(noEnergieRoll.rollId, {});
}
});
}
} else if (button === 'repeating_armeCaC:armecontact') {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
finishRoll(finalRoll.rollId, {});
} else {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`);
finishRoll(finalRoll.rollId, {});
}
});
});
+73 -65
View File
@@ -52,6 +52,9 @@ rollCombatGrenade.forEach((button) => {
'discretion',
`${ODValue.discretion}`,
'tir',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listArmure, listArmureLegende, listStyle, listBase);
@@ -91,6 +94,14 @@ rollCombatGrenade.forEach((button) => {
let attaquesSurprisesCondition = '';
let isTenebricide = false;
let isDestructeur = false;
let isMeurtrier = false;
let isUltraviolence = false;
let isSurprise = false;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const autresEffets = [];
@@ -187,6 +198,9 @@ rollCombatGrenade.forEach((button) => {
exec.push(`{{ultraviolence=${i18n_ultraviolence}}} {{ultraviolenceCondition=${i18n_ultraviolenceCondition}}} {{meurtrier=${i18n_meurtrier}}} {{meurtrierCondition=${i18n_meurtrierCondition}}}`);
autresEffets.push(`${i18n_dispersion} 6`);
isMeurtrier = true;
isUltraviolence = true;
break;
case 'grenade2':
isConditionnelA = true;
@@ -205,6 +219,8 @@ rollCombatGrenade.forEach((button) => {
autresEffets.push(`${i18n_perceArmure} 20`);
autresEffets.push(`${i18n_penetrant} 6`);
autresEffets.push(`${i18n_dispersion} 6`);
isDestructeur = true;
break;
case 'grenade4':
isConditionnelA = true;
@@ -334,38 +350,33 @@ rollCombatGrenade.forEach((button) => {
exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`);
exec.push(`{{bonus=[[${bonus.join('+')}]]}}`);
if (isTenebricide && hasDgts) {
let degatsTenebricide = [];
let ASTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
const diceDegatsTenebricide = Math.floor(diceDegats / 2);
const diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
}
}
if (attaquesSurprises.length > 0 && hasDgts) {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (isTenebricide && hasDgts) {
exec.push(`{{tenebricide=${i18n_tenebricide}}} {{tenebricideConditionD=${i18n_tenebricideConditionD}}} {{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (autresEffets.length > 0) {
@@ -381,50 +392,47 @@ rollCombatGrenade.forEach((button) => {
exec = firstExec.concat(exec);
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const finalRoll = await startRoll(exec.join(' '));
const tJet = finalRoll.results.jet.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const finalComputed = {
jet: tJet + tBonus,
};
const tMeurtrier = results.results.meurtrierValue;
let vTMeurtrier = 0;
if (hasDgts) {
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const tDestructeur = results.results.destructeurValue;
let vTDestructeur = 0;
const conditions = {
bourreau,
devaste,
equilibre,
isTenebricide,
isSurprise,
isDestructeur,
isMeurtrier,
isUltraviolence,
};
if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
Object.assign(finalComputed, computed);
}
const tUltraviolence = results.results.ultraviolenceValue;
finishRoll(finalRoll.rollId, finalComputed);
let vTUltraviolence = 0;
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
meurtrierValue: vTMeurtrier,
destructeurValue: vTDestructeur,
ultraviolenceValue: vTUltraviolence,
},
);
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
});
+66 -44
View File
@@ -129,6 +129,9 @@ for (let i = 0; i < rollCombatImprovise; i += 1) {
`${ODValue.tir}`,
'combat',
`${ODValue.combat}`,
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listBase);
@@ -174,10 +177,17 @@ for (let i = 0; i < rollCombatImprovise; i += 1) {
const oTir = +attrs[ODValue.tir];
const oCombat = +attrs[ODValue.combat];
let isSurprise = false;
let isTenebricide = false;
let attaquesSurprises = [];
let attaquesSurprisesValue = [];
let attaquesSurprisesCondition = '';
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const autresEffets = [];
if (hasArmure) { exec.push('{{OD=true}}'); }
@@ -353,6 +363,8 @@ for (let i = 0; i < rollCombatImprovise; i += 1) {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (armure === 'berserk') {
@@ -362,37 +374,31 @@ for (let i = 0; i < rollCombatImprovise; i += 1) {
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}}`);
exec.push(`{{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
let degatsTenebricide = [];
let ASTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
const diceDegatsTenebricide = Math.floor(diceDegats / 2);
const diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
exec.push(`{{tenebricide=${i18n_tenebricide}}}`);
exec.push(`{{tenebricideConditionD=${i18n_tenebricideConditionD}}}`);
exec.push(`{{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
isTenebricide = true;
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (autresEffets.length > 0) {
autresEffets.sort();
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
@@ -404,31 +410,47 @@ for (let i = 0; i < rollCombatImprovise; i += 1) {
if (isConditionnelV) { exec.push('{{violenceConditionnel=true}}'); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tJet = finalRoll.results.jet.result;
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
},
);
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
isSurprise,
isTenebricide,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
}
+350 -293
View File
@@ -110,6 +110,9 @@ on('clicked:druidLionArmeBase', async (info) => {
'coupBVDiversTotal',
'bVDiversD6',
'bVDiversFixe',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(arme, special);
@@ -153,6 +156,10 @@ on('clicked:druidLionArmeBase', async (info) => {
const bete = totalADruid(attrs, 'druidLionBete');
const AEBete = +attrs.druidLionBeteAE;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const cRoll = [];
const AE = [];
let bonus = [];
@@ -164,10 +171,10 @@ on('clicked:druidLionArmeBase', async (info) => {
cRoll.push(aspectValue);
diceDegats = +attrs.druidLionBaseDegats;
bonusDegats.push(attrs.druidLionBaseDegatsBonus);
bonusDegats.push(+attrs.druidLionBaseDegatsBonus);
diceViolence = +attrs.druidLionBaseViolence;
bonusViolence.push(attrs.druidLionBaseViolenceBonus);
bonusViolence.push(+attrs.druidLionBaseViolenceBonus);
// GESTION DES BONUS DIVERS
const bChairD = Math.ceil(vChair / 2);
@@ -178,9 +185,9 @@ on('clicked:druidLionArmeBase', async (info) => {
// GESTION DES ASPECTS EXCEPTIONNELS
if (AEBete > 0) {
let bonusBete = AEBete;
let bonusBete = +AEBete;
if (AEBete > 5) { bonusBete += bete; }
if (AEBete > 5) { bonusBete += +bete; }
exec.push(`{{vBeteD=+${bonusBete}}}`);
bonusDegats.push(bonusBete);
@@ -190,11 +197,11 @@ on('clicked:druidLionArmeBase', async (info) => {
// GESTION DES BONUS SPECIAUX
const sBonusDegats = attrs.coupBDDiversTotal;
const sBonusDegatsD6 = attrs.bDDiversD6;
const sBonusDegatsFixe = attrs.bDDiversFixe;
const sBonusDegatsFixe = +attrs.bDDiversFixe;
const sBonusViolence = attrs.coupBVDiversTotal;
const sBonusViolenceD6 = attrs.bVDiversD6;
const sBonusViolenceFixe = attrs.bVDiversFixe;
const sBonusViolenceFixe = +attrs.bVDiversFixe;
if (sBonusDegats !== '0') {
exec.push(`{{vMSpecialD=+${sBonusDegatsD6}D6+${sBonusDegatsFixe}}}`);
@@ -234,42 +241,61 @@ on('clicked:druidLionArmeBase', async (info) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (isConditionnelA === true) { exec.push('{{succesConditionnel=true}}'); }
if (isConditionnelD === true) { exec.push('{{degatsConditionnel=true}}'); }
if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const finalRoll = await startRoll(exec.join(' '));
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tJet = finalRoll.results.jet.result;
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
degats: tDegats,
violence: tViolence,
},
);
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
@@ -390,6 +416,9 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
'repeating_armeDruidLion_bVDiversFixe',
'repeating_armeDruidLion_energie',
'repeating_armeDruidLion_energieValue',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(wpn, effets, ameliorations, special);
@@ -453,6 +482,17 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
const vMasque = totalADruid(attrs, 'druidLionMasque');
const vAEMasque = +attrs.druidLionMasqueAE;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let isDestructeur = false;
let isFureur = false;
let isMeurtrier = false;
let isUltraviolence = false;
let isSurprise = false;
let isTenebricide = false;
const cRoll = [];
const AE = [];
let bonus = [];
@@ -466,10 +506,10 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
cRoll.push(aspectValue);
diceDegats = Number(attrs.repeating_armeDruidLion_degatDruidLion);
bonusDegats.push(attrs.repeating_armeDruidLion_degatBonusDruidLion);
bonusDegats.push(+attrs.repeating_armeDruidLion_degatBonusDruidLion);
diceViolence = Number(attrs.repeating_armeDruidLion_violenceDruidLion);
bonusViolence.push(attrs.repeating_armeDruidLion_violenceBonusDruidLion);
bonusViolence.push(+attrs.repeating_armeDruidLion_violenceBonusDruidLion);
// GESTION DES BONUS DIVERS
let bChairD = Math.ceil(vChair / 2);
@@ -482,7 +522,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
// GESTION DES ASPECTS EXCEPTIONNELS
if (vAEBete > 0) {
let bonusBete = vAEBete;
let bonusBete = +vAEBete;
if (vAEBete > 5) { bonusBete += vBete; }
@@ -574,6 +614,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
}
if (eAssassin !== '0') {
isConditionnelD = true;
eASAssassin = i18n_assassin;
eASAssassinValue = eAssassinV;
@@ -601,6 +642,8 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{destructeur=${i18n_destructeur}}}`);
exec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
exec.push(`{{destructeurCondition=${i18n_destructeurCondition}}}`);
isDestructeur = true;
}
if (eEnChaine !== '0') {
@@ -622,6 +665,8 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{fureur=${i18n_fureur}}}`);
exec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
exec.push(`{{fureurCondition=${i18n_fureurCondition}}}`);
isFureur = true;
}
if (eLeste !== '0') {
@@ -636,6 +681,8 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{meurtrier=${i18n_meurtrier}}}`);
exec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
exec.push(`{{meurtrierCondition=${i18n_meurtrierCondition}}}`);
isMeurtrier = true;
}
if (eObliteration !== '0') {
@@ -670,6 +717,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
attaquesSurprises.push(i18n_silencieux);
attaquesSurprisesValue.push(totalSilencieux);
isConditionnelD = true;
if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; }
}
@@ -684,17 +732,23 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{tenebricide=${i18n_tenebricide}}}`);
exec.push(`{{tenebricideConditionD=${i18n_tenebricideConditionD}}}`);
exec.push(`{{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
isConditionnelD = true;
isConditionnelV = true;
}
if (eTirRafale !== '0') {
exec.push(`{{tirRafale=${i18n_tirRafale}}}`);
exec.push(`{{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
isConditionnelD = true;
}
if (eUltraviolence !== '0') {
exec.push(`{{ultraviolence=${i18n_ultraviolence}}}`);
exec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
exec.push(`{{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
isConditionnelV = true;
isUltraviolence = true;
}
if (eAntiVehicule !== '0') { autresEffets.push(i18n_antiVehicule); }
@@ -864,11 +918,11 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
// GESTION DES BONUS SPECIAUX
const sBonusDegats = attrs.repeating_armeDruidLion_bDDiversTotal;
const sBonusDegatsD6 = attrs.repeating_armeDruidLion_bDDiversD6;
const sBonusDegatsFixe = attrs.repeating_armeDruidLion_bDDiversFixe;
const sBonusDegatsFixe = +attrs.repeating_armeDruidLion_bDDiversFixe;
const sBonusViolence = attrs.repeating_armeDruidLion_bVDiversTotal;
const sBonusViolenceD6 = attrs.repeating_armeDruidLion_bVDiversD6;
const sBonusViolenceFixe = attrs.repeating_armeDruidLion_bVDiversFixe;
const sBonusViolenceFixe = +attrs.repeating_armeDruidLion_bVDiversFixe;
const sEnergie = attrs.repeating_armeDruidLion_energie;
const sEnergieValue = attrs.repeating_armeDruidLion_energieValue;
@@ -937,47 +991,6 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (eTenebricide !== '0') {
let degatsTenebricide = [];
let ASTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
diceDegatsTenebricide = Math.floor(diceDegats / 2);
diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bonusDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bonusViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
if (eASAssassinValue > 0) {
eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
ASTenebricide.unshift(eASAssassin);
ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
}
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
} else if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
}
}
if (eObliteration !== '0') {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -1032,6 +1045,35 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (eTenebricide !== '0') {
isTenebricide = true;
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
if (isMeurtrier) { firstExec.push('{{tMeurtrierValue=[[0]]}}'); }
if (isDestructeur) { firstExec.push('{{tDestructeurValue=[[0]]}}'); }
if (isFureur) { firstExec.push('{{tFureurValue=[[0]]}}'); }
if (isUltraviolence) { firstExec.push('{{tUltraviolenceValue=[[0]]}}'); }
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (autresEffets.length > 0) { exec.push(`{{effets=${autresEffets.join(' / ')}}}`); }
@@ -1046,84 +1088,68 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => {
if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); }
log(exec);
if (pasDEnergie === false) {
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tJetDice = results.results.jet.dice.length;
const finalRoll = await startRoll(exec.join(' '));
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tJet = finalRoll.results.jet.result;
const tJetDice = finalRoll.results.jet.dice.length;
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const tMeurtrier = results.results.meurtrierValue;
let vTMeurtrier = 0;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const tDestructeur = results.results.destructeurValue;
let vTDestructeur = 0;
const conditions = {
bourreau,
devaste,
equilibre,
isTenebricide,
isSurprise,
isDestructeur,
isFureur,
isMeurtrier,
isUltraviolence,
};
if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const tFureur = results.results.fureurValue;
let vTFureur = 0;
const finalComputed = {
jet: tJet + tBonus,
};
if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
Object.assign(finalComputed, computed);
const tUltraviolence = results.results.ultraviolenceValue;
finishRoll(finalRoll.rollId, finalComputed);
let vTUltraviolence = 0;
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${i18n_exploit}}} {{jet=[[ {[[{${tJetDice}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
finishRoll(exploitRoll.rollId, exploitComputed);
}
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
degats: tDegats,
violence: tViolence,
meurtrierValue: vTMeurtrier,
destructeurValue: vTDestructeur,
fureurValue: vTFureur,
ultraviolenceValue: vTUltraviolence,
},
);
if (sEnergie !== '0') {
setAttrs({
[nEnergie]: newEnergie,
});
if (tJet !== 0 && tJet === tExploit) {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${i18n_exploit}}} {{jet=[[ {[[{${tJetDice}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
if (newEnergie === 0) {
const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`);
finishRoll(noEnergieRoll.rollId, {});
}
if (sEnergie !== '0') {
setAttrs({
[nEnergie]: newEnergie,
});
if (newEnergie === 0) {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
}
}
});
}
} else {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`);
finishRoll(finalRoll.rollId, {});
}
});
@@ -1235,6 +1261,9 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
'MALCoupBVDiversTotal',
'MALBVDiversD6',
'MALBVDiversFixe',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(arme, special);
@@ -1278,6 +1307,10 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
const bete = totalADruid(attrs, 'MALDruidLionBete');
const AEBete = +attrs.MALDruidLionBeteAE;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const cRoll = [];
const AE = [];
let bonus = [];
@@ -1289,10 +1322,10 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
cRoll.push(aspectValue);
diceDegats = Number(attrs.MALDruidLionBaseDegats);
bonusDegats.push(attrs.MALDruidLionBaseDegatsBonus);
bonusDegats.push(+attrs.MALDruidLionBaseDegatsBonus);
diceViolence = Number(attrs.MALDruidLionBaseViolence);
bonusViolence.push(attrs.MALDruidLionBaseViolenceBonus);
bonusViolence.push(+attrs.MALDruidLionBaseViolenceBonus);
// GESTION DES BONUS DIVERS
const bChairD = Math.ceil(vChair / 2);
@@ -1303,9 +1336,9 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
// GESTION DES ASPECTS EXCEPTIONNELS
if (AEBete > 0) {
let bonusBete = AEBete;
let bonusBete = +AEBete;
if (AEBete > 5) { bonusBete += bete; }
if (AEBete > 5) { bonusBete += +bete; }
exec.push(`{{vBeteD=+${bonusBete}}}`);
bonusDegats.push(bonusBete);
@@ -1315,11 +1348,11 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
// GESTION DES BONUS SPECIAUX
const sBonusDegats = attrs.MALCoupBDDiversTotal;
const sBonusDegatsD6 = attrs.MALBDDiversD6;
const sBonusDegatsFixe = attrs.MALBDDiversFixe;
const sBonusDegatsFixe = +attrs.MALBDDiversFixe;
const sBonusViolence = attrs.MALCoupBVDiversTotal;
const sBonusViolenceD6 = attrs.MALBVDiversD6;
const sBonusViolenceFixe = attrs.MALBVDiversFixe;
const sBonusViolenceFixe = +attrs.MALBVDiversFixe;
if (sBonusDegats !== '0') {
exec.push(`{{vMSpecialD=+${sBonusDegatsD6}D6+${sBonusDegatsFixe}}}`);
@@ -1359,42 +1392,61 @@ on('clicked:MALDruidLionArmeBase', async (info) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (isConditionnelA === true) { exec.push('{{succesConditionnel=true}}'); }
if (isConditionnelD === true) { exec.push('{{degatsConditionnel=true}}'); }
if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const finalRoll = await startRoll(exec.join(' '));
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tJet = finalRoll.results.jet.result;
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
degats: tDegats,
violence: tViolence,
},
);
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`$${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
@@ -1515,6 +1567,9 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
'repeating_armeMALDruidLion_bVDiversFixe',
'repeating_armeMALDruidLion_energie',
'repeating_armeMALDruidLion_energieValue',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(wpn, effets, ameliorations, special);
@@ -1578,10 +1633,21 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
const vMasque = totalADruid(attrs, 'MALDruidLionMasque');
const vAEMasque = +attrs.MALDruidLionMasqueAE;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const cRoll = [];
const AE = [];
let bonus = [];
let isDestructeur = false;
let isFureur = false;
let isMeurtrier = false;
let isUltraviolence = false;
let isTenebricide = false;
let isSurprise = false;
AE.push(AEValue);
exec.push(`{{special1B=${arme}}}`);
@@ -1591,10 +1657,10 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
cRoll.push(aspectValue);
diceDegats = +attrs.repeating_armeMALDruidLion_degatDruidLion;
bonusDegats.push(attrs.repeating_armeMALDruidLion_degatBonusDruidLion);
bonusDegats.push(+attrs.repeating_armeMALDruidLion_degatBonusDruidLion);
diceViolence = +attrs.repeating_armeMALDruidLion_violenceDruidLion;
bonusViolence.push(attrs.repeating_armeMALDruidLion_violenceBonusDruidLion);
bonusViolence.push(+attrs.repeating_armeMALDruidLion_violenceBonusDruidLion);
// GESTION DES BONUS DIVERS
let bChairD = Math.ceil(vChair / 2);
@@ -1607,9 +1673,9 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
// GESTION DES ASPECTS EXCEPTIONNELS
if (vAEBete > 0) {
let bonusBete = vAEBete;
let bonusBete = +vAEBete;
if (vAEBete > 5) { bonusBete += vBete; }
if (vAEBete > 5) { bonusBete += +vBete; }
exec.push(`{{vBeteD=+${bonusBete}}}`);
bonusDegats.push(bonusBete);
@@ -1723,6 +1789,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
if (eDestructeur !== '0') {
isConditionnelD = true;
isDestructeur = true;
exec.push(`{{destructeur=${i18n_destructeur}}}`);
exec.push(`{{destructeurValue=[[${eDestructeurV}D6]]}}`);
exec.push(`{{destructeurCondition=${i18n_destructeurCondition}}}`);
@@ -1744,6 +1811,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
if (eFureur !== '0') {
isConditionnelV = true;
isFureur = true;
exec.push(`{{fureur=${i18n_fureur}}}`);
exec.push(`{{fureurValue=[[${eFureurV}D6]]}}`);
exec.push(`{{fureurCondition=${i18n_fureurCondition}}}`);
@@ -1758,6 +1826,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
if (eMeurtrier !== '0') {
isConditionnelD = true;
isMeurtrier = true;
exec.push(`{{meurtrier=${i18n_meurtrier}}}`);
exec.push(`{{meurtrierValue=[[${eMeurtrierV}D6]]}}`);
exec.push(`{{meurtrierCondition=${i18n_meurtrierCondition}}}`);
@@ -1809,17 +1878,26 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
exec.push(`{{tenebricide=${i18n_tenebricide}}}`);
exec.push(`{{tenebricideConditionD=${i18n_tenebricideConditionD}}}`);
exec.push(`{{tenebricideConditionV=${i18n_tenebricideConditionV}}}`);
isTenebricide = true;
isConditionnelD = true;
isConditionnelV = true;
}
if (eTirRafale !== '0') {
exec.push(`{{tirRafale=${i18n_tirRafale}}}`);
exec.push(`{{tirRafaleCondition=${i18n_tirRafaleCondition}}}`);
isConditionnelD = true;
}
if (eUltraviolence !== '0') {
exec.push(`{{ultraviolence=${i18n_ultraviolence}}}`);
exec.push(`{{ultraviolenceValue=[[${eUltraviolenceV}D6]]}}`);
exec.push(`{{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
isConditionnelV = true;
isUltraviolence = true;
}
if (eAntiVehicule !== '0') { autresEffets.push(i18n_antiVehicule); }
@@ -1989,11 +2067,11 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
// GESTION DES BONUS SPECIAUX
const sBonusDegats = attrs.repeating_armeMALDruidLion_bDDiversTotal;
const sBonusDegatsD6 = attrs.repeating_armeMALDruidLion_bDDiversD6;
const sBonusDegatsFixe = attrs.repeating_armeMALDruidLion_bDDiversFixe;
const sBonusDegatsFixe = +attrs.repeating_armeMALDruidLion_bDDiversFixe;
const sBonusViolence = attrs.repeating_armeMALDruidLion_bVDiversTotal;
const sBonusViolenceD6 = attrs.repeating_armeMALDruidLion_bVDiversD6;
const sBonusViolenceFixe = attrs.repeating_armeMALDruidLion_bVDiversFixe;
const sBonusViolenceFixe = +attrs.repeating_armeMALDruidLion_bVDiversFixe;
const sEnergie = attrs.repeating_armeMALDruidLion_energie;
const sEnergieValue = attrs.repeating_armeMALDruidLion_energieValue;
@@ -2062,47 +2140,6 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
if (eTenebricide !== '0') {
let degatsTenebricide = [];
let ASTenebricide = [];
let ASValueTenebricide = [];
let violenceTenebricide = [];
diceDegatsTenebricide = Math.floor(diceDegats / 2);
diceViolenceTenebricide = Math.floor(diceViolence / 2);
degatsTenebricide.push(`${diceDegatsTenebricide}D6`);
degatsTenebricide = degatsTenebricide.concat(bonusDegats);
violenceTenebricide.push(`${diceViolenceTenebricide}D6`);
violenceTenebricide = violenceTenebricide.concat(bonusViolence);
exec.push(`{{tenebricideValueD=[[${degatsTenebricide.join('+')}]]}}`);
exec.push(`{{tenebricideValueV=[[${violenceTenebricide.join('+')}]]}}`);
if (eASAssassinValue > 0) {
eAssassinTenebricideValue = Math.ceil(eASAssassinValue / 2);
ASTenebricide.unshift(eASAssassin);
ASValueTenebricide.unshift(`${eAssassinTenebricideValue}D6`);
if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
}
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
} else if (attaquesSurprises.length > 0) {
ASTenebricide = ASTenebricide.concat(attaquesSurprises);
ASValueTenebricide = ASValueTenebricide.concat(attaquesSurprisesValue);
exec.push(`{{tenebricideAS=${ASTenebricide.join('\n+')}}}`);
exec.push(`{{tenebricideASValue=[[${ASValueTenebricide.join('+')}]]}}`);
}
}
if (eObliteration !== '0') {
let ASObliteration = [];
let ASValueObliteration = [];
@@ -2157,6 +2194,19 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
isConditionnelD = true;
}
if (eTenebricide !== '0') {
isTenebricide = true;
exec.push('{{tenebricideValueD=[[0]]}}');
exec.push('{{tenebricideValueV=[[0]]}}');
if (attaquesSurprises.length > 0) {
exec.push(`{{tenebricideAS=${attaquesSurprises.join('\n+')}}}`);
exec.push('{{tenebricideASValue=[[0]]}}');
}
}
if (autresEffets.length > 0) { exec.push(`{{effets=${autresEffets.join(' / ')}}}`); }
@@ -2172,83 +2222,65 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => {
if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); }
if (pasDEnergie === false) {
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tJetDice = results.results.jet.dice.length;
const finalRoll = await startRoll(exec.join(' '));
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tJet = finalRoll.results.jet.result;
const tJetDice = finalRoll.results.jet.dice.length;
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const tMeurtrier = results.results.meurtrierValue;
let vTMeurtrier = 0;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tMeurtrier !== undefined) { vTMeurtrier = tMeurtrier.dice[0]; }
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const tDestructeur = results.results.destructeurValue;
let vTDestructeur = 0;
const conditions = {
bourreau,
devaste,
equilibre,
isTenebricide,
isSurprise,
isDestructeur,
isFureur,
isMeurtrier,
isUltraviolence,
};
if (tDestructeur !== undefined) { vTDestructeur = tDestructeur.dice[0]; }
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const tFureur = results.results.fureurValue;
let vTFureur = 0;
const finalComputed = {
jet: tJet + tBonus,
};
if (tFureur !== undefined) { vTFureur = tFureur.dice[0] + tFureur.dice[1]; }
Object.assign(finalComputed, computed);
const tUltraviolence = results.results.ultraviolenceValue;
finishRoll(finalRoll.rollId, finalComputed);
let vTUltraviolence = 0;
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${i18n_exploit}}} {{jet=[[ {[[{${tJetDice}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
if (tUltraviolence !== undefined) { vTUltraviolence = tUltraviolence.dice[0]; }
finishRoll(exploitRoll.rollId, exploitComputed);
}
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
degats: tDegats,
violence: tViolence,
meurtrierValue: vTMeurtrier,
destructeurValue: vTDestructeur,
fureurValue: vTFureur,
ultraviolenceValue: vTUltraviolence,
},
);
if (sEnergie !== '0') {
setAttrs({
[nEnergie]: newEnergie,
});
if (tJet !== 0 && tJet === tExploit) {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${i18n_exploit}}} {{jet=[[ {[[{${tJetDice}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
if (newEnergie === 0) {
const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`);
finishRoll(noEnergieRoll.rollId, {});
}
if (sEnergie !== '0') {
setAttrs({
[nEnergie]: newEnergie,
});
if (newEnergie === 0) {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
}
}
});
}
} else {
startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`, (text) => {
finishRoll(
text.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${arme}}} {{text=${sEnergieText}}}`);
finishRoll(finalRoll.rollId, {});
}
});
@@ -2315,7 +2347,11 @@ druidRollFighter.forEach((button) => {
on(`clicked:${button}`, async (info) => {
const roll = info.htmlAttributes.value;
const attributs = [];
const attributs = [
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
let nbreW = '';
if (button === 'DWolfFighterRoll') { nbreW = 'druidNombreCompagnon'; } else if (button === 'MALDWolfFighterN1Roll') { nbreW = 'MALDruidNombreCompagnon'; }
@@ -2329,6 +2365,10 @@ druidRollFighter.forEach((button) => {
const exec = [];
exec.push(roll);
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const degats = [];
const violence = [];
@@ -2338,18 +2378,35 @@ druidRollFighter.forEach((button) => {
exec.push(`{{degats=[[${degats.join('+')}]]}}`);
exec.push(`{{violence=[[${violence.join('+')}]]}}`);
startRoll(exec.join(' '), (results) => {
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
degats: tDegats,
violence: tViolence,
},
);
});
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [], tViolence, rViolence, [], conditions);
finishRoll(finalRoll.rollId, computed);
});
});
+342 -98
View File
@@ -301,6 +301,9 @@ for (let i = 0; i < rollMAImprovise; i += 1) {
`${ODValue.tir}`,
'combat',
`${ODValue.combat}`,
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
const arme = [];
@@ -358,6 +361,12 @@ for (let i = 0; i < rollMAImprovise; i += 1) {
const attaquesSurprisesValue = [];
const attaquesSurprisesCondition = '';
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let isSurprise = false;
const autresEffets = [];
exec.push('{{OD=true}}');
@@ -458,6 +467,18 @@ for (let i = 0; i < rollMAImprovise; i += 1) {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (autresEffets.length > 0) {
@@ -467,32 +488,45 @@ for (let i = 0; i < rollMAImprovise; i += 1) {
if (isConditionnelD) { exec.push('{{degatsConditionnel=true}}'); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const finalRoll = await startRoll(exec.join(' '));
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
const tJet = finalRoll.results.jet.result;
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
},
);
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const rDegats = finalRoll.results.degats.dice;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const rViolence = finalRoll.results.violence.dice;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
isSurprise,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
}
@@ -641,6 +675,9 @@ rollCombatArchangel.forEach((button) => {
'canonMetatronCaracteristique4',
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
@@ -751,32 +788,58 @@ rollCombatArchangel.forEach((button) => {
break;
}
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
},
);
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const finalRoll = await startRoll(exec.join(' '));
const tJet = finalRoll.results.jet.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
});
@@ -795,6 +858,14 @@ rollNephilim.forEach((button) => {
let tours;
let degats;
let violence;
let devaste = false;
let bourreau = false;
let equilibre = false;
let isMeurtrier = false;
let isFureur = false;
const effets = [];
exec.push(base);
@@ -817,6 +888,16 @@ rollNephilim.forEach((button) => {
break;
case 'MANOGStationMissile':
attrs = await getAttrsAsync([
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
]);
devaste = +attrs.devasterAnatheme;
bourreau = +attrs.bourreauTenebres;
equilibre = +attrs.equilibreBalance;
degats = roll[1];
violence = roll[2];
@@ -828,9 +909,19 @@ rollNephilim.forEach((button) => {
break;
case 'MANOGStationRoquette':
attrs = await getAttrsAsync([
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
]);
degats = roll[1];
violence = roll[2];
devaste = +attrs.devasterAnatheme;
bourreau = +attrs.bourreauTenebres;
equilibre = +attrs.equilibreBalance;
exec.push(`{{degats=[[${degats}]]}} {{violence=[[${violence}]]}}`);
break;
@@ -838,6 +929,9 @@ rollNephilim.forEach((button) => {
attrs = await getAttrsAsync([
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
]);
degats = attrs[roll[1]];
@@ -848,15 +942,46 @@ rollNephilim.forEach((button) => {
effets.push(i18n_briserResilience);
effets.sort();
isMeurtrier = true;
isFureur = true;
exec.push(`{{degats=[[${degats}]]}} {{degatsConditionnel=true}} {{meurtrier=${i18n_meurtrier}}} {{meurtrierValue=[[2D6]]}} {{meurtrierCondition=${i18n_meurtrierCondition}}} {{violence=[[${violence}]]}} {{violenceConditionnel=true}} {{fureur=${i18n_fureur}}} {{fureurValue=[[2D6]]}} {{fureurCondition=${i18n_fureurCondition}}} {{antiAnatheme=${i18n_antiAnatheme}}} {{antiAnathemeCondition=${i18n_antiAnathemeCondition}}} {{effets=${effets.join(' / ')}}}`);
break;
}
startRoll(exec.join(' '), (results) => {
finishRoll(
results.rollId, {},
);
});
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
const finalRoll = await startRoll(exec.join(' '));
let computed = {};
if (button === 'MANOGStationMissile' || button === 'MANOGStationRoquette' || button === 'MANMJ') {
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
isFureur,
isMeurtrier,
};
computed = updateRoll(finalRoll, tDegats, rDegats, [], tViolence, rViolence, [], conditions);
}
finishRoll(finalRoll.rollId, computed);
});
});
@@ -892,6 +1017,8 @@ rollCombatNephilim.forEach((button) => {
let bDegats;
let violence;
let bViolence;
let isFureur = false;
let isUltraviolence = false;
let getStyle;
@@ -911,6 +1038,9 @@ rollCombatNephilim.forEach((button) => {
'canonMagmaCaracteristique2',
'canonMagmaCaracteristique3',
'canonMagmaCaracteristique4',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
@@ -920,6 +1050,8 @@ rollCombatNephilim.forEach((button) => {
bCarac = attrs.bonusCarac;
mod = +attrs.jetModifDes;
isFureur = true;
C1 = attrs.canonMagmaCaracteristique1;
C2 = attrs.canonMagmaCaracteristique2;
C3 = attrs.canonMagmaCaracteristique3;
@@ -1022,12 +1154,17 @@ rollCombatNephilim.forEach((button) => {
'MSurturCaracteristique2',
'MSurturCaracteristique3',
'MSurturCaracteristique4',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
attrs = await getAttrsAsync(listAttrs);
isUltraviolence = true;
bCarac = attrs.bonusCarac;
mod = +attrs.jetModifDes;
@@ -1127,32 +1264,60 @@ rollCombatNephilim.forEach((button) => {
break;
}
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
},
);
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const finalRoll = await startRoll(exec.join(' '));
const tJet = finalRoll.results.jet.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
isFureur,
isUltraviolence,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
});
@@ -1169,6 +1334,8 @@ rollDemon.forEach((button) => {
let degats;
let violence;
let bDegats = 0;
let bViolence = 0;
exec.push(base);
@@ -1178,11 +1345,17 @@ rollDemon.forEach((button) => {
attrs = await getAttrsAsync([
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
]);
degats = attrs[roll[1]];
violence = attrs[roll[2]];
bDegats = +degats.split('+')[1];
bViolence = +violence.split('+')[1];
exec.push(`{{degats=[[${degats}]]}} {{violence=[[${violence}]]}} {{effets=^{CDF-desactive-pendant} [[1D3]] ^{tours}}}`);
break;
@@ -1190,6 +1363,9 @@ rollDemon.forEach((button) => {
attrs = await getAttrsAsync([
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
]);
degats = attrs[roll[1]];
@@ -1199,11 +1375,37 @@ rollDemon.forEach((button) => {
break;
}
startRoll(exec.join(' '), (results) => {
finishRoll(
results.rollId, {},
);
});
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
const finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
finishRoll(finalRoll.rollId, computed);
});
});
@@ -1261,6 +1463,9 @@ rollCombatDemon.forEach((button) => {
'DSouffleCaracteristique4',
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
@@ -1370,6 +1575,9 @@ rollCombatDemon.forEach((button) => {
'caracteristiqueWraith4',
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attrs = await getAttrsAsync(listAttrs);
@@ -1455,6 +1663,9 @@ rollCombatDemon.forEach((button) => {
'APoingsCaracteristique4',
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
@@ -1563,6 +1774,9 @@ rollCombatDemon.forEach((button) => {
'LCGCaracteristique4',
roll[1],
roll[2],
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
listAttrs = listAttrs.concat(listStyle);
@@ -1668,31 +1882,61 @@ rollCombatDemon.forEach((button) => {
break;
}
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
if (button !== 'MADjinnWraith') {
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
},
);
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
});
}
const finalRoll = await startRoll(exec.join(' '));
const tJet = finalRoll.results.jet.result;
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
const finalComputed = {
jet: tJet + tBonus,
};
if (button !== 'MADjinnWraith') {
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions);
Object.assign(finalComputed, computed);
}
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:mechaArmure} {{special1=@{mechaArmureNom}}} {{special1B=${i18n_exploit}}}${jet}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
});
+64 -27
View File
@@ -168,6 +168,9 @@ monkCeaRoll.forEach((button) => {
ODValue.tir,
ODValue.discretion,
'discretion',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
const attDegats = [];
@@ -246,6 +249,15 @@ monkCeaRoll.forEach((button) => {
let degats = [];
let violence = [];
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let isSurprise = false;
let isDestructeur = false;
let isMeurtrier = false;
let isUltraviolence = false;
const autresEffets = [];
exec.push(roll);
@@ -330,6 +342,7 @@ monkCeaRoll.forEach((button) => {
isConditionnelA = true;
isConditionnelD = true;
isDestructeur = true;
if (PG250 === 1) { exec.push(`{{parasitage=${i18n_parasitage} 4}}`); } else { exec.push(`{{parasitage=${i18n_parasitage} 2}}`); }
@@ -354,6 +367,8 @@ monkCeaRoll.forEach((button) => {
isConditionnelA = true;
isConditionnelD = true;
isConditionnelV = true;
isMeurtrier = true;
isUltraviolence = true;
exec.push(`{{parasitage=${i18n_parasitage} 1}}`);
exec.push(`{{parasitageCondition=${i18n_parasitageCondition}}}`);
@@ -530,6 +545,17 @@ monkCeaRoll.forEach((button) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (isConditionnelA === true) { exec.push('{{succesConditionnel=true}}'); }
@@ -540,37 +566,48 @@ monkCeaRoll.forEach((button) => {
if (autresEffets.length > 0) { exec.push(`{{effets=${autresEffets.join(' / ')}}}`); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tBonus = results.results.tBonus.result;
const tExploit = results.results.Exploit.result;
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const total = tJet + tBonus;
const tJet = finalRoll.results.jet.result;
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tBonus = finalRoll.results.tBonus.result;
const tExploit = finalRoll.results.Exploit.result;
finishRoll(
results.rollId,
{
jet: total,
degats: tDegats,
violence: tViolence,
},
);
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const conditions = {
bourreau,
devaste,
equilibre,
isDestructeur,
isMeurtrier,
isUltraviolence,
isSurprise,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
});
+74 -43
View File
@@ -88,6 +88,9 @@ on('clicked:distanceRangerLongbow', async (info) => {
'bVDiversTotalRanger',
'bVDiversD6',
'bVDiversFixe',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(arme, evolutions, effets, ameliorations, special, listBase, listArmureLegende, listStyle);
@@ -118,6 +121,10 @@ on('clicked:distanceRangerLongbow', async (info) => {
let attaquesSurprisesValue = [];
let attaquesSurprisesCondition = '';
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const portee = attrs.rangerArmePortee;
const autresEffets = [];
const autresAmeliorations = [];
@@ -126,6 +133,10 @@ on('clicked:distanceRangerLongbow', async (info) => {
const energie = attrs.energiePJ;
let energieDepense = 0;
let isSurprise = false;
let isFureur = false;
let isUltraviolence = false;
if (PG50_2 === 'on') {
diceDegats = Number(attrs.rangerArmeDegatEvol.split('D')[0]);
diceViolence = Number(attrs.rangerArmeViolenceEvol.split('D')[0]);
@@ -169,9 +180,9 @@ on('clicked:distanceRangerLongbow', async (info) => {
let C3Nom = '';
let C4Nom = '';
const vDiscretion = attrs.discretion;
const oDiscretion = attrs[ODValue.discretion];
const oTir = attrs[ODValue.tir];
const vDiscretion = +attrs.discretion;
const oDiscretion = +attrs[ODValue.discretion];
const oTir = +attrs[ODValue.tir];
let E1 = 2;
let E2 = 3;
@@ -310,6 +321,8 @@ on('clicked:distanceRangerLongbow', async (info) => {
}
if (eUltraviolence !== '0') {
isUltraviolence = true;
exec.push(`{{ultraviolence=${i18n_ultraviolence}}}`);
exec.push('{{ultraviolenceValue=[[2D6]]}}');
exec.push(`{{ultraviolenceCondition=${i18n_ultraviolenceCondition}}}`);
@@ -351,6 +364,7 @@ on('clicked:distanceRangerLongbow', async (info) => {
}
if (eFureur !== '0') {
isFureur = true;
isConditionnelV = true;
exec.push(`{{fureur=${i18n_fureur}}}`);
exec.push('{{fureurValue=[[4D6]]}}');
@@ -726,64 +740,81 @@ on('clicked:distanceRangerLongbow', async (info) => {
exec.push(`{{attaqueSurprise=${attaquesSurprises.join('\n+')}}}`);
exec.push(`{{attaqueSurpriseValue=[[${attaquesSurprisesValue.join('+')}]]}}`);
exec.push(attaquesSurprisesCondition);
isSurprise = true;
}
if (rChambreDouble !== 0) { exec.push(`{{vChambreDouble=${rChambreDouble}}}`); }
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (isConditionnelA === true) { exec.push('{{succesConditionnel=true}}'); }
if (isConditionnelD === true) { exec.push('{{degatsConditionnel=true}}'); }
if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); }
let finalRoll;
if (!pasEnergie) {
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tBonus = results.results.bonus.result;
const tExploit = results.results.Exploit.result;
finalRoll = await startRoll(exec.join(' '));
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tJet = finalRoll.results.jet.result;
finishRoll(
results.rollId,
{
jet: tJet + tBonus,
degats: tDegats,
violence: tViolence,
},
);
const tBonus = finalRoll.results.bonus.result;
const tExploit = finalRoll.results.Exploit.result;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
setAttrs({
energiePJ: resultatEnergie,
});
const conditions = {
bourreau,
devaste,
equilibre,
isFureur,
isUltraviolence,
isSurprise,
};
if (resultatEnergie === 0) {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=^{ranger-fusil-longbow}}} {{text=${i18n_plusEnergie}}}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
}
const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
setAttrs({
energiePJ: resultatEnergie,
});
if (resultatEnergie === 0) {
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=^{ranger-fusil-longbow}}} {{text=${i18n_plusEnergie}}}`);
finishRoll(finalRoll.rollId, {});
}
} else {
startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=^{ranger-fusil-longbow}}} {{text=${i18n_pasEnergie}}}`, (exploit) => {
finishRoll(
exploit.rollId, {},
);
});
finalRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=^{ranger-fusil-longbow}}} {{text=${i18n_pasEnergie}}}`);
finishRoll(finalRoll.rollId, {});
}
});
+119 -49
View File
@@ -20,6 +20,9 @@ on('clicked:distanceWizardBorealis', async (info) => {
'calODCom',
'discretion',
ODValue.discretion,
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(listBase, listStyle, listArmureLegende);
@@ -62,6 +65,10 @@ on('clicked:distanceWizardBorealis', async (info) => {
let bonus = [];
let OD = 0;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
let ODMALBarbarian = [];
const ODMALWarrior = [];
let ODMALShaman = [];
@@ -248,40 +255,57 @@ on('clicked:distanceWizardBorealis', async (info) => {
exec.push(`{{antiAnatheme=${i18n_antiAnatheme}}}`);
exec.push(`{{antiAnathemeCondition=${i18n_antiAnathemeCondition}}}`);
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
if (isConditionnel === true) { exec.push('{{conditionnel=true}}'); }
startRoll(exec.join(' '), (results) => {
const tJet = results.results.jet.result;
const tBonus = results.results.tBonus.result;
const tExploit = results.results.Exploit.result;
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
const tJet = finalRoll.results.jet.result;
const total = tJet + tBonus;
const tBonus = finalRoll.results.tBonus.result;
const tExploit = finalRoll.results.Exploit.result;
finishRoll(
results.rollId,
{
jet: total,
degats: tDegats,
violence: tViolence,
},
);
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
if (tJet !== 0 && tJet === tExploit) {
startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`, (exploit) => {
const tExploit2 = exploit.results.jet.result;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
finishRoll(
exploit.rollId,
{
jet: tExploit2,
},
);
});
}
});
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [], tViolence, rViolence, [], conditions);
const finalComputed = {
jet: tJet + tBonus,
};
Object.assign(finalComputed, computed);
finishRoll(finalRoll.rollId, finalComputed);
if (tJet !== 0 && tJet === tExploit) {
const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}{{jet=[[ {[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`);
const tRExploit = exploitRoll.results.jet.result;
const exploitComputed = {
jet: tRExploit,
};
finishRoll(exploitRoll.rollId, exploitComputed);
}
});
on('clicked:distanceWizardOriflamme', async (info) => {
@@ -291,6 +315,9 @@ on('clicked:distanceWizardOriflamme', async (info) => {
'wizardODmg',
'wizardOViolence',
'wizardOPortee',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(listArmureLegende);
@@ -314,6 +341,10 @@ on('clicked:distanceWizardOriflamme', async (info) => {
const violence = attrs.wizardOViolence;
const portee = attrs.wizardOPortee;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
exec.push(roll);
switch (armureL) {
@@ -374,18 +405,34 @@ on('clicked:distanceWizardOriflamme', async (info) => {
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
startRoll(exec.join(' '), (results) => {
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
if (devaste || bourreau || equilibre) {
const herauts = [];
finishRoll(
results.rollId,
{
degats: tDegats,
violence: tViolence,
},
);
});
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
// ROLL
const finalRoll = await startRoll(exec.join(' '));
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [], tViolence, rViolence, [], conditions);
finishRoll(finalRoll.rollId, computed);
});
on('clicked:distanceMALWizardOriflamme', async (info) => {
@@ -395,6 +442,9 @@ on('clicked:distanceMALWizardOriflamme', async (info) => {
'MALWizardODmg',
'MALWizardOViolence',
'MALWizardOPortee',
'devasterAnatheme',
'bourreauTenebres',
'equilibreBalance',
];
attributs = attributs.concat(listArmureLegende);
@@ -409,6 +459,10 @@ on('clicked:distanceMALWizardOriflamme', async (info) => {
const violence = attrs.MALWizardOViolence;
const portee = attrs.MALWizardOPortee;
const devaste = +attrs.devasterAnatheme;
const bourreau = +attrs.bourreauTenebres;
const equilibre = +attrs.equilibreBalance;
const autresEffets = [];
let MALGoliath;
@@ -476,18 +530,34 @@ on('clicked:distanceMALWizardOriflamme', async (info) => {
exec.push(`{{affecteAnathemeD=${i18n_affecteAnatheme}}}`);
exec.push(`{{affecteAnathemeV=${i18n_affecteAnatheme}}}`);
if (devaste || bourreau || equilibre) {
const herauts = [];
if (devaste) { herauts.push(i18n_devasterAnatheme); }
if (bourreau) { herauts.push(i18n_bourreauTenebres); }
if (equilibre) { herauts.push(i18n_equilibrerBalance); }
exec.push(`{{herauts=${herauts.join(' / ')}}}`);
}
exec.push(`{{effets=${autresEffets.join(' / ')}}}`);
startRoll(exec.join(' '), (results) => {
const tDegats = results.results.degats.result;
const tViolence = results.results.violence.result;
// ROLL
const finalRoll = await startRoll(exec.join(' '));
finishRoll(
results.rollId,
{
degats: tDegats,
violence: tViolence,
},
);
});
const rDegats = finalRoll.results.degats.dice;
const rViolence = finalRoll.results.violence.dice;
const tDegats = finalRoll.results.degats.result;
const tViolence = finalRoll.results.violence.result;
const conditions = {
bourreau,
devaste,
equilibre,
};
const computed = updateRoll(finalRoll, tDegats, rDegats, [], tViolence, rViolence, [], conditions);
finishRoll(finalRoll.rollId, computed);
});
+7
View File
@@ -164,6 +164,13 @@ div(class="content")
value="0"
)
input(
type="hidden"
name="attr_chevaliersHerauts"
class="herauts"
value="0"
)
include html/tab/dossier.html
include html/tab/armure.html
include html/tab/combat.html
+8
View File
@@ -1308,4 +1308,12 @@ input[type="hidden"].phase2 {
color:$white;
}
}
}
input[type="hidden"].herauts {
&[value="0"] {
& ~ div div.herauts {
display:none;
}
}
}
+52
View File
@@ -20,6 +20,10 @@ div.tabArmure {
display:flex;
}
h1.titre {
text-transform:capitalize;
}
input[type="number"] {
width: 100%;
border: 0px;
@@ -695,6 +699,54 @@ div.tabArmure {
}
}
div.herauts {
@include block($sombre);
@include titre($white);
h1.titre {
display:flex;
}
div {
display:flex;
width:100%;
background:$clair;
justify-content: space-between;
flex-wrap: wrap;
padding-right:2px;
padding-left:2px;
button[type="action"] {
display:flex;
width:calc((100% / 2) - 5px);
background:$clair;
color:$black;
justify-content: center;
border:1px solid $black;
padding:0px;
margin-top:2px;
margin-bottom:2px;
font-weight:bold;
height: 25px;
line-height: 25px;
&:nth-of-type(3) {
margin-left:auto;
margin-right:auto;
}
}
input[type="hidden"] {
&.devasterAnatheme[value="1"] ~ button[type="action"].devasterAnatheme,
&.bourreauTenebres[value="1"] ~ button[type="action"].bourreauTenebres,
&.equilibreBalance[value="1"] ~ button[type="action"].equilibreBalance {
background:$sombre;
color:$white;
}
}
}
}
div.barbarianGoliath {
@include block($sombre);
@include titre($white);
+53
View File
@@ -42,6 +42,10 @@ div.tabCombat {
height: 28px;
}
h1.titre {
text-transform:capitalize;
}
div.ligneTitre {
display:flex;
width:100%;
@@ -605,6 +609,55 @@ div.tabCombat {
}
}
}
div.herauts {
@include block($sombre);
@include titre($white);
h1.titre {
display:flex;
}
div {
display:flex;
width:100%;
background:$clair;
justify-content: space-between;
flex-wrap: wrap;
padding-right:2px;
padding-left:2px;
button[type="action"] {
display:flex;
width:calc((100% / 2) - 5px);
background:$clair;
color:$black;
justify-content: center;
border:1px solid $black;
padding:0px;
margin-top:2px;
margin-bottom:2px;
font-weight:bold;
height: 25px;
line-height: 25px;
&:nth-of-type(3) {
margin-left:auto;
margin-right:auto;
}
}
input[type="hidden"] {
&.devasterAnatheme[value="1"] ~ button[type="action"].devasterAnatheme,
&.bourreauTenebres[value="1"] ~ button[type="action"].bourreauTenebres,
&.equilibreBalance[value="1"] ~ button[type="action"].equilibreBalance {
background:$sombre;
color:$white;
}
}
}
}
//COL DROITE PJ/PNJ/CREATURES
label.BMJets {
+48
View File
@@ -48,6 +48,54 @@ div.tabVehicule {
}
}
div.herauts {
@include block($sombre);
@include titre($white);
h1.titre {
display:flex;
}
div {
display:flex;
width:100%;
background:$clair;
justify-content: space-between;
flex-wrap: wrap;
padding-right:2px;
padding-left:2px;
button[type="action"] {
display:flex;
width:calc((100% / 2) - 5px);
background:$clair;
color:$black;
justify-content: center;
border:1px solid $black;
padding:0px;
margin-top:2px;
margin-bottom:2px;
font-weight:bold;
height: 25px;
line-height: 25px;
&:nth-of-type(3) {
margin-left:auto;
margin-right:auto;
}
}
input[type="hidden"] {
&.devasterAnatheme[value="1"] ~ button[type="action"].devasterAnatheme,
&.bourreauTenebres[value="1"] ~ button[type="action"].bourreauTenebres,
&.equilibreBalance[value="1"] ~ button[type="action"].equilibreBalance {
background:$sombre;
color:$white;
}
}
}
}
div.jet {
$titre:(
"titre":(
+17 -2
View File
@@ -227,11 +227,11 @@
font-weight: normal;
>* {
width:max-content;
width:100%;
font-size:inherit;
font-weight:inherit;
line-height: inherit;
padding-right:2px;
padding:0px;
}
.inlinerollresult {
@@ -245,6 +245,21 @@
}
}
div.sheet-ligneFullHerauts {
display: flex;
width: 100%;
background: $clair;
line-height: 16px;
flex-wrap: wrap;
justify-content: center;
word-wrap: anywhere;
min-height: 28px;
align-content: center;
font-weight: bold;
font-size: 12px;
text-align:center;
}
.sheet-space {
>span {
&:last-of-type {
+4 -1
View File
@@ -1281,5 +1281,8 @@
"pistolet-de-service":"Pistolet de Service",
"marteau-epieu-contact":"Marteau-Épieu (Contact)",
"marteau-epieu-distance":"Marteau-Épieu (Distance)",
"coup-poing-pied":"Coup de poing/pied"
"coup-poing-pied":"Coup de poing/pied",
"devaster-anatheme":"Dévaster l'Anathème actif",
"bourreau-tenebres":"Bourreau des ténèbres actif",
"equilibrer-balance":"Équilibrer la balance actif"
}