74 lines
2.2 KiB
TypeScript
74 lines
2.2 KiB
TypeScript
import type { PartyRole } from "../game/partyRoles";
|
|
import type { CharacterAppearance } from "./characterCatalog";
|
|
|
|
export interface OnlineGroupCharacter {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
readonly classId: string;
|
|
readonly specializationId?: string | null;
|
|
readonly categoryId: string;
|
|
readonly raceId: string;
|
|
readonly gender: "female" | "male";
|
|
readonly level: number;
|
|
readonly appearance?: CharacterAppearance;
|
|
}
|
|
|
|
export interface OnlineGroupMember {
|
|
readonly accountId: string;
|
|
readonly username: string;
|
|
readonly character: OnlineGroupCharacter | null;
|
|
readonly role: PartyRole | null;
|
|
readonly joinedAt: number;
|
|
}
|
|
|
|
export interface OnlineGroupActivity {
|
|
readonly biteSizedSelection?: import("../../shared/bite-sized-layouts.mjs").BiteSizedRunSelection;
|
|
readonly difficultyId?: string;
|
|
readonly bossDifficulty?: number;
|
|
readonly id: string;
|
|
readonly type: "dungeon" | "manastorm";
|
|
readonly contentId: string;
|
|
readonly fillWithAi: boolean;
|
|
readonly includeBetaSpecs?: boolean;
|
|
readonly companionReadinessRevision?: number;
|
|
readonly companionSpecializationIds?: readonly string[];
|
|
readonly partySize: number;
|
|
readonly startingLevel: number | null;
|
|
readonly startedAt: number;
|
|
}
|
|
|
|
export interface OnlineGroup {
|
|
readonly id: string;
|
|
readonly leaderAccountId: string;
|
|
readonly members: readonly OnlineGroupMember[];
|
|
readonly activity: OnlineGroupActivity | null;
|
|
readonly activityRevision: number;
|
|
readonly createdAt: number;
|
|
readonly updatedAt: number;
|
|
}
|
|
|
|
export interface OnlineGroupInvitation {
|
|
readonly id: string;
|
|
readonly groupId: string;
|
|
readonly inviterAccountId: string;
|
|
readonly inviterUsername: string;
|
|
readonly createdAt: number;
|
|
readonly expiresAt: number;
|
|
}
|
|
|
|
export interface OnlineGroupSnapshot {
|
|
readonly group: OnlineGroup | null;
|
|
readonly invitations: readonly OnlineGroupInvitation[];
|
|
}
|
|
|
|
export interface StartOnlineGroupActivityInput {
|
|
readonly difficultyId?: string;
|
|
readonly bossDifficulty?: number;
|
|
readonly type: OnlineGroupActivity["type"];
|
|
readonly contentId: string;
|
|
readonly fillWithAi: boolean;
|
|
readonly includeBetaSpecs?: boolean;
|
|
readonly partySize: number;
|
|
readonly startingLevel?: number;
|
|
}
|