UNPKG

metafide-surge

Version:

Metafide Surge Game Computation

87 lines (86 loc) 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.serializeSpotPlayer = exports.serializeRangePlayer = exports.scaleFrom1e8 = exports.DEFAULT_SPOT_ALLOCATION_PERCENTAGES = exports.DEFAULT_RANGE_ALLOCATION_PERCENTAGES = void 0; /** * Default allocation percentages used if none are provided. */ exports.DEFAULT_RANGE_ALLOCATION_PERCENTAGES = { metafide_rake: 0.019875, streak_pot_5: 0.01425, streak_pot_10: 0.0095, streak_pot_25: 0.002375, daily_reward_pot: 0.0035, monthly_reward_pot: 0.0015, burn: 0.025, // 2.5% }; exports.DEFAULT_SPOT_ALLOCATION_PERCENTAGES = { metafide_rake: 0.019875, range_rake: 0.015, streak_pot_5: 0.01425, streak_pot_10: 0.0095, streak_pot_25: 0.002375, burn: 0.025, daily_reward_pot: 0.0035, monthly_reward_pot: 0.0015, // 0.15% }; /** * Scales down a number from 1e8, safely handling all edge cases. * @param value - The input value to scale * @returns The scaled value, or 0 if input is invalid */ function scaleFrom1e8(value) { if (typeof value !== 'number' || !isFinite(value)) { return 0; } if (value === 0) { return 0; } return value / 1e8; } exports.scaleFrom1e8 = scaleFrom1e8; function serializeRangePlayer(data) { var _a; return { gid: Number(data.gid), c: data.c, a: data.a, id: data.id, f: Number(data.f), hp: Number(data.hp), lp: Number(data.lp), cm: data.cm, cmt: (_a = data.cmt) !== null && _a !== void 0 ? _a : null, t: data.t, w: Number(data.w), r: Number(data.r), p: Number(data.p), ex: data.ex, ex_ha: data.ex_ha ? Number(data.ex_ha) : null, ex_la: data.ex_la ? Number(data.ex_la) : null, ex_t: data.ex_t ? Number(data.ex_t) : null, pw: data.pw, win: data.win, }; } exports.serializeRangePlayer = serializeRangePlayer; function serializeSpotPlayer(data) { var _a; return { gid: Number(data.gid), c: data.c, a: data.a, id: data.id, f: Number(data.f), cm: data.cm, cmt: (_a = data.cmt) !== null && _a !== void 0 ? _a : null, t: data.t, w: Number(data.w), r: Number(data.r), sp: Number(data.sp), pw: data.pw, win: data.win, tx: data.tx, txid: data.txid, }; } exports.serializeSpotPlayer = serializeSpotPlayer;