Release Healer Man 0.1.29

This commit is contained in:
phenom committed 2026-09-11 14:26:15 -04:00
1 parent 8c9809d3e0
commit 544c1bee91
120 files changed
+4363 -1036

No files matched your search

+10 -9
View File
@@ -13,7 +13,7 @@ import { DEFAULT_COMBAT_PRESENTATION_SETTINGS, type CombatVfxMode } from "../gam
import { DEFAULT_GAMEPLAY_SETTINGS } from "../game/combatStore";
import { OptionsPanel, nextCombatVfxMode } from "./OptionsPanel";
function renderOptions(mode: CombatVfxMode, originalMediaEnabled = false): string {
function renderOptions(mode: CombatVfxMode, originalMediaEnabled = DEFAULT_COMBAT_PRESENTATION_SETTINGS.originalMediaEnabled): string {
return renderToStaticMarkup(createElement(OptionsPanel, {
settings: DEFAULT_GAMEPLAY_SETTINGS,
onChange: () => undefined,
@@ -31,28 +31,29 @@ describe("combat visual mode option", () => {
combatMedia.ready = false;
});
it("cycles between generated and strict original selections", () => {
it("allows an explicit generated override of the original-first default", () => {
expect(nextCombatVfxMode("generated")).toBe("original");
expect(nextCombatVfxMode("original")).toBe("generated");
});
it("renders generated as the default selection", () => {
it("renders original as the default selection while media is unavailable", () => {
const markup = renderOptions(DEFAULT_COMBAT_PRESENTATION_SETTINGS.vfxMode);
expect(markup).toContain("Spell visual mode");
expect(markup).toContain("Original spell effects & sounds");
expect(markup).toContain("Not downloaded by default.");
expect(markup).toContain("download automatically when enabled.");
expect(markup).toContain(">Download</button>");
expect(markup).toContain("Generated effects are used until the optional original media pack is downloaded.");
expect(markup).toContain(">Generated</button>");
expect(markup).toContain("Generated visuals are the backup while original media is unavailable.");
expect(markup).toContain("missing sounds stay silent.");
expect(markup).toContain(">Original</button>");
});
it("states that original mode never substitutes generated effects", () => {
it("explains original effects take priority and generated visuals are only a fallback", () => {
combatMedia.ready = true;
const markup = renderOptions("original", true);
expect(markup).toContain("Use only packaged original source effects.");
expect(markup).toContain("Unsupported spells show no visual effect.");
expect(markup).toContain("Use original spell effects first, with generated visuals only when an original effect is unavailable.");
expect(markup).toContain("Missing sounds stay silent.");
expect(markup).toContain(">Original</button>");
expect(markup).toContain(">Remove</button>");
});