brawl-api-wrapper
Version:
An API wrapper for the well know supercell game called Brawl Stars
79 lines (78 loc) • 3.51 kB
JavaScript
;
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;