D&D - Kalkulačka průměrného zranění

Úvod

Tato kalkulačka je obecně použitelná pro výpočet průměrného zranění zbraně podle pravidel D&D. Umožňuje porovnání různých buildů.

Jako příklad je do kalkulačky předvyplňeno zranění postavičky, která používá v každé ruce Kukri, má sílu 22 (mod. síly je +6), a disponuje featy Vylepšený kritický pro Kukri, Obouručnost, Boj dvěma zbraněmi a Vylepšený boj 2 zbraněmi. Na Kukri je přítomen Masivní kritický "1-8". Nejyšší AB postavičký je 20, a disponuje celkem 6 útoky za kolo. Útočí do nepřátelského NPC které má AC 30.

Vstupní údaje

Zranění na zbrani

Jedná se o základní rozpis zranění uvedeného na zbrani, vč. bonusu ze síly a z featů či kouzel. Nepatří sem však zákeřný útok nebo masivní kritický. Používá-li vaše postavička 2 zbraně, musíte si ručně snížit bonus ze síly (zprůměrovat bonus ze síly) a to následovně:

Rozsah zranění Popisek Průměrné zranění
{{ inputDamages[index][1] }} {{ calculateAverageDamageFromString(inputDamages[index][0]) }}
Suma: {{ getTotalAverageDamage() }}
Celk. průměrné zranění: {{ getTotalAverageDamage() }}

Pomocná tabulka pro zjištění postihu síly při držení offhand zbraně

Pokud útočník drží v hlavní ruce jednoruční zbraň, tak se ke zranění aplikuje celý modifikátor síly útočníka. Tedy má-li útočník sílu 22, přidá se ke zranění 6 bodů. V případě offhand zbraně je však ke zranění přidaná pouze polovina modifikátoru síly, tedy ze síly 22 by to byly jen 3 body. Pokud tedy používáte zbraň v druhé ruce, přidejte si do výše uvedené tabulky ručně postih síly.

Utoků za kolo Z toho off-hand útoků Postih síly za offhand zbraň
6 2 1/6 x Mod. síly
7 2 1/7 x Mod. síly
8 2 1/8 x Mod. síly

Zranění s kritickým úderem

Kritický úder zvedá základní zranění o nějakou procentuální část. Nezvedá však např. sneak attack.

Atribut Hodnota
Rozsah a násobitel kritického úderu
 - 20 x 
Šance na kritický do sláměného panáka {{ calculateCriticalChancePercentage(criticalRange) * 100 }} %
Zvýšení zranění {{ roundNumber(calculateCriticalTotalDamageIncreasePercent(criticalRange, criticalMultipl) * 100, 1) }} %
Celk. prům. zranění {{ roundNumber(getTotalAverageDamageIncludingCritical(), 1) }}

Zranění se silným kritickým

Silné kritické zranění se přidává ke zranění v případě, že nastane kritický úder. Silný kritický může být přítomen jako vylepšení na zbrani, nebo ho můžeme získat z featu Overhelming Critical. Tyto se následně sčítají.

Rozsah zranění Průměrné zranění
{{ calculateAverageDamageFromString(massiveCriticals[index]) }}
Suma: {{ getMassiveCriticalsDamageSum() }}
Celk. prům. zranění: {{ roundNumber(getTotalAverageDamageIncludingCriticalAndMassiveCritical(), 1) }}

Zranění se zákeřným útokem

Zákeřný útok se přídává ke zranění, avšak není násoben v případě kritického zranění.

Přidané zranění Průměrné zranění
 d6
{{ getSneakAttackDamage() }}
Celk. prům. zranění: {{ roundNumber(getTotalAverageDamageIncludingCriticalAndMassiveCriticalAndSneakAttack(), 1) }}

Zranění za kolo do reálného soupeře

Atributy vašeho protivníka
Obranné číslo - AC
Redukce zranění
Epický únik / Odrážení šípů
Útok
za kolo
AB
Vaši postavičky
Šance
na zásah nepřítele
Průměrné
zranění
{{ index + 1 }}.
 
 
{{ roundNumber(calculateChanceToHitOpponent(oponentAc, inputAbs[index]) * 100, 1) }} % 0 {{ roundNumber(calculateDamageToOpponent(oponentAc, inputAbs[index]), 1) }}
Suma: {{ roundNumber(getTotalAverageDamagePerRoundToOponent(), 1) }}

Shrnutí

Atribut Hodnota
Rozpis zranění na zbrani {{ inputDamages.filter((dmg, idx) => dmg[0] && idx <= 4).map(dmg => dmg[0] + " (" + dmg[1] + ")").join(", ")}}
{{ inputDamages.filter((dmg, idx) => dmg[0] && idx > 4).map(dmg => dmg[0] + " (" + dmg[1] + ")").join(", ")}}
Přidané zranění kritický {{ criticalRange }}-20/x{{ criticalMultipl }}, masivní kritický +{{ getMassiveCriticalsDamageSum() }} {{ sneakAttack1d6Count != 0 ? ", zákeřný " + getSneakAttackDamage() : ""}}
AB za kolo +{{ inputAbs.filter(iAbs => iAbs > 0).join(", +")}}
Součet zranění na zbrani {{ getTotalAverageDamage() }}
Zranění vč. kritického {{ roundNumber(getTotalAverageDamageIncludingCritical(), 1) }}
Zranění vč. masivních kritických {{ roundNumber(getTotalAverageDamageIncludingCriticalAndMassiveCritical(), 1) }}
Zranění vč. zákeřného útoku {{ roundNumber(getTotalAverageDamageIncludingCriticalAndMassiveCriticalAndSneakAttack(), 1) }}
Zranění za kolo ( AC {{ oponentAc }}{{ oponentEpicDodge ? ", únik" : ""}}{{ oponentDamageReduction > 0 ? ", redu. " + oponentDamageReduction + "/-" : ""}} ) {{ roundNumber(getTotalAverageDamagePerRoundToOponent(), 1) }}

Závěrem

Omezení

Confirmation roll

V kalkuilačce se vypočítává zranění udílené kritickým úderem bez tzv. "Confirmation roll", tedy z tohoto důvodu výpočet zranění z kritického je 100% přesný v případě mlácení do sláměného panáka, ale čím vyšší má oponent AC, tím více se projeví nepřesnost kvůli chybějícímu Confirmation roll.

Ad absurdum, potřebujeme-li hodit kostkou 19-20 abychom obránce zasáhli, tak toto má rovněž i drastický dopad na udílení kritického zranění: Nejprve totiž potřebujeme hodit 19-20, abychom vůbec zasáhli, a potom potřebujeme znovu hodit 19-20 (Confirmation roll), abychom udělali kritický úder.

Toto značně snižuje pravděpodobnost udělení kritického do oponenta s vysokým AC. Kalkulačka toto pro zachování jednoduchosti nereflektuje.

Autor

Jiří Kačírek, email: kacirek.j@gmail.com

Přezdívka: Jurass17, jednou za čas hraju na Arkhalii a Demoně.

Licence

Veškeré zdrojové kódy jsou přístupné ve "View Page Source" nebo na Github.com. Software můžete dále modifikovat a šířit, nezapomeňte mě však prosím uvézt jako autora či spoluautora. Děkuji.