Skip to content

Commit

Permalink
Updated SkyWars stats (slothpixel#679)
Browse files Browse the repository at this point in the history
* Fixed 4v4 stats

* idk stole this from bedwars

* tbh I don't know what to call this but it's done

* Added my uuid to controbutors

* Made fixes for lintnofix

* Updated for better readability

* Removed unneeded replace statements
  • Loading branch information
TheMysterys authored and ChristianDobbie committed Jan 10, 2022
1 parent 966824a commit 63aae75
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 25 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTORS.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ module.exports = [
'7c0da4ba54fa40df82309200e69d328e', // ImRodry
'763b4f2684d94edeaf4f61522cd7c1b9', // Squagward
'40d803128602485382a112c60cfe84ae', // MattTheCuber
'4e832e0d14b64f8face2280a9bf9dd98', // TheMysterys
];
82 changes: 57 additions & 25 deletions processors/games/SkyWars.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
* SkyWars
*/
const { getLevelForExp } = require('../../util/calculateSkyWarsLevel');
const { getRatio } = require('../../util/utility');
const { getRatio, pickKeys } = require('../../util/utility');

module.exports = ({
coins = 0,
wins = 0,
losses = 0,
skywars_experience = 0,
levelFormatted = '',
kills = 0,
deaths = 0,
assists = 0,
Expand All @@ -23,27 +24,58 @@ module.exports = ({
soul_well = 0,
soul_well_rares = 0,
soul_well_legendaries = 0,
}) => ({
coins,
wins,
losses,
win_loss_ratio: getRatio(wins, losses),
experience: skywars_experience,
level: getLevelForExp(skywars_experience),
kills,
deaths,
assists,
kill_death_ratio: getRatio(kills, deaths),
souls_gathered,
souls,
arrows_shot,
arrows_hit,
arrow_hit_miss_ratio: getRatio(arrows_hit, arrows_shot),
eggs_thrown: egg_thrown,
enderpearls_thrown,
blocks_placed,
blocks_broken,
soul_well_uses: soul_well,
soul_well_rares,
soul_well_legendaries,
});
...rest
}) => {
const getModeStats = (regexp) => pickKeys(rest, {
regexp,
keyMap: (key) => key.replace(regexp, '')
});
const gamemodes = {};
const betterModeNames = {
'solo(?!_insane|_normal)': 'solo',
solo_insane: 'solo_insane',
solo_normal: 'solo_normal',
'team(?!_insane|_normal)': 'team',
team_insane: 'team_insane',
team_normal: 'team_normal',
'lab(?!_solo|_team)': 'lab',
lab_solo: 'lab_solo',
lab_team: 'lab_team',
};
Object.keys(betterModeNames).forEach((name) => {
gamemodes[betterModeNames[name]] = getModeStats(new RegExp(`_${name}$`));
gamemodes[betterModeNames[name]].kill_death_ratio = getRatio(gamemodes[betterModeNames[name]].kills, gamemodes[betterModeNames[name]].deaths);
gamemodes[betterModeNames[name]].win_loss_ratio = getRatio(gamemodes[betterModeNames[name]].wins, gamemodes[betterModeNames[name]].losses);
});
Object.keys(gamemodes).forEach(function(name) {
const mode = gamemodes[name];
mode.kill_death_ratio = getRatio(mode.kills,mode.deaths);
mode.kill_death_ratio = getRatio(mode.wins,mode.losses);
});
return ({
coins,
wins,
losses,
win_loss_ratio: getRatio(wins, losses),
experience: skywars_experience,
level: getLevelForExp(skywars_experience),
levelFormatted: `${levelFormatted.replace(/§[\da-f]/g, '$&[')}]`,
kills,
deaths,
assists,
kill_death_ratio: getRatio(kills, deaths),
souls_gathered,
souls,
arrows_shot,
arrows_hit,
arrow_hit_miss_ratio: getRatio(arrows_hit, arrows_shot),
eggs_thrown: egg_thrown,
enderpearls_thrown,
blocks_placed,
blocks_broken,
soul_well_uses: soul_well,
soul_well_rares,
soul_well_legendaries,
gamemodes,
});
};

0 comments on commit 63aae75

Please sign in to comment.