[Knight] Bugfix + add features
This commit is contained in:
+274
-2
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Vendored
+4627
File diff suppressed because it is too large
Load Diff
+38
-4
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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
@@ -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
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -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
|
||||
});
|
||||
|
||||
@@ -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, {});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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, {});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1308,4 +1308,12 @@ input[type="hidden"].phase2 {
|
||||
color:$white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
input[type="hidden"].herauts {
|
||||
&[value="0"] {
|
||||
& ~ div div.herauts {
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
@@ -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,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":(
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user