aboutsummaryrefslogtreecommitdiff
path: root/src/player.mjs
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-14 17:15:13 +0100
committerKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-14 17:15:13 +0100
commit27b3a8f4fe5f6259983a7bcf44e7e987f8e19e09 (patch)
tree02ce6df25efe337f2dc94d45a83149038f44fba5 /src/player.mjs
parente4b599e57e076bef7caa8f5825bbca17540b571d (diff)
Simplified the file structure
Diffstat (limited to 'src/player.mjs')
-rw-r--r--src/player.mjs123
1 files changed, 0 insertions, 123 deletions
diff --git a/src/player.mjs b/src/player.mjs
deleted file mode 100644
index 06b1abd..0000000
--- a/src/player.mjs
+++ /dev/null
@@ -1,123 +0,0 @@
-import { GuestManager } from "./guest.mjs";
-import { shuffle, Manager, randomLevel, randomStatus } from "./utils.mjs";
-import { Player } from "./data";
-
-
-function parseLineToPlayer(data) {
- var info = data.split(",");
- var id = Number(info[0].trim());
- var name = info[1].trim() + " " + info[2].trim();
- var level = Number(info[3].trim());
- return new Player(id, true, level, 0, name);
-}
-
-export class PlayerManager extends Manager {
- g = new GuestManager();
-
- constructor() {
- super();
- console.log("Loading player data.");
- let tempPlayer = new Player();
- let data = JSON.parse(localStorage.getItem(tempPlayer.description));
- if (data === null || data.length === 0) {
- console.log("Player data unavailable: " + data);
- this.generate();
- return;
- }
- for (let i = 0; i < data.length; i++) {
- let id = Number(data[i].id);
- let name = data[i].name;
- let level = Number(data[i].level);
- let status = Boolean(Number(data[i].status));
- let games = Number(data[i].games);
- this.data.push(new Player(id, status, level, games, name));
- }
- console.log("Loaded " + this.data.length + " players.");
- this.render();
- this.addBehaviour();
- addLoadBehaviour(this);
- }
- generate() {
- console.log("Generating player data.");
- let maxPlayerCount = 71;
- for (let i = 0; i < maxPlayerCount; i++) {
- let p = new Player(i, randomStatus(), randomLevel());
- console.log(p);
- this.data.push(p);
- }
- console.log("Generated data for " + this.data.length + " players");
- this.store();
- this.render();
- }
- import(data) {
- var lines = data.split("\n");
- var players = [];
- for (var i = 1; i < lines.length; i++) {
- if (lines[i] == undefined || lines[i].trim() == "") {
- continue;
- }
- players.push(parseLineToPlayer(lines[i]));
- }
- console.log("Loaded " + players.length + " Players");
- for (var i = 0; i < players.length; i++) {
- players[i].print();
- }
- this.data = players;
- this.store();
- this.render();
- }
- active(factor) {
- factor = typeof factor !== "undefined" ? factor : 1;
- let data = super.active();
- console.log("Normalize skill by a factor of " + factor + ".");
- let players = data.map(function (p) {
- p.skill = Math.ceil(p.skill / factor);
- return p;
- });
- return players;
- }
- propose(count) {
- console.log("Required players are " + count);
- let factor = Number(document.getElementById("skill").value);
- console.log("Skill normalized by a factor of " + factor + ".");
- let activePlayers = this.active(factor);
- const activeGuests = this.g.active(factor);
- activePlayers = activePlayers.concat(activeGuests);
- console.log("Active players are:");
- console.log(
- activePlayers
- .map((i) => {
- return i.name;
- })
- .join(",")
- );
- const shuffledPlayers = shuffle(activePlayers);
- shuffledPlayers.sort((a, b) => a.totalPlayed - b.totalPlayed);
- const selectedPlayers = shuffledPlayers.slice(0, count);
- selectedPlayers.sort((a, b) => a.level - b.level);
- console.log("Selected players are:");
- console.log(
- selectedPlayers
- .map((i) => {
- return i.name;
- })
- .join(",")
- );
- return selectedPlayers;
- }
-}
-
-function addLoadBehaviour(p) {
- const f = document.querySelector("#player-load input[type=file]");
- f.addEventListener("change", () => {
- const file = f.files[0];
- let importData;
- console.log("Loading data from " + file.name);
- const reader = new FileReader();
- reader.onload = function (e) {
- importData = reader.result;
- p.import(importData);
- };
- reader.readAsText(file);
- });
-}