UNPKG

metafide-surge

Version:

Metafide Surge Game Computation

106 lines (93 loc) 2.17 kB
export interface BaseGameData { gid: number; t1: number; t2: number; t3: number; st: string; ha: number | null; la: number | null; oa: number | null; ca: number | null; } export type RangeGame = BaseGameData; export interface SpotGame extends BaseGameData { ai: number | null; } export interface BasePlayerData { gid: number; c: string; a: string; f: number; cm: boolean; t: string | number; w: number; r: number; pw: string; win: boolean; tx?: string; } export interface RangePlayer extends BasePlayerData { id: string; hp: number; lp: number; cmt: string | null; p: number; ex: boolean; ex_ha: number | null; ex_la: number | null; ex_t: number | null; } export interface SpotPlayer extends BasePlayerData { id: number; sp: number; cmt: number | null; txid?: string; } export type SpotVarianceInput = { actual_price: number; abs_spot_var: number; token_milliseconds: number; share_tkm_to_var: number; sum_share_tkm_to_var: number; }; export type RangeVarianceInput = { high_actual: number; low_actual: number; total_variance: number; sum_total_variance: number; }; export type SpotPlayerVarianceResult = SpotPlayer & { varianceInput: SpotVarianceInput; }; export type RangePlayerVarianceResult = RangePlayer & { varianceInput: RangeVarianceInput; }; export interface PotDistribution { total_pot: number; metafide_rake: number; streak_pot_5: number; streak_pot_10: number; streak_pot_25: number; daily_reward_pot: number; monthly_reward_pot: number; burn: number; winning_pot: number; range_rake?: number; } export interface AllocationPercentages { metafide_rake: number; streak_pot_5: number; streak_pot_10: number; streak_pot_25: number; daily_reward_pot: number; monthly_reward_pot: number; burn: number; range_rake?: number; } export interface ComputedData { players: (RangePlayer | SpotPlayer)[]; // List of players with computed winnings and returns streak: { winnings: (RangePlayer | SpotPlayer)[]; // Top players by total winnings returns: (RangePlayer | SpotPlayer)[]; // Top players by percent return }; }