Release Healer Man 0.1.6

This commit is contained in:
phenom committed 2026-08-20 14:05:50 -04:00
1 parent 55cfd43d66
commit b12fb84859
96 files changed
+10874 -609

No files matched your search

+108
View File
@@ -0,0 +1,108 @@
import type { CharacterCombatAnimationEvent } from "../game/combatAnimation";
import type { ActiveCast, MobCombatState } from "../game/combatStore";
import type { DamageSchool } from "../game/combatAuras";
import type { InventoryItem } from "../game/lootTypes";
import type { PartyMember } from "../game/partyStore";
import type { OnlineGroupActivity, OnlineGroupCharacter } from "./onlineGroupTypes";
import type { PartyRole } from "../game/partyRoles";
export type OnlineSessionVector = readonly [number, number, number];
export interface OnlineSessionPlayer {
readonly accountId: string;
readonly username: string;
readonly character: OnlineGroupCharacter | null;
readonly role: PartyRole | null;
readonly position: OnlineSessionVector;
readonly yaw: number;
readonly grounded: boolean;
readonly health: number;
readonly maxHealth: number;
readonly resource: number;
readonly maxResource: number;
readonly resourceName: string;
readonly selectedTargetId: string | null;
readonly activeCast: ActiveCast | null;
readonly animationEvent: CharacterCombatAnimationEvent | null;
readonly equipment: readonly InventoryItem[];
readonly updatedAt: number;
}
export interface OnlineMobTransform {
readonly position: OnlineSessionVector;
readonly yaw: number;
}
export interface OnlineSharedWorld {
readonly mobs: Readonly<Record<string, MobCombatState>>;
readonly mobTransforms: Readonly<Record<string, OnlineMobTransform>>;
readonly partyMembers: readonly PartyMember[];
readonly partyPositions: Readonly<Record<string, OnlineSessionVector>>;
readonly partyRuntime: {
readonly command: string;
readonly activeMobId: string | null;
readonly objectiveBossId: string | null;
readonly memberTargetIds: Readonly<Record<string, string>>;
};
readonly wailing: Readonly<Record<string, unknown>> | null;
readonly manastorm: Readonly<Record<string, unknown>> | null;
readonly publishedAt?: number;
readonly publishedBy?: string;
}
export type OnlineRelayEventKind = "damage" | "healing" | "resurrection" | "loot" | "portal";
export interface OnlineRelayEventInput {
readonly clientEventId: string;
readonly kind: OnlineRelayEventKind;
readonly sourceActorId: string;
readonly targetActorId: string;
readonly abilityId?: string | null;
readonly school?: DamageSchool | null;
readonly rawAmount?: number;
readonly effectiveAmount?: number;
readonly critical?: boolean;
readonly occurredAt?: number;
}
export interface OnlineRelayEvent extends OnlineRelayEventInput {
readonly id: number;
readonly sourceAccountId: string;
readonly createdAt: number;
}
export interface OnlineSessionSnapshot {
readonly activity: OnlineGroupActivity;
readonly groupId: string;
readonly leaderAccountId: string;
readonly localAccountId: string;
readonly authority: boolean;
readonly revision: number;
readonly serverTime: number;
readonly players: readonly OnlineSessionPlayer[];
readonly world: OnlineSharedWorld | null;
readonly events: readonly OnlineRelayEvent[];
readonly latestEventId: number;
}
export interface OnlinePresenceInput {
readonly position: OnlineSessionVector;
readonly yaw: number;
readonly grounded: boolean;
readonly health: number;
readonly maxHealth: number;
readonly resource: number;
readonly maxResource: number;
readonly resourceName: string;
readonly selectedTargetId: string | null;
readonly activeCast: ActiveCast | null;
readonly animationEvent: CharacterCombatAnimationEvent | null;
readonly equipment: readonly InventoryItem[];
}
export interface OnlineSessionSyncInput {
readonly afterEventId: number;
readonly presence: OnlinePresenceInput;
readonly world?: OnlineSharedWorld;
readonly events?: readonly OnlineRelayEventInput[];
}