diff --git a/Knight/knight.css b/Knight/knight.css index ad1ce22157..e7d3b01b85 100644 --- a/Knight/knight.css +++ b/Knight/knight.css @@ -11382,6 +11382,23 @@ div.charsheet > div.content div.tabArmure div.DCLion div.armes div.ligneTitre di width: calc(100% - 28px); margin-right: 28px; } +div.charsheet > div.content div.tabArmure div.DCLion div.armes input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 99px; + margin-right: 0px !important; +} div.charsheet > div.content div.tabArmure div.DCLion div.armes div.coups { /* ///PARAMETRES EXISTANTS\\\ @@ -11773,6 +11790,11 @@ div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem div.l padding-left: 15px; border-right: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem div.bonus { + display: none; + width: 100%; + justify-content: flex-end; +} div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem div.effets, div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem div.ameliorationsArmes, div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem div.special { @@ -11942,6 +11964,123 @@ div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem input div.charsheet > div.content div.tabArmure div.DCLion div.armes div.repitem input[type=hidden].subMenu[value="3"] ~ div.special { display: flex; } +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.cadence { + display: none; + width: 382px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.cadence span { + width: 236px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.cadence select { + width: 142px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 140px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabArmure div.DCLion div.modules { display: none; width: 100%; @@ -16786,6 +16925,23 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes width: calc(100% - 28px); margin-right: 28px; } +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 99px; + margin-right: 0px !important; +} div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.coups { /* ///PARAMETRES EXISTANTS\\\ @@ -17177,6 +17333,11 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes padding-left: 15px; border-right: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.repitem div.bonus { + display: none; + width: 100%; + justify-content: flex-end; +} div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.repitem div.effets, div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.repitem div.ameliorationsArmes, div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.repitem div.special { @@ -17346,6 +17507,123 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.repitem input[type=hidden].subMenu[value="3"] ~ div.special { display: flex; } +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.cadence { + display: none; + width: 382px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.cadence span { + width: 236px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.cadence select { + width: 142px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 140px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.armes div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.subTabArmure div.DCLion div.modules { display: none; width: 100%; @@ -20879,10 +21157,12 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow inp div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus { display: flex; } -div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnage span { +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnage span, +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnageDetails span { border-right: 1px solid RGB(93, 111, 179); } -div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnage input[type=number] { +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnage input[type=number], +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div.bonus label.pilonnageDetails input[type=number] { border-left: 0px; } div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="1"] ~ div div.bonusCarac { @@ -20899,10 +21179,12 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow inp div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus { display: flex; } -div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnage span { +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnage span, +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnageDetails span { border-right: 1px solid RGB(93, 111, 179); } -div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnage input[type=number] { +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnage input[type=number], +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div.bonus label.pilonnageDetails input[type=number] { border-left: 0px; } div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].bonusCarac[value="2"] ~ div div.bonusCarac { @@ -20923,6 +21205,9 @@ div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow inp div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnage { display: flex; } +div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnageDetails { + display: flex; +} div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].PG50[value=on] ~ div.eCol3, div.charsheet > div.content div.tabCombat div.subTabArmure div.rangerLongbow input[type=hidden].PG50[value=on] ~ div.eCol3BL { width: 33.3333333333%; } @@ -25732,6 +26017,45 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.poing { /* ///PARAMETRES EXISTANTS\\\ @@ -25793,6 +26117,7 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.poing div.bonus { display: none; + flex-wrap: wrap; width: 100%; justify-content: flex-end; } @@ -25887,11 +26212,14 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection1 div.bonus, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection2 div.bonus { display: none; + flex-wrap: wrap; width: 100%; justify-content: flex-end; } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection1 label.precis, -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection2 label.precis { +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection1 label.guidage, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection2 label.precis, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection2 label.guidage { display: none; } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.armeSection1 div.bonusCarac, @@ -25984,6 +26312,7 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.repitem div.bonus { display: none; + flex-wrap: wrap; width: 100%; justify-content: flex-end; } @@ -26093,6 +26422,63 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL padding-left: 15px; border-right: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.simple { + justify-content: space-between; + width: 150px; + height: 23px; + margin: 2px; + border: 1px solid black; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.simple input[type=checkbox]:not(:checked) ~ span::before { + background: RGB(213, 215, 237); + color: black; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.precis { display: none; } @@ -26125,6 +26511,70 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesL border-left: 1px solid RGB(93, 111, 179); border-right: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.ameliorationsStructurelles, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabMelee div.armesListe div.ameliorationsArmes, @@ -26580,6 +27030,45 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.arm width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px !important; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection1, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection2 { /* @@ -26650,11 +27139,12 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.arm div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection1 div.bonus, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection2 div.bonus { display: none; + flex-wrap: wrap; width: 100%; justify-content: flex-end; } -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection1 label.precis, -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection2 label.precis { +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection1 label.guidage, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection2 label.guidage { display: none; } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.armeSection1 div.bonusCarac, @@ -26856,14 +27346,65 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.arm padding-left: 15px; border-right: 1px solid RGB(93, 111, 179); } -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnage { +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnage, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnageDetails { display: none; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.guidage { + margin-right: 29px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnage { display: none; + width: 241px; background: RGB(213, 215, 237); justify-content: space-between; border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnage span { width: max-content; @@ -26891,13 +27432,119 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.arm border-right: 1px solid RGB(93, 111, 179); padding-left: 15px; } -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnage:first-of-type { - width: 241px; -} -div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnage:last-of-type { +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails { + display: none; width: 381px; border-left: 1px solid RGB(93, 111, 179); padding-right: 28px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails span { + width: max-content; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails input[type=number] { + width: 121px; + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails select { + width: 131px; + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); + padding-left: 15px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails:first-of-type { + width: 241px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.pilonnageDetails:last-of-type { + width: 381px; + border-left: 1px solid RGB(93, 111, 179); + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; } div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance div.armesListe div.ameliorationsArmes, @@ -27128,6 +27775,12 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[t div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnage { display: flex; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnageDetails { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].styleCombat[value=pilonnage] ~ div label.guidage { + margin-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div.titre button[type=action].bonusCaracL1 { box-shadow: 0px 0px 7px 0px #000000 inset; } @@ -27141,6 +27794,21 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[t div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonus label.pilonnage input[type=number] { border-right: 0px; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonus label.cadence { + width: 362px; + padding-right: 0px !important; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonus label.cadence span { + width: 238px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonus label.cadence select { + width: 121px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonus label.guidage { + margin-right: 0px !important; + width: 121px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="1"] ~ div div.bonusCarac { display: flex; } @@ -27162,6 +27830,21 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[t div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonus label.pilonnage input[type=number] { border-right: 0px; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonus label.cadence { + width: 362px; + padding-right: 0px !important; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonus label.cadence span { + width: 238px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonus label.cadence select { + width: 121px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonus label.guidage { + margin-right: 0px !important; + width: 121px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabDistance input[type=hidden].bonusCarac[value="2"] ~ div div.bonusCarac { display: flex; } @@ -27677,6 +28360,45 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesL width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px !important; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.repcontainer { display: flex; width: 100%; @@ -27742,6 +28464,11 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesL div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.repitem > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.repitem div.bonus { + display: none; + width: 100%; + justify-content: flex-end; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.ligne { width: 100%; justify-content: space-between; @@ -27852,6 +28579,123 @@ div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesL div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.ligne div.armeJet input[type=number].bonus { text-align: left; } +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.cadence { + display: none; + width: 372px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.cadence span { + width: 236px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.cadence select { + width: 131px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.ameliorationsArmes, div.charsheet > div.content div.tabCombat div.armesPJ div.subTabAutre div.armesListe div.special { @@ -28211,6 +29055,45 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armes width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection1, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection2 { /* @@ -28278,6 +29161,19 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armes div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection2 > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection1 div.bonus, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection2 div.bonus { + display: none; + flex-wrap: wrap; + width: 100%; + justify-content: flex-end; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection1 label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection1 label.guidage, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection2 label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.armeSection2 label.guidage { + display: none; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.repcontainer { display: flex; width: 100%; @@ -28343,6 +29239,16 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armes div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.repitem > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.repitem div.bonus { + display: none; + flex-wrap: wrap; + width: 100%; + justify-content: flex-end; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.repitem label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.repitem label.guidage { + display: none; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.ligne { width: 100%; justify-content: space-between; @@ -28496,6 +29402,159 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armes div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.ligne div.armeAspect button[type=action] { border-left: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.simple { + justify-content: space-between; + width: 150px; + height: 23px; + margin: 2px; + border: 1px solid black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.simple input[type=checkbox]:not(:checked) ~ span::before { + background: RGB(213, 215, 237); + color: black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus input[type=hidden].allegee[value="1"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.precis { + display: none; + width: 260px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.precis span { + width: calc(50% - 3px); + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.precis select { + width: calc(50% + 1px); + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.ameliorationsStructurelles, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabMelee div.armesListe div.ameliorationsArmes, @@ -28865,6 +29924,45 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.ar width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection1, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection2 { /* @@ -28932,6 +30030,19 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.ar div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection2 > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection1 div.bonus, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection2 div.bonus { + display: none; + flex-wrap: wrap; + width: 100%; + justify-content: flex-end; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection1 label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection1 label.guidage, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection2 label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.armeSection2 label.guidage { + display: none; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.repcontainer { display: flex; width: 100%; @@ -28997,6 +30108,16 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.ar div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.repitem > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.repitem div.bonus { + display: none; + flex-wrap: wrap; + width: 100%; + justify-content: flex-end; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.repitem label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.repitem label.guidage { + display: none; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.ligne { width: 100%; justify-content: space-between; @@ -29082,6 +30203,159 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.ar div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.ligne div.armeAspect button[type=action] { border-left: 1px solid RGB(93, 111, 179); } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.simple { + justify-content: space-between; + width: 150px; + height: 23px; + margin: 2px; + border: 1px solid black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.simple input[type=checkbox]:not(:checked) ~ span::before { + background: RGB(213, 215, 237); + color: black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus input[type=hidden].allegee[value="1"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.precis { + display: none; + width: 260px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.precis span { + width: calc(50% - 3px); + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.precis select { + width: calc(50% + 1px); + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.ameliorationsArmes, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabDistance div.armesListe div.special { @@ -29724,6 +30998,45 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armes width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.repcontainer { display: flex; width: 100%; @@ -29789,6 +31102,16 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armes div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.repitem > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.repitem div.bonus { + display: none; + flex-wrap: wrap; + width: 100%; + justify-content: flex-end; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.repitem label.precis, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.repitem label.guidage { + display: none; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.ligne { width: 100%; justify-content: space-between; @@ -29899,6 +31222,159 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armes div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.ligne div.armeJet input[type=number].bonus { text-align: left; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.simple { + justify-content: space-between; + width: 150px; + height: 23px; + margin: 2px; + border: 1px solid black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.simple input[type=checkbox]:not(:checked) ~ span::before { + background: RGB(213, 215, 237); + color: black; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus input[type=hidden].deuxMains[value="0"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus input[type=hidden].allegee[value="1"] ~ label.precis { + display: none; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.precis { + display: none; + width: 260px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); + padding-right: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.precis span { + width: calc(50% - 3px); + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.precis select { + width: calc(50% + 1px); + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.effets, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.ameliorationsArmes, div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre div.armesListe div.special { @@ -30119,6 +31595,9 @@ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre input[typ div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnage { display: flex; } +div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnageDetails { + display: flex; +} div.charsheet > div.content div.tabCombat div.armesPNJ div.subTabAutre input[type=hidden].bonusCarac[value="1"] ~ div.titre button[type=action].bonusCaracL1 { box-shadow: 0px 0px 7px 0px #000000 inset; } @@ -35047,6 +36526,23 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ { width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 99px; + margin-right: 0px !important; +} div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.repcontainer { display: flex; width: 100%; @@ -35114,6 +36610,7 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ d } div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.repitem div.bonus { display: none; + flex-wrap: wrap; width: 100%; justify-content: flex-end; } @@ -35223,14 +36720,65 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ d padding-left: 15px; border-right: 1px solid RGB(93, 111, 179); } -div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnage { +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnage, div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus input[type=hidden].deuxMains[value="0"] ~ label.pilonnageDetails { display: none; } +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus input[type=hidden].deuxMains[value="0"] ~ label.guidage { + margin-right: 29px; +} div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnage { display: none; + width: 241px; background: RGB(213, 215, 237); justify-content: space-between; border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); } div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnage span { width: max-content; @@ -35258,13 +36806,119 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ d border-right: 1px solid RGB(93, 111, 179); padding-left: 15px; } -div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnage:first-of-type { - width: 241px; -} -div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnage:last-of-type { +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails { + display: none; width: 381px; border-left: 1px solid RGB(93, 111, 179); padding-right: 28px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails span { + width: max-content; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails input[type=number] { + width: 121px; + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails select { + width: 131px; + border: 0px; + padding: 0px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); + padding-left: 15px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails:first-of-type { + width: 241px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.pilonnageDetails:last-of-type { + width: 381px; + border-left: 1px solid RGB(93, 111, 179); + padding-right: 28px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.cadence { + display: none; + width: 381px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.cadence span { + width: 251px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.cadence select { + width: 132px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; } div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.effets, div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListePJ div.ameliorationsArmes, @@ -35484,6 +37138,45 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV { width: 100%; flex-wrap: wrap; } +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].guidage:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.guidage { + display: block; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis { + width: 250px; + padding: 0px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis span { + width: 119px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].guidage:not([value="0"]) ~ div.bonus label.precis select { + width: 131px; + border-right: 0px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.cadence { + display: flex; + padding-right: 28px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.guidage { + width: 121px; + margin-right: 0px !important; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis { + width: 241px; + padding-right: 0px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis span { + width: calc(50% - 3px); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV input[type=hidden].cadence:not([value="0"]) ~ div.bonus label.precis select { + width: 121px; + border-right: 0px; +} div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.repcontainer { display: flex; width: 100%; @@ -35549,6 +37242,11 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV di div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.repitem > div.subMenu button[type=action].NBT { border-top: 0px; } +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.repitem div.bonus { + display: none; + width: 100%; + justify-content: flex-end; +} div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.ligne { width: 100%; justify-content: space-between; @@ -35659,6 +37357,123 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV di div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.ligne div.armeJet input[type=number].bonus { text-align: left; } +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus { + /* + ///PARAMETRES EXISTANTS\\\ + - label + - width : Width du label + - height : height du label + + - span + - color : La color + - background : Le background + - border : S'il y a une bordure (true/false) + - width : Width du span + - height : height du height + + - shadow : s'il y a une ombre (true/false) + */ +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.fakeButton { + position: relative; + width: 100%; + height: 23px; + font-size: 14px; + align-self: center; + font-size: 12px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.fakeButton input[type=checkbox], +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.fakeButton input[type=radio] { + position: absolute; + width: 100%; + height: 23px; + opacity: 0; + z-index: 9; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.fakeButton span { + display: flex; + height: 23px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.fakeButton span::before { + display: flex; + width: 100%; + line-height: 23px; + content: attr(title); + background: RGB(93, 111, 179); + color: white; + justify-content: center; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.cadence { + display: none; + width: 372px; + background: RGB(213, 215, 237); + justify-content: space-between; + border-top: 1px solid RGB(93, 111, 179); + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.cadence span { + width: 236px; + padding-left: 2px; + line-height: 27px; + font-size: 14px; + color: black; + font-weight: bold; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.cadence select { + width: 131px; + border: 0px; + padding: 0px; + padding-left: 15px; + height: 28px; + text-align: center; + border-left: 1px solid RGB(93, 111, 179); + border-right: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage { + display: none; + margin-top: 1px; + width: 130px; + height: 28px; + margin: 0px; + margin-right: 29px; + border-right: 1px solid RGB(93, 111, 179); + border: 0px; + background: RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.actif, +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.inactif { + display: none; + text-align: center; + color: black; + height: 28px; + line-height: 28px; + align-items: center; + border-left: 1px solid RGB(93, 111, 179); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.actif::before, +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.inactif::before { + height: 28px; + line-height: 28px; + background: transparent; + color: black; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.actif { + border-left: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage span.actif::before { + background: RGB(93, 111, 179); + color: white; + border-bottom: 1px solid RGB(213, 215, 237); +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage input[type=checkbox] { + height: 28px; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage input[type=checkbox]:checked ~ span.actif { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.bonus label.guidage input[type=checkbox]:not(:checked) ~ span.inactif { + display: flex; +} div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.effets, div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.ameliorationsArmes, div.charsheet > div.content div.tabVehicule div.armesVehicule div.armesListeV div.special { @@ -35879,6 +37694,12 @@ div.charsheet > div.content div.tabVehicule div.armesVehicule input[type=hidden] div.charsheet > div.content div.tabVehicule div.armesVehicule input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnage { display: flex; } +div.charsheet > div.content div.tabVehicule div.armesVehicule input[type=hidden].styleCombat[value=pilonnage] ~ div label.pilonnageDetails { + display: flex; +} +div.charsheet > div.content div.tabVehicule div.armesVehicule input[type=hidden].styleCombat[value=pilonnage] ~ div label.guidage { + margin-right: 0px; +} div.charsheet > div.content div.tabVehicule div.armesVehicule input[type=hidden].bonusCarac[value="1"] ~ div.titre button[type=action].bonusCaracL1 { box-shadow: 0px 0px 7px 0px #000000 inset; } @@ -41992,6 +43813,7 @@ div.charsheet > div.content div.tabEquipage div.equipage .repcontainer .repitem: background: none !important; color: black; font-size: inherit; + padding: 0px !important; } .sheet-rolltemplate-base .inlinerollresult.fullcrit, .sheet-rolltemplate-base .inlinerollresult.fullfail, .sheet-rolltemplate-base .inlinerollresult.importantroll, .sheet-rolltemplate-simple .inlinerollresult.fullcrit, diff --git a/Knight/knight.html b/Knight/knight.html index 6efd96788a..b25f8ce605 100644 --- a/Knight/knight.html +++ b/Knight/knight.html @@ -861,7 +861,15 @@ const i18n_deplacement = getTranslationByKey("deplacement"), i18n_porteeCourte = getTranslationByKey("portee-courte"), i18n_devasterAnatheme = getTranslationByKey("devaster-anatheme"), i18n_bourreauTenebres = getTranslationByKey("bourreau-tenebres"), - i18n_equilibrerBalance = getTranslationByKey("equilibrer-balance") + i18n_equilibrerBalance = getTranslationByKey("equilibrer-balance"), + i18n_bourreau = getTranslationByKey("bourreau"), + i18n_conviction = getTranslationByKey("conviction"), + i18n_devastation = getTranslationByKey("devastation"), + i18n_excellence = getTranslationByKey("excellence"), + i18n_excellenceCondition = getTranslationByKey("excellence-condition"), + i18n_guidage = getTranslationByKey("guidage"), + i18n_guidageInclus = getTranslationByKey("guidage-inclus"), + i18n_regularite = getTranslationByKey("regularite") ; function maxCar(carac, score, aspect) @@ -2810,7 +2818,8 @@ on("sheet:opened",function() }); } }); -});/* eslint-disable prefer-destructuring */ +});/* eslint-disable no-plusplus */ +/* eslint-disable prefer-destructuring */ /* eslint-disable default-case */ /* eslint-disable camelcase */ /* eslint-disable max-len */ @@ -2851,16 +2860,16 @@ const wpnAutreData = [ const wpnEffects = [ 'akimbo', 'ambidextrie', 'anatheme', 'antiAnatheme', 'antiVehicule', 'artillerie', 'assassin', 'assistanceAttaque', - 'barrage', 'cadence', 'chargeur', 'choc', 'defense', 'degatContinue', 'deuxMains', 'demoralisant', - 'designation', 'destructeur', 'dispersion', 'enChaine', 'esperance', 'fureur', 'ignoreArmure', + 'barrage', 'bourreau', 'cadence', 'chargeur', 'choc', 'conviction', 'defense', 'degatContinue', 'deuxMains', 'demoralisant', + 'designation', 'destructeur', 'devastation', 'dispersion', 'enChaine', 'esperance', 'excellence', 'fureur', 'guidage', 'ignoreArmure', 'ignoreCdF', 'leste', 'lestePNJ', 'lourd', 'lumiere', 'meurtrier', 'obliteration', - 'orfevrerie', 'orfevreriePNJ', 'parasitage', 'penetrant', 'perceArmure', 'precision', 'precisionPNJ', 'reaction', 'silencieux', 'soumission', 'tenebricite', + 'orfevrerie', 'orfevreriePNJ', 'parasitage', 'penetrant', 'perceArmure', 'precision', 'precisionPNJ', 'reaction', 'regularite', 'silencieux', 'soumission', 'tenebricite', 'tirRafale', 'tirSecurite', 'ultraViolence', ]; const wpnEffectsValue = [ - 'assassinValue', 'barrageValue', 'cadenceValue', 'chargeurValue', 'chocValue', - 'defenseValue', 'degatContinueValue', 'dispersionValue', 'lumiereValue', 'parasitageValue', + 'assassinValue', 'barrageValue', 'bourreauValue', 'cadenceValue', 'cadenceactif', 'chargeurValue', 'chocValue', + 'defenseValue', 'degatContinueValue', 'devastationValue', 'dispersionValue', 'guidageactif', 'lumiereValue', 'parasitageValue', 'penetrantValue', 'perceArmureValue', 'reactionValue', ]; @@ -2915,20 +2924,22 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, const bDegats = []; const autresEffets = []; - let rCadence = 0; - let vCadence = 0; let eASAssassin = ''; let eASAssassinValue = 0; + let vCadence = 0; let eLumiereS = ''; let eLumiereValue = 0; + let eBourreauValue = 0; + let eDevastationValue = 0; + let isAntiAnatheme = false; let isAssistantAttaque = false; let isAkimbo = false; let isAmbidextrie = false; let isCadence = false; - const isChoc = false; + let isChoc = false; let isDestructeur = false; let isDeuxMains = false; let isLeste = false; @@ -2943,6 +2954,11 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, let isTirRafale = false; let isUltraviolence = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]); const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]); const eArtillerie = isApplied(effet[`${prefix}artillerie`]); @@ -2951,13 +2967,17 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]); const eBarrage = isApplied(effet[`${prefix}barrage`]); const eBarrageV = effet[`${prefix}barrageValue`] || 0; + const eBourreau = isApplied(effet[`${prefix}bourreau`]); + const eBourreauV = effet[`${prefix}bourreauValue`] || 0; const eCadence = isApplied(effet[`${prefix}cadence`]); + const eCadenceA = +effet[`${prefix}cadenceactif`] || 0; const eCadenceV = effet[`${prefix}cadenceValue`] || 0; - const eChargeur = isApplied(effet[`${prefix}eChargeur`]); + const eChargeur = isApplied(effet[`${prefix}chargeur`]); const eChargeurV = effet[`${prefix}chargeurValue`] || 0; const eChoc = isApplied(effet[`${prefix}choc`]); const eChocV = effet[`${prefix}chocValue`] || 0; - const eDefense = isApplied(effet[`${prefix}eDefense`]); + const eConviction = isApplied(effet[`${prefix}conviction`]); + const eDefense = isApplied(effet[`${prefix}defense`]); const eDefenseV = effet[`${prefix}defenseValue`] || 0; const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]); const eDegatsContinusV = effet[`${prefix}degatContinueValue`] || 0; @@ -2966,10 +2986,15 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, const eDesignation = isApplied(effet[`${prefix}designation`]); const eDestructeur = isApplied(effet[`${prefix}destructeur`]); const eDestructeurV = 2; + const eDevastation = isApplied(effet[`${prefix}devastation`]); + const eDevastationV = effet[`${prefix}devastationValue`] || 0; const eDispersion = isApplied(effet[`${prefix}dispersion`]); const eDispersionV = effet[`${prefix}dispersionValue`] || 0; const eEnChaine = isApplied(effet[`${prefix}enChaine`]); const eEsperance = isApplied(effet[`${prefix}esperance`]); + const eExcellence = isApplied(effet[`${prefix}excellence`]); + const eGuidage = isApplied(effet[`${prefix}guidage`]); + const eGuidageV = +effet[`${prefix}guidageactif`] || 0; const eFureur = isApplied(effet[`${prefix}fureur`]); const eFureurV = 4; const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]); @@ -2993,6 +3018,7 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, const ePrecision = isApplied(effet[`${prefix}precision`]); const eReaction = isApplied(effet[`${prefix}reaction`]); const eReactionV = effet[`${prefix}reactionValue`] || 0; + const eRegularite = isApplied(effet[`${prefix}regularite`]); const eSilencieux = isApplied(effet[`${prefix}silencieux`]); const eSoumission = isApplied(effet[`${prefix}soumission`]); const eTenebricide = isApplied(effet[`${prefix}tenebricite`]); @@ -3034,18 +3060,31 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence) { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + } + + if (eCadence && eCadenceA === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); + vCadence = eCadenceV; + } else if (eCadence && eCadenceA === 1) { isCadence = true; vCadence = eCadenceV; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc) { isConditionnelA = true; + isChoc = true; exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`); } + if (eConviction) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant) { isConditionnelA = true; @@ -3062,6 +3101,11 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, isDestructeur = true; } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + } + if (eEnChaine) { isConditionnelD = true; @@ -3075,6 +3119,13 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur) { isConditionnelV = true; isFureur = true; @@ -3084,6 +3135,14 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`); } + if (eGuidage && eGuidageV !== 0) { + isGuidage = true; + + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage) { + autresEffets.push(i18n_guidage); + } + if (eLeste) { bDegats.push(vForce); exec.push(`{{vLeste=${vForce}}}`); @@ -3136,6 +3195,11 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, exec.push(`{{vPrecision=${vPrecision}}}`); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux || prefix === 'pS' || prefix === 'pSC') { const ghost = +effet.rogueGhost; const MALghost = +effet.MALRogueGhost; @@ -3270,7 +3334,6 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, result.eASAssassin = eASAssassin; result.eASAssassinValue = eASAssassinValue; result.isCadence = isCadence; - result.sCadence = rCadence; result.vCadence = vCadence; result.isTenebricide = isTenebricide; result.isObliteration = isObliteration; @@ -3288,6 +3351,14 @@ function getWeaponsEffects(prefix, effet, hasArmure, armure, vForce, vDexterite, result.isFureur = isFureur; result.isUltraviolence = isUltraviolence; + result.isBourreau = isBourreau; + result.vBourreau = eBourreauValue; + result.isDevastation = isDevastation; + result.vDevastation = eDevastationValue; + + result.isGuidage = isGuidage; + result.isRegularite = isRegularite; + result.eLumiere = eLumiere; result.isELumiere = isELumiere; result.eLumiereValue = eLumiereValue; @@ -3330,16 +3401,18 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine let bDegats = 0; const autresEffets = []; - const isCadence = false; - let rCadence = 0; let vCadence = 0; + let eBourreauValue = 0; + let eDevastationValue = 0; + let isObliteration = false; let isTenebricide = false; let isAntiAnatheme = false; let isAssistanceAttaque = false; let isDestructeur = false; + let isCadence = false; let isChoc = false; let isLeste = false; let isMeurtrier = false; @@ -3348,6 +3421,11 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine let isFureur = false; let isUltraviolence = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + const eAnatheme = isApplied(data[`${prefix}anatheme`]); const eAntiAnatheme = isApplied(data[`${prefix}antiAnatheme`]); const eAntiVehicule = isApplied(data[`${prefix}antiVehicule`]); @@ -3357,12 +3435,16 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine const eAssistanceAttaque = isApplied(data[`${prefix}assistanceAttaque`]); const eBarrage = isApplied(data[`${prefix}barrage`]); const eBarrageV = data[`${prefix}barrageValue`] || 0; + const eBourreau = isApplied(data[`${prefix}bourreau`]); + const eBourreauV = data[`${prefix}bourreauValue`] || 0; const eCadence = isApplied(data[`${prefix}cadence`]); + const eCadenceA = +data[`${prefix}cadenceactif`] || 0; const eCadenceV = data[`${prefix}cadenceValue`] || 0; const eChargeur = isApplied(data[`${prefix}eChargeur`]); const eChargeurV = data[`${prefix}chargeurValue`] || 0; const eChoc = isApplied(data[`${prefix}choc`]); const eChocV = data[`${prefix}chocValue`] || 0; + const eConviction = isApplied(data[`${prefix}conviction`]); const eDefense = isApplied(data[`${prefix}eDefense`]); const eDefenseV = data[`${prefix}defenseValue`] || 0; const eDegatsContinus = isApplied(data[`${prefix}degatContinue`]); @@ -3372,12 +3454,17 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine const eDesignation = isApplied(data[`${prefix}designation`]); const eDestructeur = isApplied(data[`${prefix}destructeur`]); const eDestructeurV = 2; + const eDevastation = isApplied(data[`${prefix}devastation`]); + const eDevastationV = data[`${prefix}devastationValue`] || 0; const eDispersion = isApplied(data[`${prefix}dispersion`]); const eDispersionV = data[`${prefix}dispersionValue`] || 0; const eEnChaine = isApplied(data[`${prefix}enChaine`]); const eEsperance = isApplied(data[`${prefix}esperance`]); + const eExcellence = isApplied(data[`${prefix}excellence`]); const eFureur = isApplied(data[`${prefix}fureur`]); const eFureurV = 4; + const eGuidage = isApplied(data[`${prefix}guidage`]); + const eGuidageV = +data[`${prefix}guidageactif`] || 0; const eIgnoreArmure = isApplied(data[`${prefix}ignoreArmure`]); const eIgnoreCDF = isApplied(data[`${prefix}ignoreCdF`]); const eJAkimbo = isApplied(data[`${prefix}akimbo`]); @@ -3399,6 +3486,7 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine const ePrecision = isApplied(data[`${prefix}precisionPNJ`]); const eReaction = isApplied(data[`${prefix}reaction`]); const eReactionV = data[`${prefix}reactionValue`] || 0; + const eRegularite = isApplied(data[`${prefix}regularite`]); const eSilencieux = isApplied(data[`${prefix}silencieux`]); const eSoumission = isApplied(data[`${prefix}soumission`]); const eTenebricide = isApplied(data[`${prefix}tenebricite`]); @@ -3440,9 +3528,18 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence) { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + } + + if (eCadence && eCadenceA === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); vCadence = eCadenceV; + } else if (eCadence && eCadenceA === 1) { + isCadence = true; + vCadence = eCadenceV; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc) { @@ -3453,6 +3550,10 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine isChoc = true; } + if (eConviction) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant) { isConditionnelA = true; @@ -3469,6 +3570,11 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine isDestructeur = true; } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + } + if (eEnChaine) { isConditionnelD = true; @@ -3482,6 +3588,13 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur) { isConditionnelV = true; isFureur = true; @@ -3491,6 +3604,14 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`); } + if (eGuidage && eGuidageV !== 0) { + isGuidage = true; + + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage) { + autresEffets.push(i18n_guidage); + } + if (eLeste) { bDegats += Math.floor(vChair / 2); @@ -3541,6 +3662,11 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine exec.push(`{{vPrecision=${vPrecision}}}`); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux || prefix === 'pS' || prefix === 'pSC') { const totalSilencieux = Math.ceil(vMasque / 2) + vMasqueAE; @@ -3640,7 +3766,6 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine result.eASAssassinValue = eASAssassinValue; result.isCadence = isCadence; - result.sCadence = rCadence; result.vCadence = vCadence; result.isTenebricide = isTenebricide; result.isObliteration = isObliteration; @@ -3655,6 +3780,14 @@ function getWeaponsEffectsPNJ(prefix, data, addChair, vChair, vMachine, vMachine result.isFureur = isFureur; result.isUltraviolence = isUltraviolence; + result.isGuidage = isGuidage; + result.isRegularite = isRegularite; + + result.isBourreau = isBourreau; + result.vBourreau = eBourreauValue; + result.isDevastation = isDevastation; + result.vDevastation = eDevastationValue; + result.attaquesSurprises = attaquesSurprises; result.attaquesSurprisesValue = attaquesSurprisesValue; result.attaquesSurprisesCondition = attaquesSurprisesCondition; @@ -3685,7 +3818,6 @@ function getWeaponsEffectsAutre(prefix, effet) { const bDegats = []; const autresEffets = []; - let rCadence = 0; let vCadence = 0; let eASAssassin = ''; let eASAssassinValue = 0; @@ -3713,6 +3845,11 @@ function getWeaponsEffectsAutre(prefix, effet) { let isFureur = false; let isUltraviolence = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]); const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]); const eArtillerie = isApplied(effet[`${prefix}artillerie`]); @@ -3721,12 +3858,16 @@ function getWeaponsEffectsAutre(prefix, effet) { const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]); const eBarrage = isApplied(effet[`${prefix}barrage`]); const eBarrageV = effet[`${prefix}barrageValue`] || 0; + const eBourreau = isApplied(effet[`${prefix}bourreau`]); + const eBourreauV = effet[`${prefix}bourreauValue`] || 0; const eCadence = isApplied(effet[`${prefix}cadence`]); + const eCadenceA = +effet[`${prefix}cadenceactif`] || 0; const eCadenceV = effet[`${prefix}cadenceValue`] || 0; const eChargeur = isApplied(effet[`${prefix}eChargeur`]); const eChargeurV = effet[`${prefix}chargeurValue`] || 0; const eChoc = isApplied(effet[`${prefix}choc`]); const eChocV = effet[`${prefix}chocValue`] || 0; + const eConviction = isApplied(effet[`${prefix}conviction`]); const eDefense = isApplied(effet[`${prefix}eDefense`]); const eDefenseV = effet[`${prefix}defenseValue`] || 0; const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]); @@ -3736,12 +3877,17 @@ function getWeaponsEffectsAutre(prefix, effet) { const eDesignation = isApplied(effet[`${prefix}designation`]); const eDestructeur = isApplied(effet[`${prefix}destructeur`]); const eDestructeurV = 2; + const eDevastation = isApplied(effet[`${prefix}devastation`]); + const eDevastationV = effet[`${prefix}devastationValue`] || 0; const eDispersion = isApplied(effet[`${prefix}dispersion`]); const eDispersionV = effet[`${prefix}dispersionValue`] || 0; const eEnChaine = isApplied(effet[`${prefix}enChaine`]); const eEsperance = isApplied(effet[`${prefix}esperance`]); + const eExcellence = isApplied(effet[`${prefix}excellence`]); const eFureur = isApplied(effet[`${prefix}fureur`]); const eFureurV = 4; + const eGuidage = isApplied(effet[`${prefix}guidage`]); + const eGuidageV = +effet[`${prefix}guidageactif`] || 0; const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]); const eIgnoreCDF = isApplied(effet[`${prefix}ignoreCdF`]); const eJAkimbo = isApplied(effet[`${prefix}akimbo`]); @@ -3763,6 +3909,7 @@ function getWeaponsEffectsAutre(prefix, effet) { const ePrecision = isApplied(effet[`${prefix}precision`]); const eReaction = isApplied(effet[`${prefix}reaction`]); const eReactionV = effet[`${prefix}reactionValue`] || 0; + const eRegularite = isApplied(effet[`${prefix}regularite`]); const eSilencieux = isApplied(effet[`${prefix}silencieux`]); const eSoumission = isApplied(effet[`${prefix}soumission`]); const eTenebricide = isApplied(effet[`${prefix}tenebricite`]); @@ -3804,10 +3951,18 @@ function getWeaponsEffectsAutre(prefix, effet) { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence) { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + } + + if (eCadence && eCadenceA === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); + vCadence = eCadenceV; + } else if (eCadence && eCadenceA === 1) { isCadence = true; vCadence = eCadenceV; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc) { @@ -3816,6 +3971,10 @@ function getWeaponsEffectsAutre(prefix, effet) { exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`); } + if (eConviction) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant) { isConditionnelA = true; @@ -3832,6 +3991,11 @@ function getWeaponsEffectsAutre(prefix, effet) { isDestructeur = true; } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + } + if (eEnChaine) { isConditionnelD = true; @@ -3845,6 +4009,13 @@ function getWeaponsEffectsAutre(prefix, effet) { exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur) { isConditionnelV = true; isFureur = true; @@ -3854,6 +4025,14 @@ function getWeaponsEffectsAutre(prefix, effet) { exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`); } + if (eGuidage && eGuidageV !== 0) { + isGuidage = true; + + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage) { + autresEffets.push(i18n_guidage); + } + if (eLeste) { autresEffets.push(i18n_leste); isLeste = true; @@ -3895,6 +4074,11 @@ function getWeaponsEffectsAutre(prefix, effet) { autresEffets.push(i18n_precision); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux) { isConditionnelD = true; @@ -3993,7 +4177,6 @@ function getWeaponsEffectsAutre(prefix, effet) { result.eASAssassin = eASAssassin; result.eASAssassinValue = eASAssassinValue; result.isCadence = isCadence; - result.sCadence = rCadence; result.vCadence = vCadence; result.isTenebricide = isTenebricide; result.isObliteration = isObliteration; @@ -4011,6 +4194,14 @@ function getWeaponsEffectsAutre(prefix, effet) { result.isFureur = isFureur; result.isUltraviolence = isUltraviolence; + result.isBourreau = isBourreau; + result.vBourreau = eBourreauValue; + result.isDevastation = isDevastation; + result.vDevastation = eDevastationValue; + + result.isGuidage = isGuidage; + result.isRegularite = isRegularite; + result.eLumiere = eLumiere; result.isELumiere = isELumiere; result.eLumiereValue = eLumiereValue; @@ -4050,7 +4241,6 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { const bDegats = []; const autresEffets = []; - let rCadence = 0; let vCadence = 0; let eASAssassin = ''; let eASAssassinValue = 0; @@ -4078,6 +4268,11 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { let isUltraviolence = false; let isFureur = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + const eAnatheme = isApplied(effet[`${prefix}anatheme`]); const eAntiAnatheme = isApplied(effet[`${prefix}antiAnatheme`]); const eAntiVehicule = isApplied(effet[`${prefix}antiVehicule`]); @@ -4087,12 +4282,16 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { const eAssistanceAttaque = isApplied(effet[`${prefix}assistanceAttaque`]); const eBarrage = isApplied(effet[`${prefix}barrage`]); const eBarrageV = effet[`${prefix}barrageValue`] || 0; + const eBourreau = isApplied(effet[`${prefix}bourreau`]); + const eBourreauV = effet[`${prefix}bourreauValue`] || 0; const eCadence = isApplied(effet[`${prefix}cadence`]); + const eCadenceA = +effet[`${prefix}cadenceactif`] || 0; const eCadenceV = effet[`${prefix}cadenceValue`] || 0; const eChargeur = isApplied(effet[`${prefix}eChargeur`]); const eChargeurV = effet[`${prefix}chargeurValue`] || 0; const eChoc = isApplied(effet[`${prefix}choc`]); const eChocV = effet[`${prefix}chocValue`] || 0; + const eConviction = isApplied(effet[`${prefix}conviction`]); const eDefense = isApplied(effet[`${prefix}eDefense`]); const eDefenseV = effet[`${prefix}defenseValue`] || 0; const eDegatsContinus = isApplied(effet[`${prefix}degatContinue`]); @@ -4102,12 +4301,17 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { const eDesignation = isApplied(effet[`${prefix}designation`]); const eDestructeur = isApplied(effet[`${prefix}destructeur`]); const eDestructeurV = 2; + const eDevastation = isApplied(effet[`${prefix}devastation`]); + const eDevastationV = effet[`${prefix}devastationValue`] || 0; const eDispersion = isApplied(effet[`${prefix}dispersion`]); const eDispersionV = effet[`${prefix}dispersionValue`] || 0; const eEnChaine = isApplied(effet[`${prefix}enChaine`]); const eEsperance = isApplied(effet[`${prefix}esperance`]); + const eExcellence = isApplied(effet[`${prefix}excellence`]); const eFureur = isApplied(effet[`${prefix}fureur`]); const eFureurV = 4; + const eGuidage = isApplied(effet[`${prefix}guidage`]); + const eGuidageV = +effet[`${prefix}guidageactif`] || 0; const eIgnoreArmure = isApplied(effet[`${prefix}ignoreArmure`]); const eIgnoreCDF = isApplied(effet[`${prefix}ignoreCdF`]); const eJAkimbo = isApplied(effet[`${prefix}akimbo`]); @@ -4129,6 +4333,7 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { const ePrecision = isApplied(effet[`${prefix}precision`]); const eReaction = isApplied(effet[`${prefix}reaction`]); const eReactionV = effet[`${prefix}reactionValue`] || 0; + const eRegularite = isApplied(effet[`${prefix}regularite`]); const eSilencieux = isApplied(effet[`${prefix}silencieux`]); const eSoumission = isApplied(effet[`${prefix}soumission`]); const eTenebricide = isApplied(effet[`${prefix}tenebricite`]); @@ -4170,10 +4375,18 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence) { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + } + + if (eCadence && eCadenceA === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); + vCadence = eCadenceV; + } else if (eCadence && eCadenceA === 1) { isCadence = true; vCadence = eCadenceV; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc) { @@ -4182,6 +4395,10 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { exec.push(`{{choc=${i18n_choc} ${eChocV}}} {{chocCondition=${i18n_chocCondition}}}`); } + if (eConviction) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant) { isConditionnelA = true; @@ -4198,6 +4415,11 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { isDestructeur = true; } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + } + if (eEnChaine) { isConditionnelD = true; @@ -4211,6 +4433,13 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { exec.push(`{{esperance=${i18n_esperance}}} {{esperanceConditionD=${i18n_esperanceConditionD}}} {{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur) { isConditionnelV = true; isFureur = true; @@ -4220,6 +4449,14 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { exec.push(`{{fureur=${i18n_fureur}}} {{fureurCondition=${i18n_fureurCondition}}}`); } + if (eGuidage && eGuidageV !== 0) { + isGuidage = true; + + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage) { + autresEffets.push(i18n_guidage); + } + if (eLeste) { autresEffets.push(i18n_leste); isLeste = true; @@ -4261,6 +4498,11 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { autresEffets.push(i18n_precision); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux) { isConditionnelD = true; @@ -4361,7 +4603,6 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { result.eASAssassin = eASAssassin; result.eASAssassinValue = eASAssassinValue; result.isCadence = isCadence; - result.sCadence = rCadence; result.vCadence = vCadence; result.isTenebricide = isTenebricide; result.isObliteration = isObliteration; @@ -4388,6 +4629,14 @@ function getWeaponsEffectsAutrePNJ(prefix, effet) { result.isDeuxMains = isDeuxMains; result.isLourd = isLourd; + result.isBourreau = isBourreau; + result.vBourreau = eBourreauValue; + result.isDevastation = isDevastation; + result.vDevastation = eDevastationValue; + + result.isGuidage = isGuidage; + result.isRegularite = isRegularite; + result.attaquesSurprises = attaquesSurprises; result.attaquesSurprisesValue = attaquesSurprisesValue; result.attaquesSurprisesCondition = attaquesSurprisesCondition; @@ -4749,7 +4998,6 @@ function getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, is let isRouagesCasses = false; let vRouagesCasses = 0; - let rCadence = ''; let CadenceValue = 0; let nowObliteration = false; @@ -4767,6 +5015,7 @@ function getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, is const aBouclierGrave = isApplied(AO[`${prefix}bouclierGrave`]); const aCheneSculpte = isApplied(AO[`${prefix}cheneSculpte`]); const aChromeeLignesLC = isApplied(AO[`${prefix}chromeeLignesLC`]); + const eCadenceA = +AO[`${prefix}cadenceactif`] || 0; const aCodeKnightGrave = isApplied(AO[`${prefix}codeKnightGrave`]); const aCraneRieurGrave = isApplied(AO[`${prefix}craneRieurGrave`]); const aFaucheuseGravee = isApplied(AO[`${prefix}faucheuseGravee`]); @@ -4809,13 +5058,13 @@ function getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, is exec.push(`{{cheneSculpte=${i18n_cheneSculpte}}} {{cheneSculpteCondition=${i18n_cheneSculpteCondition}}}`); } - if (aChromeeLignesLC) { + if (aChromeeLignesLC && eCadenceA === 1) { if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chromee); } else { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; isChromee = true; CadenceValue = 2; + exec.push(`{{vChrome=2) ${i18n_inclus}}}`); } - } + } else if (aChromeeLignesLC && eCadenceA === 0) { autresAmeliorations.push(i18n_chromee); } if (aCraneRieurGrave) { if (isObliteration) { autresAmeliorations.push(i18n_craneRieur); } else { @@ -4915,7 +5164,6 @@ function getWeaponsContactAO(prefix, AO, isCadence, vCadence, isObliteration, is result.aLumiere = aLumiere; result.aLumiereValue = aLumiereValue; - result.rCadence = rCadence; result.vCadence = CadenceValue; result.diceDegats = diceDegats; @@ -4953,7 +5201,6 @@ function getWeaponsContactAOPNJ(prefix, data, isCadence, vCadence, isObliteratio let isRouagesCasses = false; let vRouagesCasses = 0; - let rCadence = '0'; let CadenceValue = 0; let nowObliteration = false; @@ -4971,6 +5218,7 @@ function getWeaponsContactAOPNJ(prefix, data, isCadence, vCadence, isObliteratio const aBouclierGrave = isApplied(data[`${prefix}bouclierGrave`]); const aCheneSculpte = isApplied(data[`${prefix}cheneSculpte`]); const aChromeeLignesLC = isApplied(data[`${prefix}chromeeLignesLC`]); + const eCadenceA = +data[`${prefix}cadenceactif`] || 0; const aCodeKnightGrave = isApplied(data[`${prefix}codeKnightGrave`]); const aCraneRieurGrave = isApplied(data[`${prefix}craneRieurGrave`]); const aFaucheuseGravee = isApplied(data[`${prefix}faucheuseGravee`]); @@ -5008,13 +5256,13 @@ function getWeaponsContactAOPNJ(prefix, data, isCadence, vCadence, isObliteratio exec.push(`{{cheneSculpte=${i18n_cheneSculpte}}} {{cheneSculpteCondition=${i18n_cheneSculpteCondition}}}`); } - if (aChromeeLignesLC) { + if (aChromeeLignesLC && eCadenceA === 1) { if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chromee); } else { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; isChromee = true; CadenceValue = 2; + exec.push(`{{vChrome=2) ${i18n_inclus}}}`); } - } + } else if (aChromeeLignesLC && eCadenceA === 0) { autresAmeliorations.push(i18n_chromee); } if (aCraneRieurGrave) { if (isObliteration) { autresAmeliorations.push(i18n_craneRieur); } else { @@ -5113,7 +5361,6 @@ function getWeaponsContactAOPNJ(prefix, data, isCadence, vCadence, isObliteratio result.isRouagesCasses = isRouagesCasses; result.vRouagesCasses = vRouagesCasses; - result.rCadence = rCadence; result.vCadence = CadenceValue; result.diceDegats = diceDegats; @@ -5139,7 +5386,6 @@ function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceA let isConditionnelV = false; let isChambreDouble = false; - let rChambreDouble = ''; let isInterfaceGuidage = false; @@ -5149,6 +5395,8 @@ function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceA let aASAssassin = ''; let aASAssassinValue = 0; + let CadenceValue = 0; + const bonus = []; let diceDegats = 0; let diceViolence = 0; @@ -5163,6 +5411,7 @@ function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceA const aCanonLong = isApplied(AA[`${prefix}canonLong`]); const aCanonRaccourci = isApplied(AA[`${prefix}canonRaccourci`]); const aChambreDouble = isApplied(AA[`${prefix}chambreDouble`]); + const eCadenceA = +AA[`${prefix}cadenceactif`] || 0; const aInterfaceGuidage = isApplied(AA[`${prefix}interfaceGuidage`]); const aJumelage = isApplied(AA[`${prefix}jumelage`]); const aJumelageV = AA[`${prefix}jumelageValue`]; @@ -5201,16 +5450,13 @@ function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceA exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`); } - if (aChambreDouble) { - if (isCadence && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else if (isCadence) { - autresEffets.push(`${i18n_cadence} ${vCadence}`); - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; - isChambreDouble = true; - } else { - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (aChambreDouble && eCadenceA === 1) { + if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else { isChambreDouble = true; + CadenceValue = 2; + exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`); } - } + } else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); } if (aInterfaceGuidage) { autresAmeliorations.push(i18n_interfaceGuidage); @@ -5334,10 +5580,11 @@ function getWeaponsDistanceAA(prefix, AA, vDiscretion, oDiscretion, eAssistanceA result.attaquesSurprisesCondition = attaquesSurprisesCondition; result.isChambreDouble = isChambreDouble; - result.rChambreDouble = rChambreDouble; result.isJAmbidextre = isJAmbidextre; result.isJAkimbo = isJAkimbo; + result.vCadence = CadenceValue; + result.exec = exec; result.autresAmeliorations = autresAmeliorations; result.autresEffets = autresEffets; @@ -5354,13 +5601,14 @@ function getWeaponsDistanceAAPNJ(prefix, attrs, vMasque, vMasqueAE, eAssistanceA let isConditionnelV = false; let isChambreDouble = false; - let rChambreDouble = ''; let isInterfaceGuidage = false; let aASAssassin = ''; let aASAssassinValue = 0; + let CadenceValue = 0; + const bonus = []; let diceDegats = 0; let diceViolence = 0; @@ -5375,6 +5623,7 @@ function getWeaponsDistanceAAPNJ(prefix, attrs, vMasque, vMasqueAE, eAssistanceA const aCanonLong = isApplied(attrs[`${prefix}canonLong`]); const aCanonRaccourci = isApplied(attrs[`${prefix}canonRaccourci`]); const aChambreDouble = isApplied(attrs[`${prefix}chambreDouble`]); + const eCadenceA = +attrs[`${prefix}cadenceactif`] || 0; const aInterfaceGuidage = isApplied(attrs[`${prefix}interfaceGuidage`]); const aJumelage = isApplied(attrs[`${prefix}jumelage`]); const aJumelageV = attrs[`${prefix}jumelageValue`]; @@ -5411,16 +5660,13 @@ function getWeaponsDistanceAAPNJ(prefix, attrs, vMasque, vMasqueAE, eAssistanceA exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`); } - if (aChambreDouble) { - if (isCadence && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else if (isCadence) { - autresEffets.push(`${i18n_cadence} ${vCadence}`); - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; - isChambreDouble = true; - } else { - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (aChambreDouble && eCadenceA === 1) { + if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else { isChambreDouble = true; + CadenceValue = 2; + exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`); } - } + } else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); } if (aInterfaceGuidage) { autresAmeliorations.push(i18n_interfaceGuidage); @@ -5517,7 +5763,8 @@ function getWeaponsDistanceAAPNJ(prefix, attrs, vMasque, vMasqueAE, eAssistanceA result.attaquesSurprisesCondition = attaquesSurprisesCondition; result.isChambreDouble = isChambreDouble; - result.rChambreDouble = rChambreDouble; + + result.vCadence = CadenceValue; result.exec = exec; result.autresAmeliorations = autresAmeliorations; @@ -5535,7 +5782,6 @@ function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isC let isConditionnelV = false; let isChambreDouble = false; - let rChambreDouble = ''; let isInterfaceGuidage = false; @@ -5545,6 +5791,8 @@ function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isC let aASAssassin = ''; let aASAssassinValue = 0; + let CadenceValue = 0; + const bonus = []; let diceDegats = 0; let diceViolence = 0; @@ -5559,6 +5807,7 @@ function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isC const aCanonLong = isApplied(AA[`${prefix}canonLong`]); const aCanonRaccourci = isApplied(AA[`${prefix}canonRaccourci`]); const aChambreDouble = isApplied(AA[`${prefix}chambreDouble`]); + const eCadenceA = +AA[`${prefix}cadenceactif`] || 0; const aInterfaceGuidage = isApplied(AA[`${prefix}interfaceGuidage`]); const aJumelage = isApplied(AA[`${prefix}jumelage`]); const aJumelageV = AA[`${prefix}jumelageValue`]; @@ -5595,16 +5844,13 @@ function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isC exec.push(`{{canonRaccourci=${i18n_canonRaccourci}}} {{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`); } - if (aChambreDouble) { - if (isCadence && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else if (isCadence) { - autresEffets.push(`${i18n_cadence} ${vCadence}`); - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; - isChambreDouble = true; - } else { - rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (aChambreDouble && eCadenceA === 1) { + if (isCadence === true && vCadence >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else { isChambreDouble = true; + CadenceValue = 2; + exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`); } - } + } else if (aChambreDouble && eCadenceA === 0) { autresAmeliorations.push(i18n_chambreDouble); } if (aInterfaceGuidage) { autresAmeliorations.push(i18n_interfaceGuidage); @@ -5698,10 +5944,11 @@ function getWeaponsAutreAA(prefix, AA, eAssistanceAttaque, eASAssassinValue, isC result.attaquesSurprisesCondition = attaquesSurprisesCondition; result.isChambreDouble = isChambreDouble; - result.rChambreDouble = rChambreDouble; result.isJAmbidextre = isJAmbidextre; result.isJAkimbo = isJAkimbo; + result.vCadence = CadenceValue; + result.exec = exec; result.autresAmeliorations = autresAmeliorations; result.autresEffets = autresEffets; @@ -6541,7 +6788,7 @@ function getStyleDistanceMod(value, diceDegats, diceViolence, pilonnage, pilonna return result; } -function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, diceViolence, bonusViolence, conditions) { +function updateRoll(roll, diceJet, bonusJet, totalDegats, diceDegats, bonusDegats, totalViolence, diceViolence, bonusViolence, conditions, conditionsValues) { const tSurprise = roll.results.attaqueSurpriseValue || {}; const tDestructeur = roll.results.destructeurValue || {}; const tFureur = roll.results.fureurValue || {}; @@ -6574,6 +6821,20 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d const isMasqueBrise = conditions.isMasqueBrise || false; const isRouagesCasses = conditions.isRouagesCasses || false; + const isBourreau = conditions.isBourreau || false; + const eBourreauValue = conditionsValues.eBourreauValue || 0; + + const isDevastation = conditions.isDevastation || false; + const eDevastationValue = conditionsValues.eDevastationValue || 0; + + const isRegularite = conditions.isRegularite || false; + const isGuidage = conditions.isGuidage || false; + + const pairOrImpair = isGuidage === true ? 1 : 0; + + let tJet = 0; + let baseJet = 0; + let tDegats = totalDegats; let tViolence = totalViolence; @@ -6595,6 +6856,20 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d let hRouagesCassesValueD = 0; let hRouagesCassesValueV = 0; + let regularite = 0; + + baseJet = diceJet.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === pairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + tJet = baseJet + bonusJet; + if (isSurprise) { hSurprise = tSurprise.result; } if (isDestructeur) { hDestructeur = tDestructeur.result; } if (isFureur) { hFureur = tFureur.result; } @@ -6605,19 +6880,24 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d 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; @@ -6640,6 +6920,7 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d return accumulateur + newV; }, 0); + if (bonusDegats.length !== 0) { tDegats += bonusDegats.reduce((accumulateur, valeurCourante) => accumulateur + +valeurCourante); } if (isDestructeur) { @@ -6726,6 +7007,103 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d let newV = +valeurCourante; if (newV <= 3) { newV = 4; } + return accumulateur + newV; + }, 0); + } + } else if (isBourreau) { + tDegats = diceDegats.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { 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 <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isMeurtrier) { + hMeurtrier = tMeurtrier.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { 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 <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + + hSurprise += bonusSurprise; + } + } + + if (isArmeAzurine) { + hArmeAzurineValueD = tArmeAzurineValueD.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isArmeRougeSang) { + hArmeRougeSangValueD = tArmeRougeSangValueD.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isCheneSculpte) { + hCheneSculpte = tCheneSculpte.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isGriffureGravee) { + hGriffuresGraveesValueD = tGriffuresGraveesValueD.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isMasqueBrise) { + hMasqueBriseValueD = tMasqueBriseValueD.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + + return accumulateur + newV; + }, 0); + } + + if (isRouagesCasses) { + hRouagesCassesValueD = tRouagesCassesValueD.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eBourreauValue) { newV = 4; } + return accumulateur + newV; }, 0); } @@ -6803,6 +7181,91 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d return accumulateur + newV; }, 0); } + } else if (isDevastation) { + tViolence = diceViolence.reduce((accumulateur, valeurCourante) => { + let newV = valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + 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 <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isUltraviolence) { + hUltraviolence = tUltraviolence.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isArmeAzurine) { + hArmeAzurineValueV = tArmeAzurineValueV.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isArmeRougeSang) { + hArmeRougeSangValueV = tArmeRougeSangValueV.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isGriffureGravee) { + hGriffuresGraveesValueV = tGriffuresGraveesValueV.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isMasqueBrise) { + hMasqueBriseValueV = tMasqueBriseValueV.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + + if (isRouagesCasses) { + hRouagesCassesValueV = tRouagesCassesValueV.dice.reduce((accumulateur, valeurCourante) => { + let newV = +valeurCourante; + if (newV <= eDevastationValue) { newV = 5; } + + return accumulateur + newV; + }, 0); + } + } + + if (isRegularite) { + regularite = diceJet.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC === 6) { nV = 3; } + + return accumulateur + nV; + }, 0); + + tDegats += regularite; } if (isTenebricide) { @@ -6931,6 +7394,8 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d } const computed = { + jet: tJet, + basejet: baseJet, degats: tDegats, violence: tViolence, tenebricideValueD: vTDegats, @@ -6957,6 +7422,7 @@ function updateRoll(roll, totalDegats, diceDegats, bonusDegats, totalViolence, d tMeurtrierValue: vTMeurtrier, tUltraviolenceValue: vTUltraviolence, tCheneSculpteValue: vTCheneSculpte, + vRegularite: regularite, }; return computed; @@ -11912,7 +12378,6 @@ rollCombatAutre.forEach((button) => { let isAssistantAttaque = false; let isAntiAnatheme = false; let isCadence = false; - let sCadence = 0; let vCadence = 0; let isDestructeur = false; let vDestructeur = 0; @@ -11923,14 +12388,23 @@ rollCombatAutre.forEach((button) => { let isObliteration = false; let isTenebricide = false; let isTirRafale = false; - let isChambreDouble = false; let isUltraviolence = false; let isSurprise = false; let isELumiere = false; let lumiereValue = 0; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + const energie = attrs.energieVehicule; + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; let autresEffets = []; let autresAmeliorationsA = []; @@ -11956,7 +12430,6 @@ rollCombatAutre.forEach((button) => { isAssistantAttaque = effets.isAssistantAttaque; isCadence = effets.isCadence; - sCadence = effets.sCadence; vCadence = effets.vCadence; isDestructeur = effets.isDestructeur; @@ -11979,6 +12452,14 @@ rollCombatAutre.forEach((button) => { isELumiere = effets.isELumiere; lumiereValue = Number(effets.eLumiereValue); + isBourreau = effets.isBourreau; + isDevastation = effets.isDevastation; + isGuidage = effets.isGuidage; + isRegularite = effets.isRegularite; + + eBourreauValue = effets.vBourreau; + eDevastationValue = effets.vDevastation; + if (effets.isConditionnelA) { isConditionnelA = true; } if (effets.isConditionnelD) { isConditionnelD = true; } @@ -12006,9 +12487,8 @@ rollCombatAutre.forEach((button) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = ameliorationsA.attaquesSurprisesCondition; } if (ameliorationsA.isChambreDouble) { - isCadence = false; - isChambreDouble = ameliorationsA.isChambreDouble; - sCadence = ameliorationsA.rChambreDouble; + isCadence = true; + vCadence = ameliorationsA.vCadence; } autresEffets = autresEffets.concat(ameliorationsA.autresEffets); @@ -12056,11 +12536,21 @@ rollCombatAutre.forEach((button) => { bViolence.push(sBonusViolenceFixe); } - if (sEnergie) { - if (button === 'repeating_armeautre:armeautrepjvehicule') { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + if (isGuidage) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } - newEnergie = Number(energie) - Number(sEnergieValue); + if (sEnergie) { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + if (button === 'repeating_armeautre:armeautrepjvehicule') { + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); + + newEnergie = Number(energie) - Number(vEnergieRetiree); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -12070,6 +12560,8 @@ rollCombatAutre.forEach((button) => { pasEnergie = true; } } else { autresSpecial.push(`^{energie} (${sEnergieValue})`); } + + exec.push(`{{energieR=${newEnergie}}}`); } // FIN DE GESTION DES BONUS SPECIAUX @@ -12091,10 +12583,17 @@ rollCombatAutre.forEach((button) => { violence.push(`${diceViolence}D6`); violence = violence.concat(bViolence); - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}-${sCadence}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; firstExec.push(jet); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + firstExec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); exec.push(`{{degats=[[${degats.join('+')}]]}}`); @@ -12138,16 +12637,6 @@ rollCombatAutre.forEach((button) => { } } - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChambreDouble) { - exec.push(`{{rCadence=${i18n_chambreDouble} (${i18n_cadence} 2) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -12204,6 +12693,9 @@ rollCombatAutre.forEach((button) => { if (effets.firstExec) { firstExec = firstExec.concat(effets.firstExec); } + if (isBourreau) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + exec = firstExec.concat(exec); // ROLL @@ -12212,6 +12704,7 @@ rollCombatAutre.forEach((button) => { if (pasEnergie === false) { finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -12229,29 +12722,45 @@ rollCombatAutre.forEach((button) => { isSurprise, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === tExploit) { const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== false && button === 'repeating_armeautre:armeautrepjvehicule') { + if (hasEnergieRetiree && button === 'repeating_armeautre:armeautrepjvehicule') { setAttrs({ energieVehicule: newEnergie }); if (newEnergie === 0) { @@ -12265,7 +12774,8 @@ rollCombatAutre.forEach((button) => { } }); }); - /* eslint-disable max-len */ + /* eslint-disable no-plusplus */ +/* eslint-disable max-len */ /* eslint-disable prefer-destructuring */ /* eslint-disable camelcase */ /* eslint-disable no-undef */ @@ -12578,8 +13088,6 @@ rollCombatContact.forEach((button) => { let isAssistantAttaque = false; let isAntiAnatheme = false; let isCadence = false; - let isChromee = false; - let sCadence = 0; let vCadence = 0; let isChoc = false; let isDestructeur = false; @@ -12623,8 +13131,19 @@ rollCombatContact.forEach((button) => { let isAProtectrice = false; let isAAllegee = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + let pasEnergie = false; let sEnergieText = ''; + let hasEnergieRetiree = false; + let energieIsEspoir = false; + let vEnergieRetiree = 0; const energie = attrs.energiePJ; const espoir = attrs.espoir; @@ -12743,7 +13262,6 @@ rollCombatContact.forEach((button) => { isAssistantAttaque = effets.isAssistantAttaque; isCadence = effets.isCadence; - sCadence = effets.sCadence; vCadence = effets.vCadence; isChoc = effets.isChoc; @@ -12778,6 +13296,14 @@ rollCombatContact.forEach((button) => { isEAkimbo = effets.isAkimbo; isEAmbidextrie = effets.isAmbidextrie; + isBourreau = effets.isBourreau; + isDevastation = effets.isDevastation; + isGuidage = effets.isGuidage; + isRegularite = effets.isRegularite; + + eBourreauValue = effets.vBourreau; + eDevastationValue = effets.vDevastation; + if (effets.isConditionnelA) { isConditionnelA = true; } if (effets.isConditionnelD) { isConditionnelD = true; } @@ -12830,8 +13356,7 @@ rollCombatContact.forEach((button) => { ameliorationsO = getWeaponsContactAO(prefix, attrs, isCadence, vCadence, isObliteration, isAntiAnatheme); if (ameliorationsO.isChromee) { - sCadence = ameliorationsO.rCadence; - isChromee = ameliorationsO.isChromee; + isCadence = true; vCadence = ameliorationsO.vCadence; } @@ -12865,6 +13390,7 @@ rollCombatContact.forEach((button) => { vRouagesCasses = ameliorationsO.vRouagesCasses; autresAmeliorationsO = autresAmeliorationsO.concat(ameliorationsO.autresAmeliorations); + autresAmeliorationsO = autresAmeliorationsO.filter((val) => val !== ''); baseDegats += ameliorationsO.diceDegats; baseViolence += ameliorationsO.diceViolence; @@ -12925,15 +13451,41 @@ rollCombatContact.forEach((button) => { bViolence.push(sBonusViolenceFixe); } + if (isGuidage) { + if (armure === 'berserk') { + let sEspoirValue = Math.floor((5 / 2) - 1); + + if (sEspoirValue < 1) { sEspoirValue = 1; } + + hasEnergieRetiree = true; + energieIsEspoir = true; + vEnergieRetiree += sEspoirValue; + } else { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } + } + if (sEnergie) { if (armure === 'berserk') { let sEspoirValue = Math.floor((Number(sEnergieValue) / 2) - 1); if (sEspoirValue < 1) { sEspoirValue = 1; } - autresSpecial.push(`${i18n_espoirRetire} (${sEspoirValue})`); + hasEnergieRetiree = true; + energieIsEspoir = true; + vEnergieRetiree += sEspoirValue; + } else { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + } - newEnergie = Number(espoir) - Number(sEspoirValue); + if (hasEnergieRetiree) { + if (energieIsEspoir) { + newEnergie = Number(espoir) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_espoirRetire} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEspoir; @@ -12943,9 +13495,9 @@ rollCombatContact.forEach((button) => { pasEnergie = true; } } else { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + newEnergie = Number(energie) - Number(vEnergieRetiree); - newEnergie = Number(energie) - Number(sEnergieValue); + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -13030,10 +13582,17 @@ rollCombatContact.forEach((button) => { if (cBonus.length !== 0) { exec.push(`{{cBonus=${cBonus.join(' - ')}}}`); } - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}-${sCadence}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; firstExec.push(jet); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + firstExec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); exec.push(`{{degats=[[${degats.join('+')}]]}}`); @@ -13089,16 +13648,6 @@ rollCombatContact.forEach((button) => { if (isRouagesCasses) { exec.push(`{{obliterationRouagesCassesValue=${vRouagesCasses * 6}}}`); } } - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChromee) { - exec.push(`{{rCadence=${i18n_chromee} (${i18n_cadence} ${vCadence}) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -13184,11 +13733,16 @@ rollCombatContact.forEach((button) => { let finalRoll; if (pasEnergie === false) { + if (isBourreau && !bourreau && !equilibre) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation && !devaste && !equilibre) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + finalRoll = await startRoll(exec.join(' ')); - const rDegats = finalRoll.results.degats.dice; - const rViolence = finalRoll.results.violence.dice; const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; + + const rDegats = finalRoll.results.degats.dice; + const rViolence = finalRoll.results.violence.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -13212,31 +13766,46 @@ rollCombatContact.forEach((button) => { isGriffureGravee, isMasqueBrise, isRouagesCasses, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === tExploit) { const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== false) { - if (armure === 'berserk') { + if (hasEnergieRetiree) { + if (energieIsEspoir) { setAttrs({ espoir: newEnergie }); } else { setAttrs({ energiePJ: newEnergie }); @@ -13539,7 +14108,6 @@ rollCombatDistance.forEach((button) => { let isAssistantAttaque = false; let isAntiAnatheme = false; let isCadence = false; - let sCadence = 0; let vCadence = 0; let isDeuxMains = false; let isDestructeur = false; @@ -13552,7 +14120,6 @@ rollCombatDistance.forEach((button) => { let isTenebricide = false; let isTirRafale = false; let isUltraviolence = false; - let isChambreDouble = false; let isELumiere = false; let lumiereValue = 0; @@ -13560,8 +14127,19 @@ rollCombatDistance.forEach((button) => { let isEAkimbo = false; let isEAmbidextrie = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + let pasEnergie = false; let sEnergieText = ''; + let hasEnergieRetiree = false; + let energieIsEspoir = false; + let vEnergieRetiree = 0; const energie = attrs.energiePJ; const espoir = attrs.espoir; @@ -13666,7 +14244,6 @@ rollCombatDistance.forEach((button) => { isAssistantAttaque = effets.isAssistantAttaque; isCadence = effets.isCadence; - sCadence = effets.sCadence; vCadence = effets.vCadence; isDestructeur = effets.isDestructeur; @@ -13694,6 +14271,14 @@ rollCombatDistance.forEach((button) => { isEAkimbo = effets.isAkimbo; isEAmbidextrie = effets.isAmbidextrie; + isBourreau = effets.isBourreau; + isDevastation = effets.isDevastation; + isGuidage = effets.isGuidage; + isRegularite = effets.isRegularite; + + eBourreauValue = effets.vBourreau; + eDevastationValue = effets.vDevastation; + if (effets.isConditionnelA) { isConditionnelA = true; } if (effets.isConditionnelD) { isConditionnelD = true; } @@ -13724,9 +14309,8 @@ rollCombatDistance.forEach((button) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = ameliorationsA.attaquesSurprisesCondition; } if (ameliorationsA.isChambreDouble) { - isCadence = false; - isChambreDouble = ameliorationsA.isChambreDouble; - sCadence = ameliorationsA.rChambreDouble; + isCadence = true; + vCadence = ameliorationsA.vCadence; } if (ameliorationsA.isJAkimbo) { isEAkimbo = ameliorationsA.isJAkimbo; } @@ -13786,15 +14370,41 @@ rollCombatDistance.forEach((button) => { bViolence.push(sBonusViolenceFixe); } + if (isGuidage) { + if (armure === 'berserk') { + let sEspoirValue = Math.floor((5 / 2) - 1); + + if (sEspoirValue < 1) { sEspoirValue = 1; } + + hasEnergieRetiree = true; + energieIsEspoir = true; + vEnergieRetiree += sEspoirValue; + } else { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } + } + if (sEnergie) { if (armure === 'berserk') { let sEspoirValue = Math.floor((Number(sEnergieValue) / 2) - 1); if (sEspoirValue < 1) { sEspoirValue = 1; } - autresSpecial.push(`${i18n_espoirRetire} (${sEspoirValue})`); + hasEnergieRetiree = true; + energieIsEspoir = true; + vEnergieRetiree += sEspoirValue; + } else { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + } - newEnergie = Number(espoir) - Number(sEspoirValue); + if (hasEnergieRetiree) { + if (energieIsEspoir) { + newEnergie = Number(espoir) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_espoirRetire} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEspoir; @@ -13804,9 +14414,9 @@ rollCombatDistance.forEach((button) => { pasEnergie = true; } } else { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + newEnergie = Number(energie) - Number(vEnergieRetiree); - newEnergie = Number(energie) - Number(sEnergieValue); + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -13890,10 +14500,17 @@ rollCombatDistance.forEach((button) => { if (cBonus.length !== 0) { exec.push(`{{cBonus=${cBonus.join(' - ')}}}`); } - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}-${sCadence}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; firstExec.push(jet); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + firstExec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); exec.push(`{{degats=[[${degats.join('+')}]]}}`); @@ -13937,16 +14554,6 @@ rollCombatDistance.forEach((button) => { } } - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChambreDouble) { - exec.push(`{{rCadence=${i18n_chambreDouble} (${i18n_cadence} 2) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -14018,8 +14625,12 @@ rollCombatDistance.forEach((button) => { let finalRoll; if (pasEnergie === false) { + if (isBourreau && !bourreau && !equilibre) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation && !devaste && !equilibre) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -14040,41 +14651,53 @@ rollCombatDistance.forEach((button) => { isFureur, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === tExploit) { const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== false) { - if (armure === 'berserk') { - setAttrs({ - espoir: newEnergie, - }); + if (hasEnergieRetiree) { + if (energieIsEspoir) { + setAttrs({ espoir: newEnergie }); } else { - setAttrs({ - energiePJ: newEnergie, - }); + setAttrs({ energiePJ: newEnergie }); } if (newEnergie === 0) { - const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${name}}} {{text=${sEnergieText}}}`); + const noEnergieRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=@{name}}} {{text=${sEnergieText}}}${name}`); finishRoll(noEnergieRoll.rollId, {}); } } @@ -15306,12 +15929,16 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { 'repeating_armeDruidLion_assistanceAttaque', 'repeating_armeDruidLion_barrage', 'repeating_armeDruidLion_barrageValue', + 'repeating_armeDruidLion_bourreau', + 'repeating_armeDruidLion_bourreauValue', 'repeating_armeDruidLion_cadence', 'repeating_armeDruidLion_cadenceValue', + 'repeating_armeDruidLion_cadenceactif', 'repeating_armeDruidLion_chargeur', 'repeating_armeDruidLion_chargeurValue', 'repeating_armeDruidLion_choc', 'repeating_armeDruidLion_chocValue', + 'repeating_armeDruidLion_conviction', 'repeating_armeDruidLion_defense', 'repeating_armeDruidLion_defenseValue', 'repeating_armeDruidLion_degatContinue', @@ -15320,11 +15947,16 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { 'repeating_armeDruidLion_demoralisant', 'repeating_armeDruidLion_designation', 'repeating_armeDruidLion_destructeur', + 'repeating_armeDruidLion_devastation', + 'repeating_armeDruidLion_devastationValue', 'repeating_armeDruidLion_dispersion', 'repeating_armeDruidLion_dispersionValue', 'repeating_armeDruidLion_enChaine', 'repeating_armeDruidLion_esperance', + 'repeating_armeDruidLion_excellence', 'repeating_armeDruidLion_fureur', + 'repeating_armeDruidLion_guidage', + 'repeating_armeDruidLion_guidageactif', 'repeating_armeDruidLion_ignoreArmure', 'repeating_armeDruidLion_ignoreCdF', 'repeating_armeDruidLion_akimbo', @@ -15345,6 +15977,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { 'repeating_armeDruidLion_precision', 'repeating_armeDruidLion_reaction', 'repeating_armeDruidLion_reactionValue', + 'repeating_armeDruidLion_regularite', 'repeating_armeDruidLion_silencieux', 'repeating_armeDruidLion_soumission', 'repeating_armeDruidLion_tenebricite', @@ -15461,6 +16094,15 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { let isUltraviolence = false; let isSurprise = false; let isTenebricide = false; + let isCadence = false; + + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; const cRoll = []; const AE = []; @@ -15501,8 +16143,6 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { // FIN DE GESTION DES ASPECTS EXCEPTIONNELS // GESTION DES EFFETS - let rCadence = 0; - const eAntiAnatheme = attrs.repeating_armeDruidLion_antiAnatheme; const eAntiVehicule = attrs.repeating_armeDruidLion_antiVehicule; const eArtillerie = attrs.repeating_armeDruidLion_artillerie; @@ -15511,12 +16151,16 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { const eAssistanceAttaque = attrs.repeating_armeDruidLion_assistanceAttaque; const eBarrage = attrs.repeating_armeDruidLion_barrage; const eBarrageV = attrs.repeating_armeDruidLion_barrageValue; + const eBourreau = attrs.repeating_armeDruidLion_bourreau; + const eBourreauV = attrs.repeating_armeDruidLion_bourreauValue; const eCadence = attrs.repeating_armeDruidLion_cadence; - const eCadenceV = attrs.repeating_armeDruidLion_cadenceValue; + const eCadenceV = +attrs.repeating_armeDruidLion_cadenceValue; + const eCadenceActif = +attrs.repeating_armeDruidLion_cadenceactif; const eChargeur = attrs.repeating_armeDruidLion_chargeur; const eChargeurV = attrs.repeating_armeDruidLion_chargeurValue; const eChoc = attrs.repeating_armeDruidLion_choc; const eChocV = attrs.repeating_armeDruidLion_chocValue; + const eConviction = attrs.repeating_armeDruidLion_conviction; const eDefense = attrs.repeating_armeDruidLion_defense; const eDefenseV = attrs.repeating_armeDruidLion_defenseValue; const eDegatsContinus = attrs.repeating_armeDruidLion_degatContinue; @@ -15526,12 +16170,17 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { const eDesignation = attrs.repeating_armeDruidLion_designation; const eDestructeur = attrs.repeating_armeDruidLion_destructeur; const eDestructeurV = 2; + const eDevastation = attrs.repeating_armeDruidLion_devastation; + const eDevastationV = attrs.repeating_armeDruidLion_devastationValue; const eDispersion = attrs.repeating_armeDruidLion_dispersion; const eDispersionV = attrs.repeating_armeDruidLion_dispersionValue; const eEnChaine = attrs.repeating_armeDruidLion_enChaine; const eEsperance = attrs.repeating_armeDruidLion_esperance; + const eExcellence = attrs.repeating_armeDruidLion_excellence; const eFureur = attrs.repeating_armeDruidLion_fureur; const eFureurV = 4; + const eGuidage = attrs.repeating_armeDruidLion_guidage; + const eGuidageActif = +attrs.repeating_armeDruidLion_guidageactif; const eIgnoreArmure = attrs.repeating_armeDruidLion_ignoreArmure; const eIgnoreCDF = attrs.repeating_armeDruidLion_ignoreCdF; const eJAkimbo = attrs.repeating_armeDruidLion_akimbo; @@ -15553,6 +16202,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { const ePrecision = attrs.repeating_armeDruidLion_precision; const eReaction = attrs.repeating_armeDruidLion_reaction; const eReactionV = attrs.repeating_armeDruidLion_reactionValue; + const eRegularite = attrs.repeating_armeDruidLion_regularite; const eSilencieux = attrs.repeating_armeDruidLion_silencieux; const eSoumission = attrs.repeating_armeDruidLion_soumission; const eTenebricide = attrs.repeating_armeDruidLion_tenebricite; @@ -15590,8 +16240,17 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence !== '0') { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauV} ${i18n_inclus}}}`); + } + + if (eCadence && eCadenceActif === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); + } else if (eCadence && eCadenceActif === 1) { + isCadence = true; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc !== '0') { @@ -15600,6 +16259,10 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { exec.push(`{{chocCondition=${i18n_chocCondition}}}`); } + if (eConviction !== 0) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant !== '0') { isConditionnelA = true; exec.push(`{{demoralisant=${i18n_demoralisant}}}`); @@ -15615,6 +16278,12 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { isDestructeur = true; } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationV} ${i18n_inclus}}}`); + } + if (eEnChaine !== '0') { isConditionnelD = true; exec.push(`{{enChaine=${i18n_enChaine}}}`); @@ -15629,6 +16298,13 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { exec.push(`{{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur !== '0') { isConditionnelV = true; exec.push(`{{fureur=${i18n_fureur}}}`); @@ -15638,6 +16314,13 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { isFureur = true; } + if (eGuidage !== '0' && eGuidageActif !== 0) { + isGuidage = true; + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage !== '0') { + autresEffets.push(i18n_guidage); + } + if (eLeste !== '0') { if (portee !== '^{portee-contact}') { bChairD = vChair; } @@ -15681,6 +16364,11 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { exec.push(`{{vPrecision=${vPrecision}}}`); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux !== '0') { const totalSilencieux = Math.ceil((vMasque / 2) + vAEMasque); @@ -15759,8 +16447,6 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { // FIN GESTION DES EFFETS // GESTION DES AMELIORATIONS - let rChambreDouble = 0; - const aChargeurGrappes = attrs.repeating_armeDruidLion_chargeurGrappes; const aCanonLong = attrs.repeating_armeDruidLion_canonLong; const aCanonRaccourci = attrs.repeating_armeDruidLion_canonRaccourci; @@ -15800,9 +16486,12 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { exec.push(`{{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`); } - if (aChambreDouble !== '0') { - if (eCadence !== 0) { autresAmeliorations.push(i18n_chambreDouble); } else if (eCadence === 0) { rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; } - } + if (aChambreDouble !== '0' && eCadenceActif === 1) { + if (eCadence !== '0' && eCadenceV >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else { + isCadence = true; + exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`); + } + } else if (aChambreDouble !== '0' && eCadenceActif === 0) { autresAmeliorations.push(i18n_chambreDouble); } if (aLunetteIntelligente !== '0') { isConditionnelA = true; @@ -15893,7 +16582,7 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { const sBonusViolenceD6 = attrs.repeating_armeDruidLion_bVDiversD6; const sBonusViolenceFixe = +attrs.repeating_armeDruidLion_bVDiversFixe; - const sEnergie = attrs.repeating_armeDruidLion_energie; + const sEnergie = +attrs.repeating_armeDruidLion_energie; const sEnergieValue = attrs.repeating_armeDruidLion_energieValue; let pasDEnergie = false; @@ -15914,10 +16603,23 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { bonusViolence.push(sBonusViolenceFixe); } - if (sEnergie !== '0') { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; - newEnergie = Number(energie) - Number(sEnergieValue); + if (eGuidage !== 0 && eGuidageActif !== 0) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } + + if (sEnergie !== 0) { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + newEnergie = Number(energie) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -15942,8 +16644,17 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { bonus = bonus.concat(AE); - exec.push(`{{jet=[[ {[[{${cRoll.join('+')}-${rCadence}-${rChambreDouble}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`); - exec.push(`{{Exploit=[[${cRoll.join('+')}-${rCadence}-${rChambreDouble}]]}}`); + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; + + exec.push(jet); + exec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); if (diceDegats < 0) { diceDegats = 0; } @@ -15998,13 +16709,6 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { } } - if (rCadence !== 0) { - exec.push(`{{rCadence=${i18n_cadence} ${eCadenceV} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${rCadence}D6}}`); - } - - if (rChambreDouble !== 0) { exec.push(`{{vChambreDouble=${rChambreDouble}}}`); } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -16057,13 +16761,11 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { if (isConditionnelV === true) { exec.push('{{violenceConditionnel=true}}'); } - log(exec); - if (pasDEnergie === false) { const finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; - const tJetDice = finalRoll.results.jet.dice.length; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -16084,29 +16786,45 @@ on('clicked:repeating_armeDruidLion:combatdruidroll', async (info) => { isFureur, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); + + if (tJet !== 0 && computed.basejet === tExploit) { + const exploitRoll = await startRoll(`@{jetGM} &{template:simple} {{Nom=^{druid-companion-lion}}} {{special1=@{name}}} {{special1B=${i18n_exploit}}}${jet}`); + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 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, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== '0') { + if (hasEnergieRetiree) { setAttrs({ [nEnergie]: newEnergie, }); @@ -16457,12 +17175,16 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { 'repeating_armeMALDruidLion_assistanceAttaque', 'repeating_armeMALDruidLion_barrage', 'repeating_armeMALDruidLion_barrageValue', + 'repeating_armeMALDruidLion_bourreau', + 'repeating_armeMALDruidLion_bourreauValue', 'repeating_armeMALDruidLion_cadence', 'repeating_armeMALDruidLion_cadenceValue', + 'repeating_armeMALDruidLion_cadenceactif', 'repeating_armeMALDruidLion_chargeur', 'repeating_armeMALDruidLion_chargeurValue', 'repeating_armeMALDruidLion_choc', 'repeating_armeMALDruidLion_chocValue', + 'repeating_armeMALDruidLion_conviction', 'repeating_armeMALDruidLion_defense', 'repeating_armeMALDruidLion_defenseValue', 'repeating_armeMALDruidLion_degatContinue', @@ -16471,11 +17193,16 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { 'repeating_armeMALDruidLion_demoralisant', 'repeating_armeMALDruidLion_designation', 'repeating_armeMALDruidLion_destructeur', + 'repeating_armeMALDruidLion_devastation', + 'repeating_armeMALDruidLion_devastationValue', 'repeating_armeMALDruidLion_dispersion', 'repeating_armeMALDruidLion_dispersionValue', 'repeating_armeMALDruidLion_enChaine', 'repeating_armeMALDruidLion_esperance', + 'repeating_armeMALDruidLion_excellence', 'repeating_armeMALDruidLion_fureur', + 'repeating_armeMALDruidLion_guidage', + 'repeating_armeMALDruidLion_guidageactif', 'repeating_armeMALDruidLion_ignoreArmure', 'repeating_armeMALDruidLion_ignoreCdF', 'repeating_armeMALDruidLion_akimbo', @@ -16496,6 +17223,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { 'repeating_armeMALDruidLion_precision', 'repeating_armeMALDruidLion_reaction', 'repeating_armeMALDruidLion_reactionValue', + 'repeating_armeMALDruidLion_regularite', 'repeating_armeMALDruidLion_silencieux', 'repeating_armeMALDruidLion_soumission', 'repeating_armeMALDruidLion_tenebricite', @@ -16616,6 +17344,15 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { let isUltraviolence = false; let isTenebricide = false; let isSurprise = false; + let isCadence = false; + + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; AE.push(AEValue); @@ -16652,8 +17389,6 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { // FIN DE GESTION DES ASPECTS EXCEPTIONNELS // GESTION DES EFFETS - let rCadence = 0; - const eAntiAnatheme = attrs.repeating_armeMALDruidLion_antiAnatheme; const eAntiVehicule = attrs.repeating_armeMALDruidLion_antiVehicule; const eArtillerie = attrs.repeating_armeMALDruidLion_artillerie; @@ -16662,12 +17397,16 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { const eAssistanceAttaque = attrs.repeating_armeMALDruidLion_assistanceAttaque; const eBarrage = attrs.repeating_armeMALDruidLion_barrage; const eBarrageV = attrs.repeating_armeMALDruidLion_barrageValue; + const eBourreau = attrs.repeating_armeMALDruidLion_bourreau; + const eBourreauV = attrs.repeating_armeMALDruidLion_bourreauValue; const eCadence = attrs.repeating_armeMALDruidLion_cadence; const eCadenceV = attrs.repeating_armeMALDruidLion_cadenceValue; + const eCadenceActif = +attrs.repeating_armeMALDruidLion_cadenceactif; const eChargeur = attrs.repeating_armeMALDruidLion_chargeur; const eChargeurV = attrs.repeating_armeMALDruidLion_chargeurValue; const eChoc = attrs.repeating_armeMALDruidLion_choc; const eChocV = attrs.repeating_armeMALDruidLion_chocValue; + const eConviction = attrs.repeating_armeMALDruidLion_conviction; const eDefense = attrs.repeating_armeMALDruidLion_defense; const eDefenseV = attrs.repeating_armeMALDruidLion_defenseValue; const eDegatsContinus = attrs.repeating_armeMALDruidLion_degatContinue; @@ -16677,12 +17416,17 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { const eDesignation = attrs.repeating_armeMALDruidLion_designation; const eDestructeur = attrs.repeating_armeMALDruidLion_destructeur; const eDestructeurV = 2; + const eDevastation = attrs.repeating_armeMALDruidLion_devastation; + const eDevastationV = attrs.repeating_armeMALDruidLion_devastationValue; const eDispersion = attrs.repeating_armeMALDruidLion_dispersion; const eDispersionV = attrs.repeating_armeMALDruidLion_dispersionValue; const eEnChaine = attrs.repeating_armeMALDruidLion_enChaine; const eEsperance = attrs.repeating_armeMALDruidLion_esperance; + const eExcellence = attrs.repeating_armeMALDruidLion_excellence; const eFureur = attrs.repeating_armeMALDruidLion_fureur; const eFureurV = 4; + const eGuidage = attrs.repeating_armeMALDruidLion_guidage; + const eGuidageActif = +attrs.repeating_armeMALDruidLion_guidageactif; const eIgnoreArmure = attrs.repeating_armeMALDruidLion_ignoreArmure; const eIgnoreCDF = attrs.repeating_armeMALDruidLion_ignoreCdF; const eJAkimbo = attrs.repeating_armeMALDruidLion_akimbo; @@ -16704,6 +17448,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { const ePrecision = attrs.repeating_armeMALDruidLion_precision; const eReaction = attrs.repeating_armeMALDruidLion_reaction; const eReactionV = attrs.repeating_armeMALDruidLion_reactionValue; + const eRegularite = attrs.repeating_armeMALDruidLion_regularite; const eSilencieux = attrs.repeating_armeMALDruidLion_silencieux; const eSoumission = attrs.repeating_armeMALDruidLion_soumission; const eTenebricide = attrs.repeating_armeMALDruidLion_tenebricite; @@ -16740,8 +17485,17 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = `{{attaqueSurpriseCondition=${i18n_attaqueSurpriseCondition}}}`; } } - if (eCadence !== '0') { - rCadence = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; + if (eBourreau) { + isBourreau = true; + eBourreauValue = eBourreauV; + exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauV} ${i18n_inclus}}}`); + } + + if (eCadence && eCadenceActif === 0) { + autresEffets.push(`${i18n_cadence} ${eCadenceV}`); + } else if (eCadence && eCadenceActif === 1) { + isCadence = true; + exec.push(`{{vCadence=${eCadenceV} ${i18n_inclus}}}`); } if (eChoc !== '0') { @@ -16750,6 +17504,10 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{chocCondition=${i18n_chocCondition}}}`); } + if (eConviction !== 0) { + autresEffets.push(i18n_conviction); + } + if (eDemoralisant !== '0') { isConditionnelA = true; exec.push(`{{demoralisant=${i18n_demoralisant}}}`); @@ -16764,6 +17522,12 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{destructeurCondition=${i18n_destructeurCondition}}}`); } + if (eDevastation) { + isDevastation = true; + eDevastationValue = eDevastationV; + exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationV} ${i18n_inclus}}}`); + } + if (eEnChaine !== '0') { isConditionnelD = true; exec.push(`{{enChaine=${i18n_enChaine}}}`); @@ -16778,6 +17542,13 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{esperanceConditionV=${i18n_esperanceConditionV}}}`); } + if (eExcellence) { + isConditionnelD = true; + isConditionnelV = true; + + exec.push(`{{excellence=${i18n_excellence}}} {{excellenceCondition=${i18n_excellenceCondition}}}`); + } + if (eFureur !== '0') { isConditionnelV = true; isFureur = true; @@ -16786,6 +17557,13 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{fureurCondition=${i18n_fureurCondition}}}`); } + if (eGuidage !== '0' && eGuidageActif !== 0) { + isGuidage = true; + exec.push(`{{vGuidage=${i18n_guidageInclus}}}`); + } else if (eGuidage !== '0') { + autresEffets.push(i18n_guidage); + } + if (eLeste !== '0') { if (portee !== '^{portee-contact}') { bChairD = vChair; } @@ -16828,6 +17606,11 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{vPrecision=${vPrecision}}}`); } + if (eRegularite) { + isRegularite = true; + exec.push('{{vRegularite=[[0]]}}'); + } + if (eSilencieux !== '0') { const totalSilencieux = Math.ceil((vMasque / 2) + vAEMasque); @@ -16908,8 +17691,6 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { // FIN GESTION DES EFFETS // GESTION DES AMELIORATIONS - let rChambreDouble = 0; - const aChargeurGrappes = attrs.repeating_armeMALDruidLion_chargeurGrappes; const aCanonLong = attrs.repeating_armeMALDruidLion_canonLong; const aCanonRaccourci = attrs.repeating_armeMALDruidLion_canonRaccourci; @@ -16949,9 +17730,12 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { exec.push(`{{canonRaccourciCondition=${i18n_canonRaccourciCondition}}}`); } - if (aChambreDouble !== '0') { - if (eCadence !== 0) { autresAmeliorations.push(i18n_chambreDouble); } else if (eCadence === 0) { rChambreDouble = '?{Plusieurs cibles ?|Oui, 3|Non, 0}'; } - } + if (aChambreDouble !== '0' && eCadenceActif === 1) { + if (eCadence !== '0' && eCadenceV >= 2) { autresAmeliorations.push(i18n_chambreDouble); } else { + isCadence = true; + exec.push(`{{vChambreDouble=2) ${i18n_inclus}}}`); + } + } else if (aChambreDouble !== '0' && eCadenceActif === 0) { autresAmeliorations.push(i18n_chambreDouble); } if (aLunetteIntelligente !== '0') { isConditionnelA = true; @@ -17063,10 +17847,23 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { bonusViolence.push(sBonusViolenceFixe); } - if (sEnergie !== '0') { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; - newEnergie = Number(energie) - Number(sEnergieValue); + if (eGuidage !== 0 && eGuidageActif !== 0) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } + + if (sEnergie !== '0') { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + newEnergie = Number(energie) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -17091,8 +17888,17 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { bonus = bonus.concat(AE); - exec.push(`{{jet=[[ {[[{${cRoll.join('+')}-${rCadence}-${rChambreDouble}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0]]}}`); - exec.push(`{{Exploit=[[${cRoll.join('+')}-${rCadence}-${rChambreDouble}]]}}`); + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; + + exec.push(jet); + exec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); if (diceDegats < 0) { diceDegats = 0; } @@ -17147,13 +17953,6 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { } } - if (rCadence !== 0) { - exec.push(`{{rCadence=${i18n_cadence} ${eCadenceV} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${rCadence}D6}}`); - } - - if (rChambreDouble !== 0) { exec.push(`{{vChambreDouble=${rChambreDouble}}}`); } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -17194,7 +17993,7 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { const finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; - const tJetDice = finalRoll.results.jet.dice.length; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -17215,29 +18014,45 @@ on('clicked:repeating_armeMALDruidLion:combatdruidroll', async (info) => { isFureur, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bonusDegats, tViolence, rViolence, bonusViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === 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 rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== '0') { + if (hasEnergieRetiree) { setAttrs({ [nEnergie]: newEnergie, }); @@ -23877,11 +24692,8 @@ rollCombatPNJContact.forEach((button) => { let isSurprise = false; let isCadence = false; - let rCadence = '0'; let vCadence = 0; - let isChromee = false; - let isArmeAzurine = false; let vArmeAzurine = 0; @@ -23900,6 +24712,14 @@ rollCombatPNJContact.forEach((button) => { let isRouagesCasses = false; let vRouagesCasses = 0; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + let attaquesSurprises = []; let attaquesSurprisesValue = []; let attaquesSurprisesCondition = ''; @@ -24114,9 +24934,16 @@ rollCombatPNJContact.forEach((button) => { isFureur = rEffets.isFureur; isCadence = rEffets.isCadence; - rCadence = rEffets.rCadence || '0'; vCadence = rEffets.vCadence; + isBourreau = rEffets.isBourreau; + isDevastation = rEffets.isDevastation; + isGuidage = rEffets.isGuidage; + isRegularite = rEffets.isRegularite; + + eBourreauValue = rEffets.vBourreau; + eDevastationValue = rEffets.vDevastation; + attaquesSurprises = attaquesSurprises.concat(rEffets.attaquesSurprises); attaquesSurprisesValue = attaquesSurprisesValue.concat(rEffets.attaquesSurprisesValue); attaquesSurprisesCondition = rEffets.attaquesSurprisesCondition; @@ -24182,13 +25009,16 @@ rollCombatPNJContact.forEach((button) => { if (rAO.vCadence > 0) { isCadence = false; - rCadence = rAO.rCadence; vCadence = rAO.vCadence; } if (rAO.isObliteration) { isObliteration = true; } - isChromee = rAO.isChromee; + if (rAO.isChromee) { + isCadence = true; + vCadence = rAO.vCadence; + } + isCraneRieur = rAO.isCraneRieur; isArmeAzurine = rAO.isArmeAzurine; @@ -24233,6 +25063,8 @@ rollCombatPNJContact.forEach((button) => { const sEnergieValue = attrs[`${prefix}energieValue`]; let sEnergieText = ''; let pasEnergie = false; + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; let newEnergie = 0; if (sBonusDegats) { @@ -24247,10 +25079,20 @@ rollCombatPNJContact.forEach((button) => { bViolence += Number(sBonusViolenceFixe); } - if (sEnergie) { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + if (isGuidage) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } - newEnergie = Number(energie) - Number(sEnergieValue); + if (sEnergie) { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + newEnergie = Number(energie) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -24267,13 +25109,21 @@ rollCombatPNJContact.forEach((button) => { if (cRoll.length === 0) { cRoll.push(0); } - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}-${rCadence}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; + firstExec.push(jet); + firstExec.push(baseJet); bonus.push(AEValue); exec.push(`{{vAE=${AEValue}}}`); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); if (diceDegats < 0) { diceDegats = 0; } @@ -24283,16 +25133,6 @@ rollCombatPNJContact.forEach((button) => { firstExec.push(`{{degats=[[${diceDegats}D6+${bDegats}]]}}`); firstExec.push(`{{violence=[[${diceViolence}D6+${bViolence}]]}}`); - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChromee) { - exec.push(`{{rCadence=${i18n_chromee} (${i18n_cadence} ${vCadence}) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${rCadence}D}}`); - } - if (isObliteration) { let ASObliteration = []; let ASValueObliteration = []; @@ -24397,6 +25237,9 @@ rollCombatPNJContact.forEach((button) => { if (isConditionnelV) { exec.push('{{violenceConditionnel=true}}'); } + if (isBourreau) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + firstExec = firstExec.concat(exec); // ROLL @@ -24409,6 +25252,7 @@ rollCombatPNJContact.forEach((button) => { const rViolence = finalRoll.results.violence.dice; const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -24429,30 +25273,45 @@ rollCombatPNJContact.forEach((button) => { isGriffureGravee, isMasqueBrise, isRouagesCasses, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === tExploit) { const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== false) { + if (hasEnergieRetiree) { setAttrs({ energiePNJ: newEnergie, }); @@ -24651,11 +25510,11 @@ rollCombatDistancePNJ.forEach((button) => { let aspect = attrs[`${prefix}AspectPNJ`] || '0'; if (button === 'repeating_armeDist:armedistancepnj' || button === 'repeating_armeDistVehicule:armedistancepnj') { - const dName = attrs[`${prefix}ArmeDist`] || ''; - const dPortee = attrs[`${prefix}armeDistPortee`] || '^{portee-contact}'; + name = attrs[`${prefix}ArmeDist`] || ''; + portee = attrs[`${prefix}armeDistPortee`] || '^{portee-contact}'; - name = `{{special1=${dName}}}`; - portee = `{{portee=^{portee} ${dPortee}}}`; + exec.push(`{{special1=${name}}}`); + exec.push(`{{portee=^{portee} ${portee}}}`); diceDegats = Number(attrs[`${prefix}armeDistDegat`]) || 0; bDegats = Number(attrs[`${prefix}armeDistBDegat`]) || 0; @@ -24693,7 +25552,6 @@ rollCombatDistancePNJ.forEach((button) => { let isAssistantAttaque = false; let isAntiAnatheme = false; let isCadence = false; - let sCadence = 0; let vCadence = 0; let isDestructeur = false; let isMeurtrier = false; @@ -24701,13 +25559,22 @@ rollCombatDistancePNJ.forEach((button) => { let isObliteration = false; let isTenebricide = false; let isTirRafale = false; - let isChambreDouble = false; let isSurprise = false; let isUltraviolence = false; let isFureur = false; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + let pasEnergie = false; let sEnergieText = ''; + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; const energie = attrs.energiePNJ; let autresEffets = []; @@ -24757,7 +25624,6 @@ rollCombatDistancePNJ.forEach((button) => { isAssistantAttaque = effets.isAssistantAttaque; isCadence = effets.isCadence; - sCadence = effets.sCadence; vCadence = effets.vCadence; isDestructeur = effets.isDestructeur; @@ -24778,6 +25644,14 @@ rollCombatDistancePNJ.forEach((button) => { isFureur = effets.isFureur; isUltraviolence = effets.isUltraviolence; + isBourreau = effets.isBourreau; + isDevastation = effets.isDevastation; + isGuidage = effets.isGuidage; + isRegularite = effets.isRegularite; + + eBourreauValue = effets.vBourreau; + eDevastationValue = effets.vDevastation; + if (isLeste) { bDegats += Math.ceil(vChair / 2); exec.push(`{{vLeste=${vChair}}}`); @@ -24819,9 +25693,8 @@ rollCombatDistancePNJ.forEach((button) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = ameliorationsA.attaquesSurprisesCondition; } if (ameliorationsA.isChambreDouble) { - isCadence = false; - isChambreDouble = ameliorationsA.isChambreDouble; - sCadence = ameliorationsA.rChambreDouble; + isCadence = true; + vCadence = ameliorationsA.vCadence; } autresEffets = autresEffets.concat(ameliorationsA.autresEffets); @@ -24866,10 +25739,20 @@ rollCombatDistancePNJ.forEach((button) => { bViolence += Number(sBonusViolenceFixe); } - if (sEnergie) { - autresSpecial.push(`${i18n_energieRetiree} (${sEnergieValue})`); + if (isGuidage) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } - newEnergie = Number(energie) - Number(sEnergieValue); + if (sEnergie) { + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + newEnergie = Number(energie) - Number(vEnergieRetiree); + + autresSpecial.push(`${i18n_energieRetiree} (${vEnergieRetiree})`); if (newEnergie === 0) { sEnergieText = i18n_plusEnergie; @@ -24892,10 +25775,17 @@ rollCombatDistancePNJ.forEach((button) => { if (cBase.length !== 0) { exec.push(`{{cBase=${cBase.join(' - ')}}}`); } - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}-${sCadence}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; firstExec.push(jet); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + firstExec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); if (diceDegats < 0) { diceDegats = 0; } @@ -24943,16 +25833,6 @@ rollCombatDistancePNJ.forEach((button) => { } } - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChambreDouble) { - exec.push(`{{rCadence=${i18n_chambreDouble} (${i18n_cadence} 2) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -25007,6 +25887,9 @@ rollCombatDistancePNJ.forEach((button) => { if (effets.firstExec) { firstExec = firstExec.concat(effets.firstExec); } + if (isBourreau) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + exec = firstExec.concat(exec); // ROLL @@ -25015,6 +25898,7 @@ rollCombatDistancePNJ.forEach((button) => { if (pasEnergie === false) { finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -25032,29 +25916,45 @@ rollCombatDistancePNJ.forEach((button) => { isFureur, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, [bDegats], tViolence, rViolence, [bViolence], conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); 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 rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); } - if (sEnergie !== false) { + if (hasEnergieRetiree) { setAttrs({ energiePNJ: newEnergie, }); @@ -25668,7 +26568,6 @@ rollCombatAutrePNJ.forEach((button) => { let isAssistantAttaque = false; let isAntiAnatheme = false; let isCadence = false; - let sCadence = 0; let vCadence = 0; let isDestructeur = false; let vDestructeur = 0; @@ -25678,7 +26577,6 @@ rollCombatAutrePNJ.forEach((button) => { let isObliteration = false; let isTenebricide = false; let isTirRafale = false; - let isChambreDouble = false; let isFureur = false; let isUltraviolence = false; let isSurprise = false; @@ -25686,6 +26584,17 @@ rollCombatAutrePNJ.forEach((button) => { let isELumiere = false; let lumiereValue = 0; + let isBourreau = false; + let isDevastation = false; + let isGuidage = false; + let isRegularite = false; + + let eBourreauValue = 0; + let eDevastationValue = 0; + + let hasEnergieRetiree = false; + let vEnergieRetiree = 0; + let autresEffets = []; let autresAmeliorationsA = []; const autresSpecial = []; @@ -25710,7 +26619,6 @@ rollCombatAutrePNJ.forEach((button) => { isAssistantAttaque = effets.isAssistantAttaque; isCadence = effets.isCadence; - sCadence = effets.sCadence; vCadence = effets.vCadence; isDestructeur = effets.isDestructeur; @@ -25733,6 +26641,14 @@ rollCombatAutrePNJ.forEach((button) => { isELumiere = effets.isELumiere; lumiereValue = Number(effets.eLumiereValue); + isBourreau = effets.isBourreau; + isDevastation = effets.isDevastation; + isGuidage = effets.isGuidage; + isRegularite = effets.isRegularite; + + eBourreauValue = effets.vBourreau; + eDevastationValue = effets.vDevastation; + if (effets.isConditionnelA) { isConditionnelA = true; } if (effets.isConditionnelD) { isConditionnelD = true; } @@ -25760,9 +26676,8 @@ rollCombatAutrePNJ.forEach((button) => { if (attaquesSurprisesCondition === '') { attaquesSurprisesCondition = ameliorationsA.attaquesSurprisesCondition; } if (ameliorationsA.isChambreDouble) { - isCadence = false; - isChambreDouble = ameliorationsA.isChambreDouble; - sCadence = ameliorationsA.rChambreDouble; + isCadence = true; + vCadence = ameliorationsA.vCadence; } autresEffets = autresEffets.concat(ameliorationsA.autresEffets); @@ -25806,8 +26721,18 @@ rollCombatAutrePNJ.forEach((button) => { bViolence.push(sBonusViolenceFixe); } + if (isGuidage) { + hasEnergieRetiree = true; + vEnergieRetiree += 5; + } + if (sEnergie) { - autresSpecial.push(`^{energie} (${sEnergieValue})`); + hasEnergieRetiree = true; + vEnergieRetiree += +sEnergieValue; + } + + if (hasEnergieRetiree) { + autresSpecial.push(`^{energie} (${vEnergieRetiree})`); } // FIN DE GESTION DES BONUS SPECIAUX @@ -25829,10 +26754,17 @@ rollCombatAutrePNJ.forEach((button) => { violence.push(`${diceViolence}D6`); violence = violence.concat(bViolence); - const jet = `{{jet=[[ {{[[{${cRoll.join('+')}, 0}kh1]]d6cs2cs4cs6cf1cf3cf5s%2}=0}]]}}`; + const pairOrImpair = isGuidage === true ? 'cs1cs3cs5cf2cf4cf6s' : 'cs2cs4cs6cf1cf3cf5s'; + + const malusRoll = isCadence === true ? 3 : 0; + const total = Math.max(cRoll.reduce((accumulateur, valeurCourante) => accumulateur + valeurCourante, 0) - malusRoll, 0); + + const jet = `{{jet=[[ ${total}d6${pairOrImpair}]]}}`; + const baseJet = '{{basejet=[[0]]}}'; firstExec.push(jet); - exec.push(`{{Exploit=[[${cRoll.join('+')}]]}}`); + firstExec.push(baseJet); + exec.push(`{{Exploit=[[${total}]]}}`); exec.push(`{{bonus=[[${bonus.join('+')}]]}}`); exec.push(`{{degats=[[${degats.join('+')}]]}}`); @@ -25876,16 +26808,6 @@ rollCombatAutrePNJ.forEach((button) => { } } - if (isCadence) { - exec.push(`{{rCadence=${i18n_cadence} ${vCadence} ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - - if (isChambreDouble) { - exec.push(`{{rCadence=${i18n_chambreDouble} (${i18n_cadence} 2) ${i18n_inclus}}}`); - exec.push(`{{vCadence=${sCadence}D}}`); - } - if (eASAssassinValue > 0) { attaquesSurprises.unshift(eASAssassin); attaquesSurprisesValue.unshift(`${eASAssassinValue}D6`); @@ -25942,11 +26864,15 @@ rollCombatAutrePNJ.forEach((button) => { if (effets.firstExec) { firstExec = firstExec.concat(effets.firstExec); } + if (isBourreau) { exec.push(`{{vBourreau=${i18n_bourreau} ${eBourreauValue} ${i18n_inclus}}}`); } + if (isDevastation) { exec.push(`{{vDevastation=${i18n_devastation} ${eDevastationValue} ${i18n_inclus}}}`); } + exec = firstExec.concat(exec); const finalRoll = await startRoll(exec.join(' ')); const tJet = finalRoll.results.jet.result; + const rJet = finalRoll.results.jet.dice; const tBonus = finalRoll.results.bonus.result; const tExploit = finalRoll.results.Exploit.result; @@ -25964,23 +26890,39 @@ rollCombatAutrePNJ.forEach((button) => { isSurprise, isMeurtrier, isUltraviolence, + isBourreau, + isDevastation, + isRegularite, + isGuidage, }; - const computed = updateRoll(finalRoll, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions); - - const finalComputed = { - jet: tJet + tBonus, + const conditionsValues = { + eBourreauValue, + eDevastationValue, }; - Object.assign(finalComputed, computed); + const computed = updateRoll(finalRoll, rJet, tBonus, tDegats, rDegats, bDegats, tViolence, rViolence, bViolence, conditions, conditionsValues); - finishRoll(finalRoll.rollId, finalComputed); + finishRoll(finalRoll.rollId, computed); - if (tJet !== 0 && tJet === tExploit) { + if (tJet !== 0 && computed.basejet === tExploit) { const exploitRoll = await startRoll(`${roll}@{jetGM} &{template:simple} {{Nom=@{name}}} {{special1=${i18n_exploit}}}${jet}`); - const tRExploit = exploitRoll.results.jet.result; + const rExploit = exploitRoll.results.jet.dice; + const exploitPairOrImpair = isGuidage === true ? 1 : 0; + + const jetExploit = rExploit.reduce((accumulateur, valeurCourante) => { + const vC = valeurCourante; + let nV = 0; + + if (vC % 2 === exploitPairOrImpair) { + nV = 1; + } + + return accumulateur + nV; + }, 0); + const exploitComputed = { - jet: tRExploit, + jet: jetExploit, }; finishRoll(exploitRoll.rollId, exploitComputed); @@ -31664,6 +32606,9 @@ on('clicked:rollVehicule', async (info) => {
+ + +
@@ -31710,6 +32655,23 @@ on('clicked:rollVehicule', async (info) => {
+ +
+ + + +
+ +
+ + + +
+
+
+ + + +
+ +
+
+ + +
@@ -33705,6 +34702,23 @@ on('clicked:rollVehicule', async (info) => {
+ +
+ + + +
+ +
+ + + +
+
+
+ + + +
+ +
+
+ +
+ + + +
+ +
+ + + +
+
+
+ + + +
+ +
+
+ + +
@@ -40837,6 +41938,23 @@ on('clicked:rollVehicule', async (info) => {
+ +
+ + + +
+ +
+ + + +
+
+
+ + + +
+ + - +
+