Release Healer Man 0.1.5
This commit is contained in:
1 parent
f4c9cf356c
commit
55cfd43d66
62 files changed
+3030
-153
No files matched your search
@@ -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";
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user