UNPKG

@xmobitea/gn-server

Version:

GearN Server by XmobiTea (Pro)

182 lines (181 loc) 5 kB
export declare enum RuleType { String = 1, Difference = 2, SetIntersection = 3, MatchTotal = 4, RegionSelection = 5, TeamSizeBalance = 6, TeamDifference = 7, TeamTicketSizeSimilarity = 8 } export declare enum RuleAttributeSource { UserInput = 1, PlayerData = 2 } export declare enum RuleExpansionType { None = 1, Linear = 2, Custom = 3 } interface RuleBase { name: string; type: RuleType; } export declare enum RuleStringCompairType { Equals = 1, NotEquals = 2 } export interface StringRule extends RuleBase { attributeSource: RuleAttributeSource; attributePath: string; type: RuleType.String; defaultValue: string; compairType: RuleStringCompairType; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType.None | RuleExpansionType.Custom; customExpansions?: { secondsBetweenExpansions: number; overrideValue: string[]; }; }; } export interface DifferenceRule extends RuleBase { attributeSource: RuleAttributeSource; attributePath: string; type: RuleType.Difference; defaultValue: number; allowedDifference: number; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType; linearExpansions?: { secondsBetweenExpansions: number; delta: number; limit: number; }; customExpansions?: { secondsBetweenExpansions: number; overrideValue: number[]; }; }; } export interface SetIntersectionRule extends RuleBase { attributeSource: RuleAttributeSource; attributePath: string; type: RuleType.SetIntersection; min: number; defaultValue: string[]; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType; linearExpansions?: { secondsBetweenExpansions: number; delta: number; }; customExpansions?: { secondsBetweenExpansions: number; overrideValue: number[]; }; }; } export interface MatchTotalRule extends RuleBase { attributeSource: RuleAttributeSource; attributePath: string; type: RuleType.MatchTotal; min: number; max: number; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType.None | RuleExpansionType.Custom; customExpansions?: { secondsBetweenExpansions: number; overrideMin?: number[]; overrideMax?: number[]; }; }; } export interface RegionSelectionRule extends RuleBase { attributePath: string; type: RuleType.RegionSelection; max: number; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType; linearExpansions?: { secondsBetweenExpansions: number; delta: number; limit: number; }; customExpansions?: { secondsBetweenExpansions: number; overrideValue: number[]; }; }; } export interface TeamSizeBalanceRule extends RuleBase { type: RuleType.TeamSizeBalance; allowedDifference: number; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType; linearExpansions?: { secondsBetweenExpansions: number; delta: number; limit: number; }; customExpansions?: { secondsBetweenExpansions: number; overrideValue: number[]; }; }; } export interface TeamDifferenceRule extends RuleBase { attributeSource: RuleAttributeSource; attributePath: string; type: RuleType.TeamDifference; allowedDifference: number; defaultValue: number; advancedSettings?: { secondsUntilOptional: number; expansionType: RuleExpansionType; linearExpansions?: { secondsBetweenExpansions: number; delta: number; limit: number; }; customExpansions?: { secondsBetweenExpansions: number; overrideValue: number[]; }; }; } export interface TeamTicketSizeSimilarityRule extends RuleBase { type: RuleType.TeamTicketSizeSimilarity; advancedSettings?: { secondsUntilOptional: number; }; } export interface xMatchmakingQueueSettings { queueName: string; matchSize: { min: number; max: number; }; ticketSize: { min: number; max: number; }; serverAllocation: { enable: boolean; }; teams?: { teamId: string; teamSize: { min: number; max: number; }; }[]; rules?: (StringRule | DifferenceRule | SetIntersectionRule | MatchTotalRule | RegionSelectionRule | TeamSizeBalanceRule | TeamDifferenceRule | TeamTicketSizeSimilarityRule)[]; } export {};