Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Readme

Welcome ESPT, this is the function that sorts and scores every player.

This function will remain public so if things ever change you can see updates

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { getPlayersWithLevel } from "https://esm.town/v/ktodaz/getPlayersWithLevel";
export const getTopPlayersByScore = async () => {
const players = await getPlayersWithLevel();
// Add up the players score
const calculatePlayerScore = (player) => {
const { combat, offense, defense, support } = player;
return combat + offense + defense + support;
};
const playersWithScore = players.map((player) => ({
...player,
score: calculatePlayerScore(player),
}));
// Sort players by score
playersWithScore.sort((a, b) => b.score - a.score);
// Enforce kill limits per player type
const topPlayers = playersWithScore.filter((player) => {
if (player.is_commander) {
return player.kills > 15;
}
else if (player.is_SL) {
return player.kills > 15;
}
return player.kills > 20;
})
.slice(0, 10).map((player, index) => ({
...player,
rank: index + 1,
}));
// limit to 10 players
return {
topPlayers,
playersWithScore: playersWithScore.slice(0, 10),
allPlayers: players,
};
};
September 3, 2024