Release Healer Man 0.1.22

This commit is contained in:
phenom committed 2026-09-09 11:21:33 -04:00
1 parent f6f2375145
commit 7f6001723a
144 files changed
+54107 -690

No files matched your search

+31 -2
View File
@@ -1,6 +1,8 @@
import type { Vector3Tuple } from "./dungeonTypes";
export const DUNGEON_ENCOUNTER_SNAPSHOT_SCHEMA_VERSION = 1;
// Version 2 preserves consumed action execution order so durable state can be
// reconstructed without reviving attempt-scoped object/flag overwrites.
export const DUNGEON_ENCOUNTER_SNAPSHOT_SCHEMA_VERSION = 2;
export type DungeonEncounterResetScope = "boss-wipe" | "checkpoint" | "dungeon";
export type DungeonEncounterValue = string | number | boolean;
@@ -52,12 +54,17 @@ export type DungeonEncounterTrigger =
| {
readonly kind: "entities-dead";
readonly entityIds: readonly string[];
/** A source-authored safety timeout prevents an encounter from soft locking. */
/**
* Missing-actor recovery window. It may advance presentation-only rules
* when no listed target is registered alive, but can never award an
* objective, checkpoint, loot, or dungeon completion.
*/
readonly timeoutMs?: number;
};
export type DungeonEncounterGuard =
| { readonly kind: "phase"; readonly phases: readonly string[] }
| { readonly kind: "difficulty"; readonly difficultyIds: readonly string[] }
| { readonly kind: "flag"; readonly flagId: string; readonly equals: boolean }
| {
readonly kind: "counter";
@@ -116,12 +123,34 @@ export interface DungeonEncounterResetPolicy {
readonly checkpointPhase?: string;
}
export type DungeonEncounterFidelity =
| "source-exact"
| "source-backed-adapted"
| "healer-man-authored";
export type DungeonEncounterScope = "boss-progression" | "instance-orchestration";
/**
* Review record kept beside executable encounter data. Adapted behavior must
* remain explicit so a safe approximation is never mistaken for a finished
* port of the original instance script.
*/
export interface DungeonEncounterSourceReview {
readonly fidelity: DungeonEncounterFidelity;
readonly scope: DungeonEncounterScope;
readonly files: readonly string[];
readonly reviewedBehavior: string;
readonly adaptations: readonly string[];
readonly remainingGaps: readonly string[];
}
export interface DungeonEncounterDefinition {
readonly id: string;
readonly dungeonId: string;
readonly initialPhase: string;
readonly initialState?: DungeonEncounterInitialState;
readonly resetPolicy?: DungeonEncounterResetPolicy;
readonly source?: DungeonEncounterSourceReview;
readonly rules: readonly DungeonEncounterRule[];
}