Merge pull request #10078 from ap3h3ad/master
[Splittermond] Enabling automatic fumble rolls out of the rolltemplate
This commit is contained in:
@@ -175,6 +175,17 @@
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_patzertext"],
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_zauberpatzertext"],
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_patzertext"]:hover,
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_zauberpatzertext"]:hover,
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_patzertext"]:focus,
|
||||
.sheet-rolltemplate-splittermond_generic a[href*="show_zauberpatzertext"]:focus {
|
||||
background-color: #ad0000;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.sheet-rolltemplate-splittermond_generic a[href^="!"]:hover,
|
||||
.sheet-rolltemplate-splittermond_generic a[href^="~"]:hover,
|
||||
.sheet-rolltemplate-splittermond_generic a[href^="!"]:focus,
|
||||
|
||||
+122
-43
@@ -2,9 +2,9 @@
|
||||
<img width="300"
|
||||
src="https://imgsrv.roll20.net?src=https%3A//raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Splittermond/Splittermond.png"
|
||||
style="display: inline;">
|
||||
<!-- <img width="300"
|
||||
<!-- <img width="300"
|
||||
src="https://imgsrv.roll20.net?src=https%3A//raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Splittermond/Splittermond_w.png"
|
||||
style="display: inline;"> -->
|
||||
style="display: inline;">-->
|
||||
<div style="display: inline-block; vertical-align: text-top;">
|
||||
<span style="display: block;">Splittermond Charakterbogen für Roll20 (v. 2.1.0)</span>
|
||||
<span>Entworfen und umgesetzt von Loki, Design von Andernath</span>
|
||||
@@ -3139,6 +3139,9 @@
|
||||
<div class="d--flex">
|
||||
<b class="text--right mr--1">Zauberpatzer</b>
|
||||
<button class="button" type=roll value="&{template:splittermond_patzer} {{charactername=@{character_name}}} {{naming=[[?{Zauber- oder Priesterpatzer?|Zauberpatzer, 1|Priesterpatzer, 0}]]}} {{charactername=@{character_name}}} {{result=[[2d10 + ?{Negative Erfolgsgrade|1} * ?{Fokuskosten|1}]]}} {{fk=[[?{Fokuskontrolle oder Nichts passiert?|------, 0|Fokuskontrolle, 1|Nichts passiert!, 2}]]}} {{sbm=[[@{hiddensbm}]]}} {{s1=[[1d6]]}} {{s2=[[2d6]]}} {{s3=[[2d10]]}} {{s4=[[3d10]]}} {{s5=[[4d10]]}} {{s6=[[5d10]]}} {{s7=[[7d10]]}} {{s8=[[10d10]]}}"></button>
|
||||
<input type="hidden" name="attr_rollzauberpatzer" value="[Wirf!](~show_zauberpatzertext)" />
|
||||
<button type="roll" name="roll_show_zauberpatzertext" style="display: none" value="@{zauberpatzertext}" class="btn ui-draggable"></button>
|
||||
<input type="hidden" name="attr_zauberpatzertext" value="&{template:splittermond_patzer} {{charactername=@{character_name}}} {{naming=[[?{Zauber- oder Priesterpatzer?|Zauberpatzer, 1|Priesterpatzer, 0}]]}} {{charactername=@{character_name}}} {{result=[[2d10 + ?{Negative Erfolgsgrade|1} * ?{Fokuskosten|1}]]}} {{fk=[[?{Fokuskontrolle oder Nichts passiert?|------, 0|Fokuskontrolle, 1|Nichts passiert!, 2}]]}} {{sbm=[[@{hiddensbm}]]}} {{s1=[[1d6]]}} {{s2=[[2d6]]}} {{s3=[[2d10]]}} {{s4=[[3d10]]}} {{s5=[[4d10]]}} {{s6=[[5d10]]}} {{s7=[[7d10]]}} {{s8=[[10d10]]}}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -4062,6 +4065,9 @@
|
||||
<div class="d--flex d--flex--align-center">
|
||||
<b class="text--right mr--1">Kampfpatzer</b>
|
||||
<button class="button" type=roll value="&{template:splittermond_patzer} {{naming=[[2]]}} {{charactername=@{character_name}}} {{result=[[2d10]]}}"></button>
|
||||
<input type="hidden" name="attr_rollpatzer" value="[Wirf!](~show_patzertext)" />
|
||||
<button type="roll" name="roll_show_patzertext" style="display: none" value="@{patzertext}" class="btn ui-draggable"></button>
|
||||
<input type="hidden" name="attr_patzertext" value="&{template:splittermond_patzer} {{naming=[[2]]}} {{charactername=@{character_name}}} {{result=[[2d10]]}}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -5249,6 +5255,10 @@
|
||||
<input type="checkbox" name="attr_updates" class="d--none" value="42" title="Updates" />
|
||||
</label>
|
||||
<h1 style="color: white;">Letzte Updates</h1> <br/>
|
||||
<h2 style="color: white;">25.01.2022</h2>
|
||||
<ul>
|
||||
<li>Patzerwürfe im Kampf (Kampffertigkeiten & Zauber) können jetzt direkt aus dem Chat heraus gewürfelt werden.</li>
|
||||
</ul>
|
||||
<h2 style="color: white;">21.11.2021</h2>
|
||||
<ul>
|
||||
<li>Die Systemanpassung <em>Wer blutet, stirbt</em> kann jetzt in den Einstellungen aktiviert werden.</li>
|
||||
@@ -5260,11 +5270,6 @@
|
||||
<li>In den Einstellungen kann man bei den Fertigkeiten jetzt zum alten 3-Würfel-Design wechseln.</li>
|
||||
<li>Kleinere Fehlerkorrekturen im Zusammenhang mit fehlerhaftem Chat-Output.</li>
|
||||
</ul>
|
||||
<h2 style="color: white;">11.10.2021</h2>
|
||||
<ul>
|
||||
<li>Die drei Aktive Abwehr-Würfel im Kampf-Reiter funktionieren wieder wie gewohnt.</li>
|
||||
<li>Einige kleinere Fehler im Zusammenhang mit fehlerhaften Schadenswürfen bei Angriffen wurden behoben.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<p class="text--center">Mit Dank an alle begeisterten Splittermond-Spieler, die diesen Charakterbogen nutzen und mit ihrem Feedback für stetige Verbesserungen sorgen!</p>
|
||||
|
||||
@@ -5889,6 +5894,20 @@
|
||||
{{/changer}}
|
||||
</div>
|
||||
</div>
|
||||
{{#rollBetween() computed::success 1 1}}
|
||||
{{#patzer}}
|
||||
<div class="d--flex d--flex--align-baseline roll-message__fight">
|
||||
<div class="d--flex__item--grow2 text--right">
|
||||
{{#rollBetween() patzer 1 1}}
|
||||
<span>Patzertabelle</span> {{rollpatzer}}
|
||||
{{/rollBetween() patzer 1 1}}
|
||||
{{#rollBetween() patzer 2 2}}
|
||||
<span>Patzertabelle</span> {{rollzauberpatzer}}
|
||||
{{/rollBetween() patzer 2 2}}
|
||||
</div>
|
||||
</div>
|
||||
{{/patzer}}
|
||||
{{/rollBetween() computed::success 1 1}}
|
||||
<div class="roll-message__footer">
|
||||
<span>Erfolgsgrade</span>
|
||||
<span class="success-num">
|
||||
@@ -6769,6 +6788,22 @@
|
||||
{{/rollGreater() result 130}}
|
||||
{{/rollBetween() naming 0 0}}
|
||||
</td>
|
||||
<!--{{#rollBetween() naming 1 1}}
|
||||
<tr>
|
||||
<td>Fokus: {{fokus}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Neg. EG: {{computed:neg}}</td>
|
||||
</tr>
|
||||
{{/rollBetween() naming 1 1}}
|
||||
{{#rollBetween() naming 0 0}}
|
||||
<tr>
|
||||
<td>Fokus: {{fokus}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Neg. EG: {{computed:neg}}</td>
|
||||
</tr>
|
||||
{{/rollBetween() naming 0 0}} -->
|
||||
</tr>
|
||||
</table>
|
||||
</rolltemplate>
|
||||
@@ -10822,7 +10857,6 @@ on("clicked:ruhephase", function(f) {
|
||||
if (fokreg == 2) {
|
||||
wilbonus = 3;
|
||||
}
|
||||
console.log("konbonus: " + konbonus + ", lifereg: " + lifereg);
|
||||
liferegtotal = +regbonus + (+kon * +konbonus);
|
||||
fokregtotal = (+wil * +wilbonus);
|
||||
update["lebenspunkte_t"] += +update["lebenspunkte_e"];
|
||||
@@ -11531,7 +11565,7 @@ stats.forEach(function (stat) {
|
||||
on("clicked:repeating_nahkampfwaffen:angriff clicked:repeating_nahkampfwaffen:aktiveabwehr", function(eventInfo) {
|
||||
let modus = eventInfo.sourceAttribute.split("_")[3];
|
||||
|
||||
getAttrs(['repeating_nahkampfwaffen_gm', 'repeating_nahkampfwaffen_waffenname', 'repeating_nahkampfwaffen_damageroll', 'repeating_nahkampfwaffen_rolldamage', 'repeating_nahkampfwaffen_waffenwert', 'repeating_nahkampfwaffen_waffenmod', 'repeating_nahkampfwaffen_nahwaffenattrmod', 'repeating_nahkampfwaffen_angriffsbonus', 'repeating_nahkampfwaffen_kampffertigkeitenbonus', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'repeating_nahkampfwaffen_waffendefensiv', 'verteidigung', 'gmroll'], function (values) {
|
||||
getAttrs(['repeating_nahkampfwaffen_gm', 'repeating_nahkampfwaffen_waffenname', 'repeating_nahkampfwaffen_damageroll', 'repeating_nahkampfwaffen_rolldamage', 'repeating_nahkampfwaffen_waffenwert', 'repeating_nahkampfwaffen_waffenmod', 'repeating_nahkampfwaffen_nahwaffenattrmod', 'repeating_nahkampfwaffen_angriffsbonus', 'repeating_nahkampfwaffen_kampffertigkeitenbonus', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'repeating_nahkampfwaffen_waffendefensiv', 'verteidigung', 'gmroll', 'rollpatzer'], function (values) {
|
||||
let baseRoll = "";
|
||||
let dice_mod = parseInt(values['dice_mod'], 10) || 0;
|
||||
let wuerfel = getWuerfel(dice_mod);
|
||||
@@ -11545,6 +11579,7 @@ on("clicked:repeating_nahkampfwaffen:angriff clicked:repeating_nahkampfwaffen:ak
|
||||
let waffenmod = parseInt(values['repeating_nahkampfwaffen_waffenmod'], 10) || 0;
|
||||
let damageroll = values['repeating_nahkampfwaffen_damageroll'];
|
||||
let rolldamage = values['repeating_nahkampfwaffen_rolldamage'];
|
||||
let rollpatzer = values['rollpatzer'];
|
||||
let nahwaffenattrmod = parseInt(values['repeating_nahkampfwaffen_nahwaffenattrmod'], 10) || 0;
|
||||
let angriffsbonus = parseInt(values['repeating_nahkampfwaffen_angriffsbonus'], 10) || 0;
|
||||
let kampffertigkeitenbonus = parseInt(values['repeating_nahkampfwaffen_kampffertigkeitenbonus'], 10) || 0;
|
||||
@@ -11565,10 +11600,10 @@ on("clicked:repeating_nahkampfwaffen:angriff clicked:repeating_nahkampfwaffen:ak
|
||||
|
||||
if (modus == "angriff") {
|
||||
abilityroll += "&{template:splittermond_generic}";
|
||||
baseRoll = `${abilityroll} {{name=${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{character_name}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{angriffsbonus=[[${angriffsbonus}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`;
|
||||
baseRoll = `${abilityroll} {{name=${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{character_name}}} {{rollpatzer=${rollpatzer}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{angriffsbonus=[[${angriffsbonus}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{patzer=[[1]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`;
|
||||
} else if (modus == "aktiveabwehr") {
|
||||
abilityroll += "&{template:splittermond_aktiveabwehr}";
|
||||
baseRoll = `${abilityroll} {{waffenname=${waffenname}}} {{Probe=[[ ${baseDice} + [[${defsum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{neuerwert=Verteidigung}} {{naming=Parade - ${waffenname}}} {{def=[[1d0 + ${waffendefensiv}]]}} {{charactername=@{character_name}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{standardwurf=$[[2]]}} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[3 @{initracker_input}]]}}`;
|
||||
baseRoll = `${abilityroll} {{waffenname=${waffenname}}} {{Probe=[[ ${baseDice} + [[${defsum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{neuerwert=Verteidigung}} {{naming=Parade - ${waffenname}}} {{def=[[1d0 + ${waffendefensiv}]]}} {{charactername=@{character_name}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{standardwurf=$[[2]]}} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{rollpatzer=${rollpatzer}}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[3 @{initracker_input}]]}}`;
|
||||
}
|
||||
|
||||
processRoll(baseRoll);
|
||||
@@ -11578,7 +11613,7 @@ on("clicked:repeating_nahkampfwaffen:angriff clicked:repeating_nahkampfwaffen:ak
|
||||
|
||||
on("clicked:repeating_fernkampfwaffen:angriff", function(eventInfo) {
|
||||
|
||||
getAttrs(['repeating_fernkampfwaffen_gm', 'repeating_fernkampfwaffen_waffennamefern', 'repeating_fernkampfwaffen_damagerollfern', 'repeating_fernkampfwaffen_rolldamagefern', 'repeating_fernkampfwaffen_waffenwertfern', 'repeating_fernkampfwaffen_waffenmodfern', 'repeating_fernkampfwaffen_fernwaffenattrmod', 'repeating_fernkampfwaffen_angriffsbonus', 'repeating_fernkampfwaffen_kampffertigkeitenbonus', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'gmroll'], function (values) {
|
||||
getAttrs(['repeating_fernkampfwaffen_gm', 'repeating_fernkampfwaffen_waffennamefern', 'repeating_fernkampfwaffen_damagerollfern', 'repeating_fernkampfwaffen_rolldamagefern', 'repeating_fernkampfwaffen_waffenwertfern', 'repeating_fernkampfwaffen_waffenmodfern', 'repeating_fernkampfwaffen_fernwaffenattrmod', 'repeating_fernkampfwaffen_angriffsbonus', 'repeating_fernkampfwaffen_kampffertigkeitenbonus', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'gmroll', 'rollpatzer'], function (values) {
|
||||
let baseRoll = "";
|
||||
let bBeh = 0;
|
||||
let dice_mod = parseInt(values['dice_mod'], 10) || 0;
|
||||
@@ -11592,6 +11627,7 @@ on("clicked:repeating_fernkampfwaffen:angriff", function(eventInfo) {
|
||||
let waffenmod = parseInt(values['repeating_fernkampfwaffen_waffenmodfern'], 10) || 0;
|
||||
let damageroll = values['repeating_fernkampfwaffen_damagerollfern'];
|
||||
let rolldamage = values['repeating_fernkampfwaffen_rolldamagefern'];
|
||||
let rollpatzer = values['rollpatzer'];
|
||||
let fernwaffenattrmod = parseInt(values['repeating_fernkampfwaffen_fernwaffenattrmod'], 10) || 0;
|
||||
let angriffsbonus = parseInt(values['repeating_fernkampfwaffen_angriffsbonus'], 10) || 0;
|
||||
let kampffertigkeitenbonus = parseInt(values['repeating_fernkampfwaffen_kampffertigkeitenbonus'], 10) || 0;
|
||||
@@ -11608,7 +11644,7 @@ on("clicked:repeating_fernkampfwaffen:angriff", function(eventInfo) {
|
||||
}
|
||||
|
||||
abilityroll += "&{template:splittermond_generic}";
|
||||
baseRoll = `${abilityroll} {{name=${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{character_name}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{angriffsbonus=[[${angriffsbonus}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`;
|
||||
baseRoll = `${abilityroll} {{name=${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{character_name}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{rollpatzer=${rollpatzer}}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{skillbonus=[[${waffenmod}]]}} {{angriffsbonus=[[${angriffsbonus}]]}} {{kampffertigkeitenbonus=[[${kampffertigkeitenbonus}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{patzer=[[1]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`;
|
||||
|
||||
processRoll(baseRoll);
|
||||
});
|
||||
@@ -11617,7 +11653,7 @@ on("clicked:repeating_fernkampfwaffen:angriff", function(eventInfo) {
|
||||
|
||||
on("clicked:repeating_zauber:roll", function(eventInfo) {
|
||||
|
||||
getAttrs(['repeating_zauber_gm', 'repeating_zauber_zaubername', 'repeating_zauber_damagerollspell', 'repeating_zauber_rolldamagespell', 'repeating_zauber_zauberwert', 'repeating_zauber_zaubermod1', 'repeating_zauber_zaubermod2', 'repeating_zauber_hiddenmod', 'repeating_zauber_zauberattrmod', 'repeating_zauber_zauberkosten', 'repeating_zauber_spelldamagechanger', 'initracker_input', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'glaubenskrise', 'repeating_zauber_zauberschwierigkeit', 'gmroll'], function (values) {
|
||||
getAttrs(['repeating_zauber_gm', 'repeating_zauber_zaubername', 'repeating_zauber_damagerollspell', 'repeating_zauber_rolldamagespell', 'repeating_zauber_zauberwert', 'repeating_zauber_zaubermod1', 'repeating_zauber_zaubermod2', 'repeating_zauber_hiddenmod', 'repeating_zauber_zauberattrmod', 'repeating_zauber_zauberkosten', 'repeating_zauber_spelldamagechanger', 'initracker_input', 'hiddenallfert', 'geblendet', 'erschoepft', 'schadensmod', 'dice_mod', 'glaubenskrise', 'repeating_zauber_zauberschwierigkeit', 'gmroll', 'rollzauberpatzer'], function (values) {
|
||||
let baseRoll = "";
|
||||
let dice_mod = parseInt(values['dice_mod'], 10) || 0;
|
||||
let wuerfel = getWuerfel(dice_mod);
|
||||
@@ -11630,6 +11666,7 @@ on("clicked:repeating_zauber:roll", function(eventInfo) {
|
||||
let zauberwert = parseInt(values['repeating_zauber_zauberwert'], 10) || 0;
|
||||
let damagerollspell = values['repeating_zauber_damagerollspell'];
|
||||
let rolldamagespell = values['repeating_zauber_rolldamagespell'];
|
||||
let rollzauberpatzer = values['rollzauberpatzer'];
|
||||
let spelldamagechanger = values['repeating_zauber_spelldamagechanger'];
|
||||
let zaubermod1 = parseInt(values['repeating_zauber_zaubermod1'], 10) || 0;
|
||||
let zaubermod2 = parseInt(values['repeating_zauber_zaubermod2'], 10) || 0;
|
||||
@@ -11646,12 +11683,20 @@ on("clicked:repeating_zauber:roll", function(eventInfo) {
|
||||
let zauberschwierigkeit = parseInt(values['repeating_zauber_zauberschwierigkeit'], 10) || 0;
|
||||
let sum = +zauberwert + +zaubermod1 + +zaubermod2 + +hiddenmod + +zauberattrmod + +hiddenallfert - +geblendet - +glaubenskrise - +schadensmod;
|
||||
|
||||
if (zauberkosten.indexOf("K") > -1) {
|
||||
if (zauberkosten.indexOf("V") > -1) {
|
||||
zauberkosten = zauberkosten.substr(zauberkosten.indexOf("K") + 1, zauberkosten.indexOf("V") - 1);
|
||||
} else {
|
||||
zauberkosten = zauberkosten.substr(zauberkosten.indexOf("K") + 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (gmroll == 0) {
|
||||
abilityroll += "/w GM ";
|
||||
}
|
||||
|
||||
abilityroll += "&{template:splittermond_generic}";
|
||||
baseRoll = `${abilityroll} {{name=Zauber: ${zaubername}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamagespell}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{changer=${spelldamagechanger}}} {{damage=${rolldamagespell}}} {{charactername=@{character_name}}} {{dmgmalus=[[@{schadensmod}d1]]}} {{grmmode=[[${grmmode}]]}} {{basiswert=[[${zauberwert}d1]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|${zauberschwierigkeit}}]]}} {{Ticks=[[3+@{gesamttickplus}+@{benommen} @{initracker_input}]]}} {{fokus=${zauberkosten}}}`;
|
||||
baseRoll = `${abilityroll} {{name=Zauber: ${zaubername}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{neg=[[0]]}} {{damage=${rolldamagespell}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{changer=${spelldamagechanger}}} {{damage=${rolldamagespell}}} {{charactername=@{character_name}}} {{dmgmalus=[[@{schadensmod}d1]]}} {{grmmode=[[${grmmode}]]}} {{basiswert=[[${zauberwert}d1]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|${zauberschwierigkeit}}]]}} {{Ticks=[[3+@{gesamttickplus}+@{benommen} @{initracker_input}]]}} {{rollzauberpatzer=${rollzauberpatzer}}} {{patzer=[[2]]}} {{fokus=${zauberkosten}}}`;
|
||||
|
||||
processRoll(baseRoll);
|
||||
});
|
||||
@@ -11789,7 +11834,7 @@ on("clicked:gw_nsc clicked:kw_nsc clicked:akrobatik_nsc", function(eventInfo) {
|
||||
on("clicked:repeating_waffennsc:angriff clicked:repeating_waffennsc:aktiveabwehr", function(eventInfo) {
|
||||
let modus = eventInfo.sourceAttribute.split("_")[3];
|
||||
|
||||
getAttrs(['repeating_waffennsc_waffennamensc', 'repeating_waffennsc_gm', 'repeating_waffennsc_waffendefensiv', 'repeating_waffennsc_damagerollnsc', 'repeating_nahkampfwaffen_waffenwertnsc', 'repeating_nahkampfwaffen_waffenwgsnsc', 'repeating_waffennsc_rolldamagensc', 'schadensmodnsc', 'dice_mod_nsc', 'verteidigungnsc', 'gmroll_nsc'], function (values) {
|
||||
getAttrs(['repeating_waffennsc_waffennamensc', 'repeating_waffennsc_gm', 'repeating_waffennsc_waffendefensiv', 'repeating_waffennsc_damagerollnsc', 'repeating_nahkampfwaffen_waffenwertnsc', 'repeating_nahkampfwaffen_waffenwgsnsc', 'repeating_waffennsc_rolldamagensc', 'schadensmodnsc', 'dice_mod_nsc', 'verteidigungnsc', 'gmroll_nsc', 'rollpatzer'], function (values) {
|
||||
let baseRoll = "";
|
||||
let bBeh = 0;
|
||||
let dice_mod = parseInt(values['dice_mod_nsc'], 10) || 0;
|
||||
@@ -11805,6 +11850,7 @@ on("clicked:repeating_waffennsc:angriff clicked:repeating_waffennsc:aktiveabwehr
|
||||
let waffenwert = parseInt(values['repeating_nahkampfwaffen_waffenwertnsc'], 10) || 0;
|
||||
let damageroll = values['repeating_waffennsc_damagerollnsc'];
|
||||
let rolldamage = values['repeating_waffennsc_rolldamagensc'];
|
||||
let rollpatzer = values['rollpatzer'];
|
||||
let schadensmod = parseInt(values['schadensmodnsc'], 10) || 0;
|
||||
let verteidigung = parseInt(values['verteidigungnsc'], 10) || 0;
|
||||
let behinderung = 0;
|
||||
@@ -11817,10 +11863,10 @@ on("clicked:repeating_waffennsc:angriff clicked:repeating_waffennsc:aktiveabwehr
|
||||
|
||||
if (modus == "angriff") {
|
||||
abilityroll += "&{template:splittermond_generic}";
|
||||
baseRoll = `${abilityroll} {{name=Angriff: ${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{namensc}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[${waffenwgs} @{initracker_input}]]}}`;
|
||||
baseRoll = `${abilityroll} {{name=Angriff: ${waffenname}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{damage=${rolldamage}}} {{charactername=@{namensc}}} {{rollpatzer=${rollpatzer}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[${waffenwgs} @{initracker_input}]]}}`;
|
||||
} else if (modus == "aktiveabwehr") {
|
||||
abilityroll += "&{template:splittermond_aktiveabwehr}";
|
||||
baseRoll = `${abilityroll} {{waffenname=${waffenname}}} {{Probe=[[ ${baseDice} + [[${defsum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{neuerwert=Verteidigung}} {{naming=Parade - ${waffenname}}} {{def=[[1d0 + ${waffendefensiv}]]}} {{charactername=@{namensc}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[3 @{initracker_input}]]}}`;
|
||||
baseRoll = `${abilityroll} {{waffenname=${waffenname}}} {{Probe=[[ ${baseDice} + [[${defsum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{neuerwert=Verteidigung}} {{rollpatzer=${rollpatzer}}} {{naming=Parade - ${waffenname}}} {{def=[[1d0 + ${waffendefensiv}]]}} {{charactername=@{namensc}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${waffenwert}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} {{Ticks=[[3 @{initracker_input}]]}}`;
|
||||
}
|
||||
|
||||
processRoll(baseRoll);
|
||||
@@ -12096,6 +12142,8 @@ on("clicked:nscimport", function(eventInfo) {
|
||||
|
||||
// Zauber
|
||||
if (nscimport.search("Zauber") > -1) {
|
||||
let spelltemp = "";
|
||||
|
||||
zauber = nscimport.substring(
|
||||
nscimport.indexOf("Zauber") + 8,
|
||||
nscimport.lastIndexOf("Merkmale")
|
||||
@@ -12107,22 +12155,9 @@ on("clicked:nscimport", function(eventInfo) {
|
||||
zauber = zauber.split("Meisterschaften")[0];
|
||||
}
|
||||
|
||||
let spelltemp = "";
|
||||
if (zauber.match(/[a-zA-Z]*\s\d+/g)) {
|
||||
spelltemp = zauber.match(/[a-zA-Z]*\s\d+/g);
|
||||
zauber = zauber.split(/[a-zA-Z]*\s\d+/g);
|
||||
} else if (zauber.match(/[a-zA-Z]+\s[IV]+:/g)) {
|
||||
spelltemp = zauber.match(/[a-zA-Z]+\s[IV]+:/g);
|
||||
zauber = zauber.split(/[a-zA-Z]+\s[IV]+:/g);
|
||||
}
|
||||
let extractedspells = extractSpells(zauber);
|
||||
|
||||
zauber.splice(0,1);
|
||||
|
||||
for (var i = 0; i < zauber.length; i++) {
|
||||
zauber[i] = spelltemp[i] + zauber[i];
|
||||
}
|
||||
|
||||
nsc.zauber = zauber;
|
||||
nsc.zauber = extractedspells;
|
||||
}
|
||||
|
||||
// Fertigkeiten
|
||||
@@ -12204,7 +12239,7 @@ function importNsc(nsc) {
|
||||
let update = {};
|
||||
let temp = "";
|
||||
let ini = 0;
|
||||
/*for (var i = 0; i < nsc.attributes.length; i++) {
|
||||
for (var i = 0; i < nsc.attributes.length; i++) {
|
||||
let attribute = vAttributes[i];
|
||||
let value = nsc.attributes[i];
|
||||
update[attribute] = +value;
|
||||
@@ -12215,19 +12250,16 @@ function importNsc(nsc) {
|
||||
}
|
||||
});
|
||||
nsc.fertigkeiten.forEach((fertigkeit) => {
|
||||
console.log("Fertigkeit:" + fertigkeit);
|
||||
let skill = fertigkeit.replace(/\s/g,'').match(/[a-zA-Zäöü]+/g) || "test";
|
||||
let value = parseInt(fertigkeit.replace(/\s/g,'').match(/[\d]+/g), 10) || 0;
|
||||
if(vSkills[skill]) {
|
||||
skill = vSkills[skill];
|
||||
}
|
||||
console.log("skill:" + skill + ",value:" + value);
|
||||
newRowId = generateRowID();
|
||||
update['repeating_fertigkeitennsc_' + newRowId + '_fertigkeitnsc'] = skill;
|
||||
update['repeating_fertigkeitennsc_' + newRowId + '_fertigkeitswertnsc'] = +value;
|
||||
});
|
||||
if (waffen.length > 0) {
|
||||
console.log("Waffen: " + waffen);
|
||||
for (var i = 0; i < waffen.length; i++) {
|
||||
let aWaffen = waffen[i].split("|");
|
||||
let name = aWaffen[0];
|
||||
@@ -12244,7 +12276,6 @@ function importNsc(nsc) {
|
||||
}
|
||||
dmg2 = "d".concat(dmg2);
|
||||
ini = aWaffen[4].split("-")[0];
|
||||
console.log("Ini: " + ini);
|
||||
let wgs = aWaffen[3];
|
||||
let merkmale = aWaffen[5];
|
||||
newRowId = generateRowID();
|
||||
@@ -12258,7 +12289,7 @@ function importNsc(nsc) {
|
||||
update['repeating_waffennsc_' + newRowId + '_waffenmerkmalensc'] = merkmale;
|
||||
}
|
||||
update['initiativensc'] = +ini;
|
||||
}*/
|
||||
}
|
||||
setAttrs(update);
|
||||
}
|
||||
|
||||
@@ -12301,14 +12332,11 @@ function getWeapons(waffen, merkmale) {
|
||||
|
||||
for (var i = 0; i < 999; i++) {
|
||||
if (i < waffen.length) {
|
||||
console.log("i: " + i + ", j: " + j);
|
||||
if (i == j) {
|
||||
console.log("Neue Waffe an Index " + j);
|
||||
for (var k = i + 1; k < aMerkmale.length; k++) {
|
||||
if ( (aMerkmale[k][0] - aMerkmale[k - 1][0]) > 2) {
|
||||
let newIndex = aMerkmale[k - 1][0] + 1;
|
||||
aWeapons.push(waffen.slice(j, newIndex).join("|"));
|
||||
console.log("Wafen bisher: " + waffen.slice(j, newIndex).join("|"));
|
||||
j = newIndex;
|
||||
}
|
||||
}
|
||||
@@ -12318,8 +12346,59 @@ function getWeapons(waffen, merkmale) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function extractSpells(zauber) {
|
||||
const magicschools = ["Bann", "Beherrschung", "Bewegung", "Erkenntnis", "Fels", "Feuer", "Heilung", "Illusion", "Kampf", "Licht", "Natur", "Schatten", "Schicksal", "Schutz", "Stärkung", "Tod", "Verwandlung", "Wasser", "Wind"];
|
||||
const numerals = [0, 'I', 'II', 'III', 'IV', 'V'];
|
||||
const numbers = [0, 1, 2, 3, 4, 5];
|
||||
const searchedschools = new Array();
|
||||
const foundschools = new Array();
|
||||
const result = new Array();
|
||||
|
||||
console.log("aWeapons: " + aWeapons + ", Länge: " + aWeapons.length);
|
||||
for (var i = 0; i < numerals.length; i++) {
|
||||
if (zauber.search(numerals[i] + ":") > -1) {
|
||||
/*console.log("Numeral gefunden: " + numerals[i]);
|
||||
zauber.replaceAll(numerals[i], numbers[i]);*/
|
||||
}
|
||||
}
|
||||
|
||||
console.log("extracted spells: " + zauber);
|
||||
|
||||
for (var i = 0; i < magicschools.length; i++) {
|
||||
let school = magicschools[i];
|
||||
let index = zauber.search(school);
|
||||
if (index > -1) {
|
||||
let nextchar = zauber.charAt(index + school.length + 1);
|
||||
if (numerals.includes(nextchar)) {
|
||||
searchedschools.push(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < searchedschools.length; i++) {
|
||||
let index = searchedschools[i];
|
||||
if (searchedschools[i+1] != null) {
|
||||
let length = searchedschools[i+1] - index;
|
||||
let result = zauber.substr(index, length);
|
||||
if (result != "") {
|
||||
foundschools.push(result);
|
||||
}
|
||||
} else {
|
||||
let result = zauber.substr(index);
|
||||
if (result != "") {
|
||||
foundschools.push(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.table(foundschools);
|
||||
|
||||
return result;
|
||||
|
||||
/*for (let i = 0; i < zauber.length; i++) {
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user