Release Healer Man 0.1.5

This commit is contained in:
phenom committed 2026-08-18 16:22:19 -04:00
1 parent f4c9cf356c
commit 55cfd43d66
62 files changed
+3030 -153

No files matched your search

+12 -6
View File
@@ -3,6 +3,7 @@ import { useCombatStore } from "./combatStore";
import { synchronizeManastormAffixes } from "./manastormAffixRuntime";
import { useManastormStore } from "./manastormStore";
import { usePartyStore } from "./partyStore";
import { useGameStore } from "./store";
import {
manastormChaoticLinkState,
type ManastormChaoticLinkState,
@@ -153,7 +154,12 @@ export function synchronizeManastormPartySize(): void {
function activateCurrentStage(preserveCharacter: boolean): boolean {
const encounter = useManastormStore.getState().currentEncounter;
if (!encounter) return false;
const result = activateManastormStage(encounter, undefined, preserveCharacter);
const result = activateManastormStage(
encounter,
undefined,
preserveCharacter,
useGameStore.getState().gmTestMode,
);
if (result.activated) synchronizeManastormPartySize();
return result.activated;
}
@@ -234,7 +240,7 @@ function reviveTarget(target: ManastormResurrectionTarget): boolean {
if (target.kind === "player") {
const combat = useCombatStore.getState();
if (combat.health > 0 || combat.maxHealth <= 0) return false;
combat.healPlayer(combat.maxHealth);
combat.revivePlayer(1);
return useCombatStore.getState().health > 0;
}
@@ -277,16 +283,16 @@ export function manastormPartyIsDefeated(): boolean {
}
/**
* Resolves a newly downed actor without resetting the floor. An actor remains
* down when the shared pool is empty while an ally is still standing. Only a
* full-party defeat with no valid charge-backed revive fails the run.
* Resolves a newly downed actor without spending a shared resurrection on the
* player's behalf. A charge can be used explicitly from the defeated prompt;
* only a full-party defeat with no remaining charge fails the run.
*/
export function resolveManastormActorDown(
target: ManastormResurrectionTarget,
): ManastormDownResolution {
if (!targetIsFallen(target)) return "ignored";
if (resurrectManastormSession(target)) return "revived";
if (!manastormPartyIsDefeated()) return "downed";
if (useManastormStore.getState().resurrectionCharges > 0) return "downed";
useManastormStore.getState().failRun();
return "failed";
}