Update class mechanics, stat rulesets, and CoA reference catalogs
This commit is contained in:
1 parent
b16821e92e
commit
39458d5de6
221 files changed
+2584962
-568
No files matched your search
@@ -42,6 +42,8 @@ export interface CombatResultRules {
|
||||
readonly canDodge?: boolean;
|
||||
readonly canParry?: boolean;
|
||||
readonly canBlock?: boolean;
|
||||
/** Source mechanic exception (for example, bleed effects that bypass armor). */
|
||||
readonly ignoreArmor?: boolean;
|
||||
readonly resistanceMode?: CombatResistanceMode;
|
||||
/** Overrides the level-derived base miss chance before the attacker's hit bonus is applied. */
|
||||
readonly baseMissChancePercent?: number;
|
||||
@@ -300,10 +302,10 @@ export function resolveCombatResult(input: ResolveCombatResultInput): CombatResu
|
||||
);
|
||||
|
||||
const armorPenetration = finitePercent(input.attacker.armorPenetrationPercent);
|
||||
const effectiveArmor = input.damageSchool === "physical"
|
||||
const effectiveArmor = input.damageSchool === "physical" && !input.rules?.ignoreArmor
|
||||
? finiteNonNegative(input.defender.armor) * (1 - armorPenetration / 100)
|
||||
: 0;
|
||||
const physicalReduction = input.damageSchool === "physical"
|
||||
const physicalReduction = input.damageSchool === "physical" && !input.rules?.ignoreArmor
|
||||
? armorReductionPercent(effectiveArmor, input.attacker.level)
|
||||
: 0;
|
||||
const armorMitigatedAmount = Math.min(
|
||||
|
||||
Reference in new issue
Block a user