Validate RoM primary five hybrid stats and pair mechanics

This commit is contained in:
phenom committed 2026-09-23 19:08:44 -04:00
1 parent 8e95480d4f
commit c8b3a3d95a
18 files changed
+2061 -48

No files matched your search

+4
View File
@@ -127,6 +127,7 @@ export type RomAbilitySemantic =
})
| (RomSemanticBase & {
readonly kind: "dot" | "hot";
readonly school: string;
readonly resource: string;
readonly intervalSeconds: number;
readonly durationSeconds: number;
@@ -530,6 +531,7 @@ function componentSemantics(component: RomSourceComponent, target: RomAbilityTar
const healing = target !== "hostile" && dot.base > 0;
addIfMissing(rows, {
kind: healing ? "hot" : "dot",
school: schoolFor(component),
resource,
intervalSeconds: dot.timeSeconds,
durationSeconds: positiveDuration(component),
@@ -758,6 +760,7 @@ function tooltipSemantics(ability: RomGeneratedAbilityLike, rows: RomAbilitySema
if (/\bbleed|damage over time|damage every|damage each (?:second|time)/.test(lower) && !hasKind(rows, "dot")) {
rows.push({
kind: "dot",
school: "tooltip-defined",
resource: "health",
intervalSeconds: firstNumber(lower, /every\s+(\d+(?:\.\d+)?)\s+seconds?/) ?? 0,
durationSeconds,
@@ -769,6 +772,7 @@ function tooltipSemantics(ability: RomGeneratedAbilityLike, rows: RomAbilitySema
if (/restores? .*hp.*(?:every|each) /.test(lower) && !hasKind(rows, "hot")) {
rows.push({
kind: "hot",
school: "healing",
resource: "health",
intervalSeconds: firstNumber(lower, /every\s+(\d+(?:\.\d+)?)\s+seconds?/) ?? 0,
durationSeconds,