aboutsummaryrefslogtreecommitdiff
path: root/player.mjs
diff options
context:
space:
mode:
authorKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-12 14:37:19 +0100
committerKaran Jayachandra <karan.jayachandra@nxp.com>2025-11-12 14:37:19 +0100
commit2b5a120bd3900d5cecbe355d336a4ea8d3a1b31a (patch)
tree69b614eafcd781055603a36568f46aa538329bb1 /player.mjs
parent3a4a0f6f2bf9aff14c00c6acee637319d7458bbb (diff)
Prettified the code and cleaned up the light/dark mode
Diffstat (limited to 'player.mjs')
-rw-r--r--player.mjs175
1 files changed, 93 insertions, 82 deletions
diff --git a/player.mjs b/player.mjs
index 5d8f16a..1614c89 100644
--- a/player.mjs
+++ b/player.mjs
@@ -1,104 +1,115 @@
import { Manager } from "./utils.mjs";
class Player {
- constructor(id, name, level, status, totalPlayed) {
- this.id = id;
- this.name = name;
- this.level = typeof level !== 'undefined' ? level : 1;
- this.status = typeof status !== 'undefined' ? status : false;
- this.totalPlayed = typeof totalPlayed !== 'undefined' ? status : 0;
- }
- toggle() {
- this.status = !this.status;
- this.print();
- }
- print() {
- let status = this.status ? "active" : "inactive";
- console.log(this.name + " has a level of " + this.level + " and is currently " + status);
- }
- render() {
- let type = this.status ? `class="button is-success"` : 'class="button is-danger"';
- return `<button id=${"regular_" + this.id} ${type}>${this.name}</button>`;
- }
+ constructor(id, name, level, status, totalPlayed) {
+ this.id = id;
+ this.name = name;
+ this.level = typeof level !== "undefined" ? level : 1;
+ this.status = typeof status !== "undefined" ? status : false;
+ this.totalPlayed = typeof totalPlayed !== "undefined" ? status : 0;
+ }
+ toggle() {
+ this.status = !this.status;
+ this.print();
+ }
+ print() {
+ let status = this.status ? "active" : "inactive";
+ console.log(
+ this.name +
+ " has a level of " +
+ this.level +
+ " and is currently " +
+ status
+ );
+ }
+ render() {
+ let type = this.status
+ ? `class="button is-medium is-success"`
+ : 'class="button is-medium is-danger"';
+ return `<button id=${"regular_" + this.id} ${type}>${this.name}</button>`;
+ }
}
function randomLevel() {
- const max_level = 10;
- return Math.floor(Math.random() * max_level + 1);
+ const max_level = 10;
+ return Math.floor(Math.random() * max_level + 1);
}
function randomStatus() {
- return Math.random() < 0.5;
+ return Math.random() < 0.5;
}
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, name, level, true, 0);
+ 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, name, level, true, 0);
}
export class PlayerManager extends Manager {
- constructor() {
- super("regular", []);
- console.log("Loading player data.");
- let data = JSON.parse(localStorage.getItem(this.description));
- if (data === null || data.length === 0) {
- console.log("Player data unavailable: " + data);
- this.generate();
- return;
- }
- for (let i = 0; i < data.length; i++) {
- var id = Number(data[i].id);
- var name = data[i].name;
- var level = data[i].level;
- var status = data[i].status;
- var totalPlayed = data[i].totalPlayed;
- this.listData.push(new Player(id, name, level, status, totalPlayed));
- }
- console.log("Loaded " + this.listData.length + " players.");
- this.render();
+ constructor() {
+ super("regular", []);
+ console.log("Loading player data.");
+ let data = JSON.parse(localStorage.getItem(this.description));
+ if (data === null || data.length === 0) {
+ console.log("Player data unavailable: " + data);
+ this.generate();
+ return;
}
- generate() {
- console.log("Generating player data.");
- let maxPlayerCount = 71;
- for (let i = 0; i < maxPlayerCount; i++) {
- let p = new Player(i, "Player " + i, randomLevel(), randomStatus(), 0);
- this.listData.push(p);
- }
- console.log("Generated data for " + this.listData.length + " players");
- this.store();
- this.render();
+ for (let i = 0; i < data.length; i++) {
+ var id = Number(data[i].id);
+ var name = data[i].name;
+ var level = data[i].level;
+ var status = data[i].status;
+ var totalPlayed = data[i].totalPlayed;
+ this.listData.push(new Player(id, name, level, status, totalPlayed));
}
- 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.listData = players;
- this.store();
- this.render();
+ console.log("Loaded " + this.listData.length + " players.");
+ this.render();
+ }
+ generate() {
+ console.log("Generating player data.");
+ let maxPlayerCount = 71;
+ for (let i = 0; i < maxPlayerCount; i++) {
+ let p = new Player(i, "Player " + i, randomLevel(), randomStatus(), 0);
+ this.listData.push(p);
}
+ console.log("Generated data for " + this.listData.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.listData = players;
+ this.store();
+ this.render();
+ }
}
// Try to add this functionality inside the class to call after constructor
export 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);
- })
-
-} \ No newline at end of file
+ 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);
+ });
+}