UNPKG

brawl-api-wrapper

Version:

An API wrapper for the well know supercell game called Brawl Stars

79 lines (78 loc) 3.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Player = void 0; const utils_1 = require("../utils"); const PlayerBrawler_1 = require("./PlayerBrawler"); class Player { constructor(data, client) { var _a; this.name = data.name; this.tag = data.tag; this.nameColor = data.nameColor; this.icon = data.icon; this.trophies = data.trophies; this.level = data.expLevel; this.xp = data.expPoints; this.highestTrophies = data.highestTrophies; this.highestPowerPlayPoints = data.highestPowerPlayPoints; this.isQualifiedFromChampionshipChallenge = data.isQualifiedFromChampionshipChallenge; this.soloVictories = data.soloVictories; this.duoVictories = data.duoVictories; this['3vs3Victories'] = data['3vs3Victories']; this.bestRoboRumbleTime = utils_1.RoboRumble[data.bestRoboRumbleTime]; this.club = Object.keys(data.club).length === 0 ? null : data.club; this.brawlers = data.brawlers.map((x) => new PlayerBrawler_1.PlayerBrawler(x, client)); this.battlelog = (_a = data.battlelog) !== null && _a !== void 0 ? _a : null; } getBrawler(name) { return this.brawlers.find((brawler) => brawler.name.toLowerCase() === name.toLowerCase()); } getGadget(name) { var _a; return (_a = this.brawlers .find((brawler) => brawler.gadgets.some((gadget) => gadget.name.toLowerCase() === name.toLowerCase()))) === null || _a === void 0 ? void 0 : _a.gadgets.find((gadget) => gadget.name.toLowerCase() === name.toLowerCase()); } getStarPower(name) { var _a; return (_a = this.brawlers .find((brawler) => brawler.starPowers.some((starPower) => starPower.name.toLowerCase() === name.toLowerCase()))) === null || _a === void 0 ? void 0 : _a.starPowers.find((starPower) => starPower.name.toLowerCase() === name.toLowerCase()); } getGear(name) { var _a; return (_a = this.brawlers .find((brawler) => brawler.gears.some((gear) => gear.name.toLowerCase() === name.toLowerCase()))) === null || _a === void 0 ? void 0 : _a.gears.find((gear) => gear.name.toLowerCase() === name.toLowerCase()); } sortBrawlers(filter, criteria) { switch (filter) { case 'TROPHIES': { return criteria === 'ASCENDING' ? this.brawlers.sort((a, b) => b.trophies - a.trophies) : this.brawlers.sort((a, b) => a.trophies - b.trophies); } break; case 'POWER': { return criteria === 'ASCENDING' ? this.brawlers.sort((a, b) => b.power - a.power) : this.brawlers.sort((a, b) => a.power - b.power); } break; case 'RANK': { return criteria === 'ASCENDING' ? this.brawlers.sort((a, b) => b.rank - a.rank) : this.brawlers.sort((a, b) => a.rank - b.rank); } break; default: { return this.brawlers; } } } getSeasonReset() { const { remainingTrophies, trophyBox } = (0, utils_1.getSeasonReset)(this.brawlers, this.trophies); return { remainingTrophies, trophyBox }; } } exports.Player = Player;