diff --git a/Splittermond/Sheet.css b/Splittermond/Sheet.css index 7118ed5be0..cf9927b470 100644 --- a/Splittermond/Sheet.css +++ b/Splittermond/Sheet.css @@ -1478,4 +1478,20 @@ span.sheet-hidden-checkbox { .sheet-margin-top { margin-top: 10%; margin-left: 30%; +} + +div.sheet-old-buttons { + display: none; +} + +input.sheet-old-buttons-checker:checked ~ .sheet-old-buttons { + display: block; +} + +input.sheet-old-buttons-checker:checked ~ .sheet-new-button { + display: none; +} + +.sheet-border { + border: 1px solid black; } \ No newline at end of file diff --git a/Splittermond/Sheet.html b/Splittermond/Sheet.html index 33f75ff979..3965b548b5 100644 --- a/Splittermond/Sheet.html +++ b/Splittermond/Sheet.html @@ -727,9 +727,9 @@ Aktive Abwehr - Akrobatik - KW - GW + Akrobatik + KW + GW Initiative @@ -787,6 +787,27 @@ +
+ Würfelmodus +
+
+ Würfe sichtbar +
+
+ Würfe an SL +
+ | +
+ Sicherheitswurf: +
+
+ Standardwurf: +
+
+ Risikowurf: +
+
+

@@ -797,7 +818,7 @@ - + @@ -843,7 +862,6 @@ - + @@ -1003,17 +1021,51 @@ - + @@ -1569,10 +1621,15 @@
- - + +
+ + + +
+
+ +
@@ -1610,10 +1667,15 @@
- - + +
+ + + +
+
+ +
@@ -1651,10 +1713,15 @@
- - + +
+ + + +
+
+ +
@@ -1692,10 +1759,15 @@
- - + +
+ + + +
+
+ +
@@ -1733,10 +1805,15 @@
- - + +
+ + + +
+
+ +
@@ -1774,10 +1851,15 @@
- - + +
+ + + +
+
+ +
@@ -1815,10 +1897,15 @@
- - + +
+ + + +
+
+ +
@@ -1856,10 +1943,15 @@
- - + +
+ + + +
+
+ +
@@ -1897,10 +1989,15 @@
- - + +
+ + + +
+
+ +
@@ -1938,10 +2035,15 @@
- - + +
+ + + +
+
+ +
@@ -1979,10 +2081,15 @@
- - + +
+ + + +
+
+ +
@@ -2020,10 +2127,15 @@
- - + +
+ + + +
+
+ +
@@ -2061,10 +2173,15 @@
- - + +
+ + + +
+
+ +
@@ -2102,10 +2219,15 @@
- - + +
+ + + +
+
+ +
@@ -2161,10 +2283,15 @@
- - + +
+ + + +
+
+ +
@@ -2202,10 +2329,15 @@
- - + +
+ + + +
+
+ +
@@ -2243,10 +2375,15 @@
- - + +
+ + + +
+
+ +
@@ -2284,10 +2421,15 @@
- - + +
+ + + +
+
+ +
@@ -2325,10 +2467,15 @@
- - + +
+ + + +
+
+ +
@@ -2366,10 +2513,15 @@
- - + +
+ + + +
+
+ +
@@ -2407,10 +2559,15 @@
- - + +
+ + + +
+
+ +
@@ -2448,10 +2605,15 @@
- - + +
+ + + +
+
+ +
@@ -2489,10 +2651,15 @@
- - + +
+ + + +
+
+ +
@@ -2530,10 +2697,15 @@
- - + +
+ + + +
+
+ +
@@ -2571,10 +2743,15 @@
- - + +
+ + + +
+
+ +
@@ -2612,10 +2789,15 @@
- - + +
+ + + +
+
+ +
@@ -2653,10 +2835,15 @@
- - + +
+ + + +
+
+ +
@@ -3844,9 +4031,6 @@

Aktive Abwehr

- Akrobatik KW GW @@ -4857,14 +5041,14 @@
INI Merkmale Angriff / AASL-WürfeGroßmeister
@@ -821,12 +842,10 @@ -    - - / + +          - - / +
-
WD Mod. WürfelnSL-WurfGroßm.
@@ -987,12 +1005,12 @@          - +                  - +
Wirkung:
- +
Fertigkeit Wert WürfelnSL-WurfGroßm.
+ + + + + +
- +     - +        - +
-   +   - + @@ -4875,6 +5059,26 @@
Modifizierte Heldengrad-Schwellen
Mod. Heldengradschwellen aktivierenMod. Heldengradschwellen aktivieren
+ +   + + + + + + + + + + + +
Fertigkeitswürfel (Coming soon!)
Altes Design aktivieren (3 Fertigkeitswürfel)?
+ +   + +   + + @@ -6534,27 +6738,21 @@ on('sheet:opened',function(){ if (idarray.length == 0) { var newrowattrs = {}; var newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Akrobatik"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "akrobatik"; newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Athletik"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "athletik"; newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Entschlossenheit"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "entschlossenheit"; newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Heimlichkeit"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "heimlichkeit"; newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Wahrnehmung"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "wahrnehmung"; newrowid = generateRowID(); - newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "Zähigkeit"; + newrowattrs["repeating_fertigkeitennsc_" + newrowid + "_fertigkeitnsc"] = "zaehigkeit"; setAttrs(newrowattrs); } }); transferRessources(); - setAttrs({ - gmroll: 0 - }); - setAttrs({ - gmroll: 1 - }); }); function migrateFightAndMagicSkillMastery() { @@ -8479,7 +8677,7 @@ on("change:lpnscgesamt change:schmerzimmunnsc change:schmerzresistenznsc", funct on("change:notizen", function(eventInfo) { getAttrs(["notizen", "fokus", "lebenspunkte"], function (v) { - let notizen = v.notizen.toLowerCase(); + let notizen = v.notizen.toString().toLowerCase(); if (notizen.startsWith("!setnull(")) { switch (notizen.slice(9).slice(0, -1)) { case "sr": @@ -10956,13 +11154,13 @@ on("change:rolldamagecheck change:rolldamagensccheck change:repeating_nahkampfwa setAttrs(update); }); }); - if (v.rolldamagensccheck == true) { - damagensc = "[Wirf!](~repeating_waffennsc_show_damage)"; - } else { - damagensc = "[[@{damagerollnsc}]]"; - } getSectionIDs("repeating_waffennsc", function(idarray) { _.each(idarray, function(currentID, i) { + if (v.rolldamagensccheck == true) { + damagensc = "[Wirf!](~repeating_waffennsc_" + currentID + "_show_damage)"; + } else { + damagensc = "[[@{repeating_waffennsc_" + currentID + "_damagerollnsc}]]"; + } update["repeating_waffennsc_" + currentID + "_rolldamagensc"] = damagensc; setAttrs(update); }); @@ -11170,12 +11368,17 @@ const correctSkills = {'anfuehren':'Anführen','arkanekunde':'Arkane Kunde','ges stats.forEach(function (stat) { on("clicked:" + stat, function () { - getAttrs([stat, stat + 'bonus', stat + '_gm', 'hiddenbeweglichkeitmod', 'hiddenstaerkemod', 'hiddenallgfert', 'hiddenallfert', 'erschoepft', 'schadensmod', 'behinderung', 'hiddenausstrahlungmod', 'hiddenintuitionmod', 'hiddenkonstitutionmod', 'hiddenmystikmod', 'hiddenverstandmod', 'hiddenwillenskraftmod', 'dice_mod'], function (values) { - let baseDice = ""; + getAttrs([stat, stat + 'bonus', stat + '_gm', 'hiddenbeweglichkeitmod', 'hiddenstaerkemod', 'hiddenallgfert', 'hiddenallfert', 'erschoepft', 'schadensmod', 'behinderung', 'hiddenausstrahlungmod', 'hiddenintuitionmod', 'hiddenkonstitutionmod', 'hiddenmystikmod', 'hiddenverstandmod', 'hiddenwillenskraftmod', 'dice_mod', 'gmroll'], function (values) { let baseRoll = ""; + let dice_mod = parseInt(values['dice_mod'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); let attributsmods = ""; let bBeh = 0; let attributsmodssum = 0; + let abilityroll = ""; + let gmroll = values['gmroll']; let rollName = stat.charAt(0).toUpperCase() + stat.slice(1); let vStat = parseInt(values[stat], 10) || 0; let bStat = parseInt(values[stat + 'bonus'], 10) || 0; @@ -11193,7 +11396,6 @@ stats.forEach(function (stat) { let hiddenmystikmod = parseInt(values['hiddenmystikmod'], 10) || 0; let hiddenverstandmod = parseInt(values['hiddenverstandmod'], 10) || 0; let hiddenwillenskraftmod = parseInt(values['hiddenwillenskraftmod'], 10) || 0; - let dice_mod = parseInt(values['dice_mod'], 10) || 0; let sum = +vStat + +bStat + +hiddenallgfert + +hiddenallfert - +erschoepft - +schadensmod; if (auSkills.includes(stat)) { @@ -11235,21 +11437,13 @@ stats.forEach(function (stat) { rollName = correctSkills[stat]; } - switch (+values.dice_mod) { - case 1: - baseDice = "[[{[[1d10]],[[1d10]]}k1]]"; - baseRoll = `@{abilityroll} {{name=${rollName}}} {{charactername=@{character_name}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} {{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{sicherheitswurf=$[[2]]}} {{mode=[[1]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${vStat}d1]]}} {{skillbonus=[[${bStat}]]}} {{attributsmodifikatoren=[[${attributsmodssum}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`; - break; - case 3: - baseDice = "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; - baseRoll = `@{abilityroll} {{name=${rollName}}} {{charactername=@{character_name}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} {{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}} {{risikowurf=$[[4]]}} {{mode=[[4]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${vStat}d1]]}} {{skillbonus=[[${bStat}]]}} {{attributsmodifikatoren=[[${attributsmodssum}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`; - break; - default: - baseDice = "[[[[1d10]] + [[1d10]]]]"; - baseRoll = `@{abilityroll} {{name=${rollName}}} {{charactername=@{character_name}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} {{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{standardwurf=$[[2]]}} {{mode=[[2]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${vStat}d1]]}} {{skillbonus=[[${bStat}]]}} {{attributsmodifikatoren=[[${attributsmodssum}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`; - break; + if (gmroll == 0) { + abilityroll += "/w GM "; } + abilityroll += "&{template:splittermond_generic}"; + baseRoll = `@{abilityroll} {{name=${rollName}}} {{charactername=@{character_name}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{geblendet=[[@{geblendet}d1]]}} {{basiswert=[[${vStat}d1]]}} {{skillbonus=[[${bStat}]]}} {{attributsmodifikatoren=[[${attributsmodssum}]]}} {{erschoepft=[[@{erschoepft}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`; + processRoll(baseRoll); }); }); @@ -11258,12 +11452,15 @@ 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'], function (values) { - let baseDice = ""; + 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) { let baseRoll = ""; - let mode = 1; + let dice_mod = parseInt(values['dice_mod'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); let bBeh = 0; - let wuerfel = ""; + let abilityroll = ""; + let gmroll = values['gmroll']; let waffenname = values['repeating_nahkampfwaffen_waffenname']; let waffenwert = parseInt(values['repeating_nahkampfwaffen_waffenwert'], 10) || 0; let waffenmod = parseInt(values['repeating_nahkampfwaffen_waffenmod'], 10) || 0; @@ -11278,33 +11475,21 @@ on("clicked:repeating_nahkampfwaffen:angriff clicked:repeating_nahkampfwaffen:ak let erschoepft = parseInt(values['erschoepft'], 10) || 0; let schadensmod = parseInt(values['schadensmod'], 10) || 0; let behinderung = parseInt(values['behinderung'], 10) || 0; - let dice_mod = parseInt(values['dice_mod'], 10) || 0; let verteidigung = parseInt(values['verteidigung'], 10) || 0; let waffendefensiv = parseInt(values['repeating_nahkampfwaffen_waffendefensiv'], 10) || 0; let sum = +waffenwert + +waffenmod + +nahwaffenattrmod + +hiddenallfert - +angriffsbonus + +kampffertigkeitenbonus - +geblendet - +erschoepft - +schadensmod; let defsum = +sum - +angriffsbonus; - switch (+values.dice_mod) { - case 1: - baseDice = "[[{[[1d10]],[[1d10]]}k1]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - break; - case 3: - baseDice = "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; - mode = 4; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}}"; - break; - default: - baseDice = "[[[[1d10]] + [[1d10]]]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - mode = 2; - break; + if (gmroll == 0) { + abilityroll += "/w GM "; } if (modus == "angriff") { - 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}]]}}`; + 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}]]}}`; } else if (modus == "aktiveabwehr") { - baseRoll = `&{template:splittermond_aktiveabwehr} {{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=[[2]]}} {{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}]]}}`; + 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}]]}}`; } processRoll(baseRoll); @@ -11314,12 +11499,15 @@ 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'], function (values) { - let baseDice = ""; + 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) { let baseRoll = ""; - let mode = 1; let bBeh = 0; - let wuerfel = ""; + let dice_mod = parseInt(values['dice_mod'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); + let abilityroll = ""; + let gmroll = values['gmroll']; let waffenname = values['repeating_fernkampfwaffen_waffennamefern']; let waffenwert = parseInt(values['repeating_fernkampfwaffen_waffenwertfern'], 10) || 0; let waffenmod = parseInt(values['repeating_fernkampfwaffen_waffenmodfern'], 10) || 0; @@ -11334,27 +11522,14 @@ on("clicked:repeating_fernkampfwaffen:angriff", function(eventInfo) { let erschoepft = parseInt(values['erschoepft'], 10) || 0; let schadensmod = parseInt(values['schadensmod'], 10) || 0; let behinderung = parseInt(values['behinderung'], 10) || 0; - let dice_mod = parseInt(values['dice_mod'], 10) || 0; let sum = +waffenwert + +waffenmod + +fernwaffenattrmod + +hiddenallfert - +angriffsbonus + +kampffertigkeitenbonus - +geblendet - +erschoepft - +schadensmod; - switch (+values.dice_mod) { - case 1: - baseDice = "[[{[[1d10]],[[1d10]]}k1]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - break; - case 3: - baseDice = "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; - mode = 4; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}}"; - break; - default: - baseDice = "[[[[1d10]] + [[1d10]]]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - mode = 2; - break; + if (gmroll == 0) { + abilityroll += "/w GM "; } - 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}]]}}`; + 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}]]}}`; processRoll(baseRoll); }); @@ -11363,12 +11538,15 @@ 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'], function (values) { - let baseDice = ""; + 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) { let baseRoll = ""; - let mode = 1; + let dice_mod = parseInt(values['dice_mod'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); let bBeh = 0; - let wuerfel = ""; + let abilityroll = ""; + let gmroll = values['gmroll']; let zaubername = values['repeating_zauber_zaubername']; let zauberwert = parseInt(values['repeating_zauber_zauberwert'], 10) || 0; let damagerollspell = values['repeating_zauber_damagerollspell']; @@ -11385,29 +11563,16 @@ on("clicked:repeating_zauber:roll", function(eventInfo) { let erschoepft = parseInt(values['erschoepft'], 10) || 0; let schadensmod = parseInt(values['schadensmod'], 10) || 0; let behinderung = parseInt(values['behinderung'], 10) || 0; - let dice_mod = parseInt(values['dice_mod'], 10) || 0; let glaubenskrise = parseInt(values['glaubenskrise'], 10) || 0; let zauberschwierigkeit = parseInt(values['repeating_zauber_zauberschwierigkeit'], 10) || 0; let sum = +zauberwert + +zaubermod1 + +zaubermod2 + +hiddenmod + +zauberattrmod + +hiddenallfert - +geblendet - +glaubenskrise - +schadensmod; - switch (+values.dice_mod) { - case 1: - baseDice = "[[{[[1d10]],[[1d10]]}k1]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - break; - case 3: - baseDice = "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; - mode = 4; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}}"; - break; - default: - baseDice = "[[[[1d10]] + [[1d10]]]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - mode = 2; - break; + if (gmroll == 0) { + abilityroll += "/w GM "; } - 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}}}`; + 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}}}`; processRoll(baseRoll); }); @@ -11416,12 +11581,15 @@ on("clicked:repeating_zauber:roll", function(eventInfo) { on("clicked:aa_akrobatik clicked:aa_kw clicked:aa_gw", function(eventInfo) { let trigger = eventInfo.triggerName.split(":")[1].split("_")[1]; - getAttrs(['akrobatik', 'akrobatikbonus', 'akrobatik_gm', 'entschlossenheit', 'entschlossenheitbonus', 'entschlossenheit_gm', 'zaehigkeit', 'zaehigkeitbonus', 'zaehigkeit_gm', 'hiddenallfert', 'erschoepft', 'schadensmod', 'verteidigung', 'koerperlicherwiderstand', 'geistigerwiderstand', 'dice_mod'], function (values) { - let baseDice = ""; + getAttrs(['akrobatik', 'akrobatikbonus', 'akrobatik_gm', 'entschlossenheit', 'entschlossenheitbonus', 'entschlossenheit_gm', 'zaehigkeit', 'zaehigkeitbonus', 'zaehigkeit_gm', 'hiddenallfert', 'erschoepft', 'schadensmod', 'verteidigung', 'koerperlicherwiderstand', 'geistigerwiderstand', 'dice_mod', 'gmroll'], function (values) { let baseRoll = ""; - let mode = 1; - let wuerfel = ""; + let dice_mod = parseInt(values['dice_mod'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); let naming = ""; + let abilityroll = ""; + let gmroll = values['gmroll']; let akrobatik = parseInt(values['akrobatik'], 10) || 0; let akrobatikbonus = parseInt(values['akrobatikbonus'], 10) || 0; let akrobatik_gm = values['akrobatik_gm']; @@ -11438,7 +11606,6 @@ on("clicked:aa_akrobatik clicked:aa_kw clicked:aa_gw", function(eventInfo) { let hiddenallfert = parseInt(values['hiddenallfert'], 10) || 0; let erschoepft = parseInt(values['erschoepft'], 10) || 0; let schadensmod = parseInt(values['schadensmod'], 10) || 0; - let dice_mod = parseInt(values['dice_mod'], 10) || 0; let neuer_wert = ""; let sum = 0; let sum_akrobatik = +akrobatik + +akrobatikbonus + +hiddenallfert - +erschoepft - +schadensmod; @@ -11467,29 +11634,186 @@ on("clicked:aa_akrobatik clicked:aa_kw clicked:aa_gw", function(eventInfo) { neuer_wert = "Neuer GW"; } - switch (+values.dice_mod) { - case 1: - baseDice = "[[{[[1d10]],[[1d10]]}k1]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - break; - case 3: - baseDice = "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; - mode = 4; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}}"; - break; - default: - baseDice = "[[[[1d10]] + [[1d10]]]]"; - wuerfel = "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; - mode = 2; - break; + if (gmroll == 0) { + abilityroll += "/w GM "; } - baseRoll = `&{template:splittermond_aktiveabwehr} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{charactername=@{character_name}}} {{neuerwert=${neuer_wert}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{erfolge=[[1]]}} {{grossmeister=[[1d10]]}} {{mode=[[${mode}]]}} {{success=[[0]]}} {{grmmode=[[${grmmode}]]}} {{def=[[0]]}} {{naming=${naming}}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} ${wuerfel} {{Ticks=[[3+@{gesamttickplus}+@{benommen} @{initracker_input}]]}}`; + abilityroll += "&{template:splittermond_aktiveabwehr}"; + baseRoll = `${abilityroll} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{charactername=@{character_name}}} {{neuerwert=${neuer_wert}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{erfolge=[[1]]}} {{grossmeister=[[1d10]]}} {{mode=[[${mode}]]}} {{success=[[0]]}} {{grmmode=[[${grmmode}]]}} {{def=[[0]]}} {{naming=${naming}}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} ${wuerfel} {{Ticks=[[3+@{gesamttickplus}+@{benommen} @{initracker_input}]]}}`; processRoll(baseRoll); }); }); +on("clicked:gw_nsc clicked:kw_nsc clicked:akrobatik_nsc", function(eventInfo) { + let trigger = eventInfo.triggerName.split(":")[1].split("_")[0]; + + getAttrs(['akrobatik_nsc', 'akrobatik_gm_nsc', 'entschlossenheit_nsc', 'entschlossenheit_gm_nsc', 'zaehigkeit_nsc', 'zaehigkeit_gm_nsc', 'verteidigungnsc', 'schadensmodnsc', 'koerperlicherwiderstandnsc', 'geistigerwiderstandnsc', 'dice_mod_nsc', 'gmroll_nsc'], function (values) { + let baseRoll = ""; + let dice_mod = values['dice_mod_nsc']; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); + let naming = ""; + let abilityroll = ""; + let gmroll = values['gmroll']; + let grmmode = ""; + let akrobatik = parseInt(values['akrobatik_nsc'], 10) || 0; + let akrobatik_gm = values['akrobatik_gm_nsc']; + let entschlossenheit = parseInt(values['entschlossenheit_nsc'], 10) || 0; + let entschlossenheit_gm = values['entschlossenheit_gm_nsc']; + let zaehigkeit = parseInt(values['zaehigkeit_nsc'], 10) || 0; + let zaehigkeit_gm = values['zaehigkeit_gm_nsc']; + let verteidigung = parseInt(values['verteidigungnsc'], 10) || 0; + let koerperlicherwiderstand = parseInt(values['koerperlicherwiderstandnsc'], 10) || 0; + let geistigerwiderstand = parseInt(values['geistigerwiderstandnsc'], 10) || 0; + let schadensmod = parseInt(values['schadensmodnsc'], 10) || 0; + let neuer_wert = ""; + let sum = 0; + let sum_akrobatik = +akrobatik - +schadensmod; + let sum_kw = +zaehigkeit - +schadensmod; + let sum_gw = +entschlossenheit - +schadensmod; + + if (trigger == "akrobatik") { + grmmode = akrobatik_gm; + naming = "Ausweichen"; + basiswert = +akrobatik; + sum = +sum_akrobatik; + neuer_wert = "Neue Verteidigung"; + } else if (trigger == "kw") { + grmmode = zaehigkeit_gm; + naming = "KW-Erhöhung"; + basiswert = +zaehigkeit; + sum = +sum_kw; + verteidigung = koerperlicherwiderstand; + neuer_wert = "Neuer KW"; + } else if (trigger == "gw") { + grmmode = entschlossenheit_gm; + naming = "GW-Erhöhung"; + basiswert = +entschlossenheit; + sum = +sum_gw; + verteidigung = geistigerwiderstand; + neuer_wert = "Neuer GW"; + } + + if (gmroll == 0) { + abilityroll += "/w GM "; + } + + abilityroll += "&{template:splittermond_aktiveabwehr}"; + baseRoll = `${abilityroll} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{verteidigung=[[${verteidigung}]]}} {{charactername=@{character_name}}} {{neuerwert=${neuer_wert}}} {{mod=[[?{Situationsmodifikator|0}]]}} {{erfolge=[[1]]}} {{grossmeister=[[1d10]]}} {{mode=[[${mode}]]}} {{success=[[0]]}} {{grmmode=[[${grmmode}]]}} {{def=[[0]]}} {{naming=${naming}}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}} ${wuerfel} {{Ticks=[[3+@{gesamttickplus}+@{benommen} @{initracker_input}]]}}`; + + processRoll(baseRoll); + }); +}); + +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) { + let baseRoll = ""; + let bBeh = 0; + let dice_mod = parseInt(values['dice_mod_nsc'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); + let abilityroll = ""; + let waffenname = values['repeating_waffennsc_waffennamensc']; + let waffenwgs = parseInt(values['repeating_nahkampfwaffen_waffenwgsnsc'], 10) || 0; + let waffendefensiv = parseInt(values['repeating_waffennsc_waffendefensiv'], 10) || 0; + let grmmode = parseInt(values['repeating_waffennsc_gm'], 10) || 0; + let gmroll = values['gmroll_nsc']; + let waffenwert = parseInt(values['repeating_nahkampfwaffen_waffenwertnsc'], 10) || 0; + let damageroll = values['repeating_waffennsc_damagerollnsc']; + let rolldamage = values['repeating_waffennsc_rolldamagensc']; + let schadensmod = parseInt(values['schadensmodnsc'], 10) || 0; + let verteidigung = parseInt(values['verteidigungnsc'], 10) || 0; + let behinderung = 0; + let sum = +waffenwert - +schadensmod; + let defsum = +sum; + + if (gmroll == 0) { + abilityroll += "/w GM "; + } + + 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}]]}}`; + } 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}]]}}`; + } + + processRoll(baseRoll); + }); + +}); + +on("clicked:repeating_fertigkeitennsc:skill", function(eventInfo) { + + getAttrs(['repeating_fertigkeitennsc_fertigkeitnsc', 'repeating_fertigkeitennsc_gm', 'repeating_fertigkeitennsc_fertigkeitswertnsc', 'schadensmodnsc', 'dice_mod_nsc', 'gmroll_nsc'], function (values) { + let baseRoll = ""; + let bBeh = 0; + let dice_mod = parseInt(values['dice_mod_nsc'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); + let abilityroll = ""; + let skillname = values['repeating_fertigkeitennsc_fertigkeitnsc']; + skillname = skillname.charAt(0).toUpperCase() + skillname.slice(1); + let skillvalue = values['repeating_fertigkeitennsc_fertigkeitswertnsc']; + let grmmode = parseInt(values['repeating_fertigkeitennsc_gm'], 10) || 0; + let gmroll = values['gmroll_nsc']; + let schadensmod = parseInt(values['schadensmodnsc'], 10) || 0; + let verteidigung = parseInt(values['verteidigungnsc'], 10) || 0; + let behinderung = 0; + let sum = +skillvalue - +schadensmod; + + if (gmroll == 0) { + abilityroll += "/w GM "; + } + + abilityroll += "&{template:splittermond_generic}"; + baseRoll = `@{abilityroll} {{name=${skillname}}} {{charactername=@{namensc}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{basiswert=[[${skillvalue}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|15}]]}}`; + + processRoll(baseRoll); + }); + +}); + +on("clicked:repeating_zaubernsc:spell", function(eventInfo) { + + getAttrs(['repeating_zaubernsc_zaubernamensc', 'repeating_zaubernsc_gm', 'repeating_zaubernsc_zauberwertnsc', 'repeating_zaubernsc_zaubermodnsc', 'repeating_zaubernsc_zauberschwierigkeitnsc', 'repeating_zaubernsc_zauberkostennsc', 'schadensmodnsc', 'dice_mod_nsc', 'gmroll_nsc'], function (values) { + let baseRoll = ""; + let bBeh = 0; + let dice_mod = parseInt(values['dice_mod_nsc'], 10) || 0; + let wuerfel = getWuerfel(dice_mod); + let baseDice = getBaseDice(dice_mod); + let mode = getMode(dice_mod); + let abilityroll = ""; + let spellname = values['repeating_zaubernsc_zaubernamensc']; + let spellvalue = values['repeating_zaubernsc_zauberwertnsc']; + let spellmod = values['repeating_zaubernsc_zaubermodnsc']; + let spelldiff = values['repeating_zaubernsc_zauberschwierigkeitnsc']; + let spellcosts = values['repeating_zaubernsc_zauberkostennsc']; + let grmmode = parseInt(values['repeating_zaubernsc_gm'], 10) || 0; + let gmroll = values['gmroll_nsc']; + let schadensmod = parseInt(values['schadensmodnsc'], 10) || 0; + let behinderung = 0; + let sum = +spellvalue + +spellmod - +schadensmod; + + if (gmroll == 0) { + abilityroll += "/w GM "; + } + + abilityroll += "&{template:splittermond_generic}"; + baseRoll = `@{abilityroll} {{name=Zauber: ${spellname}}} {{charactername=@{namensc}}} {{Probe=[[ ${baseDice} + [[${sum}]] ]]}} {{mod=[[?{Situationsmodifikator|0}]]}} {{grossmeister=[[1d10]]}} {{erfolge=[[1]]}} ${wuerfel} {{mode=[[${mode}]]}} {{success=[[0]]}} {{dmgmalus=[[@{schadensmod}d1]]}} {{basiswert=[[${spellvalue}d1]]}} {{bbeh=[[${bBeh}]]}} {{behinderung=[[${behinderung}]]}} {{grmmode=[[${grmmode}]]}} {{schwierigkeit=[[1d0 + ?{Schwierigkeit|${spelldiff}}]]}} {{fokus=${spellcosts}}}`; + + processRoll(baseRoll); + }); + +}); + function isSuccess(result, threshold) { if (result >= threshold) { @@ -11586,12 +11910,59 @@ function modifySum(result, oDice, nDice, mode, success) { return result; } -function checkIfDefined (variable) { - if (variable in window) { - return true; +on("change:repeating_fertigkeitennsc", function(eventInfo) { + let repID = eventInfo.sourceAttribute.split("_")[2]; + let update = {}; + + getAttrs(['repeating_fertigkeitennsc_' + repID + '_fertigkeitswertnsc', 'repeating_fertigkeitennsc_' + repID + '_fertigkeitnsc', 'repeating_fertigkeitennsc_' + repID + '_gm_nsc'], function(values) { + let fertigkeit = values['repeating_fertigkeitennsc_' + repID + '_fertigkeitnsc']; + let value = values['repeating_fertigkeitennsc_' + repID + '_fertigkeitswertnsc']; + let gm = values['repeating_fertigkeitennsc_' + repID + '_gm_nsc']; + + switch (fertigkeit) { + case 'akrobatik': + update['akrobatik_nsc'] = +value; + update['akrobatik_gm_nsc'] = gm; + break; + case 'entschlossenheit': + update['entschlossenheit_nsc'] = +value; + update['entschlossenheit_gm_nsc'] = gm; + break; + case 'zaehigkeit': + update['zaehigkeit_nsc'] = +value; + update['zaehigkeit_gm_nsc'] = gm; + break; + } + + setAttrs(update); + + }); +}); + +function getBaseDice(dice_mod) { + if (dice_mod == 1) { + return "[[{[[1d10]],[[1d10]]}k1]]"; + } else if (dice_mod == 2) { + return "[[[[1d10]] + [[1d10]]]]"; + } else if (dice_mod == 3) { + return "[[{[[1d10]],[[1d10]],[[1d10]],[[1d10]]}k2]]"; + } +} + +function getWuerfel(dice_mod) { + if (dice_mod == 3) { + return "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}} {{wuerfel3=$[[2]]}} {{wuerfel4=$[[3]]}}"; } - return false; + return "{{wuerfel1=$[[0]]}} {{wuerfel2=$[[1]]}}"; +} + +function getMode(dice_mod) { + if (dice_mod == 3) { + return 4; + } + + return dice_mod; } \ No newline at end of file