osrs-tools
Version:
A comprehensive TypeScript library for Old School RuneScape (OSRS) data and utilities, including quest data, skill requirements, and game item information
103 lines • 2.9 kB
TypeScript
import { DemonicPactScorer } from "./DemonicPact";
export declare enum LeaguesSeason {
Leagues7 = "Leagues 7"
}
export declare enum CombatStyle {
Universal = "Universal",
Melee = "Melee",
Ranged = "Ranged",
Magic = "Magic"
}
export declare enum PactNodeSize {
Minor = "Minor",
Major = "Major",
Capstone = "Capstone"
}
export type PactEffectValue = number | string | null;
export interface PactEffect {
key: string | null;
value: PactEffectValue;
description: string;
}
export interface DemonicPactDrawCoord {
x: number;
y: number;
}
export interface DemonicPact {
id: string;
name: string;
description: string;
rawDescription: string;
style: CombatStyle;
nodeSize: PactNodeSize;
pointCost: number;
linkedNodeIds: string[];
effect: PactEffect;
drawCoord: DemonicPactDrawCoord;
icon: string;
}
export interface DemonicPactTree {
season: LeaguesSeason;
displayName: string;
totalPointsAvailable: number;
rootNodeId: string;
source: string;
pacts: DemonicPact[];
}
export type CombatMasterySkillTree = DemonicPactTree;
export type CombatMasteryNode = DemonicPact;
export interface UnlockEvaluation {
unlockable: boolean;
reason?: string;
pointsRemaining: number;
missingLinkedPactIds?: string[];
}
export interface DemonicPactOptimizerOptions {
preferredStyles: readonly CombatStyle[];
pointBudget?: number;
startingPactIds?: readonly string[];
requiredPactIds?: readonly string[];
excludedPactIds?: readonly string[];
beamWidth?: number;
includeRoot?: boolean;
scorer?: DemonicPactScorer;
}
export interface DemonicPactOptimizationResult {
selectedPactIds: string[];
unlockOrder: string[];
selectedPacts: DemonicPact[];
spentPoints: number;
remainingPoints: number;
score: number;
unlockableNextPacts: DemonicPact[];
}
export interface DemonicPactScoringContext {
tree: DemonicPactTree;
selectedPactIds: readonly string[];
preferredStyles: readonly CombatStyle[];
}
export interface DemonicPactPathingInfo {
pactId: string;
minimumUnlockHopsFromRoot: number;
minimumPointSpendFromRoot: number;
minimumUnlockPathPactIds: string[];
}
export interface DemonicPactStylePlanningSummary {
style: CombatStyle;
pactCount: number;
capstonePactIds: string[];
totalPointCost: number;
cheapestAccessPactId: string;
cheapestAccessPointSpend: number;
}
export interface DemonicPactPlanningData {
totalPacts: number;
totalPointsAvailable: number;
rootPactId: string;
capstonePactIds: string[];
leafPactIds: string[];
junctionPactIds: string[];
pathingByPactId: Readonly<Record<string, DemonicPactPathingInfo>>;
styleSummaries: Readonly<Record<CombatStyle, DemonicPactStylePlanningSummary>>;
}
//# sourceMappingURL=DemonicPact.model.d.ts.map