import { Manager } from "./utils.mjs"; export class Guest { constructor(id, name, level, status, totalPlayed) { this.id = id; this.status = typeof status !== "undefined" ? status : false; this.name = name; this.level = typeof level !== "undefined" ? level : 1; 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 + " is currently " + status); } render() { let color = this.status ? "is-success" : "is-danger"; let type = `class="button is-medium ${color}"`; return ``; } } export class GuestManager extends Manager { constructor() { super("guest", []); console.log("Loading guest data."); let data = JSON.parse(localStorage.getItem(this.description)); if (data === null || data.length === 0) { console.log("Guest 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 = data[i].level; let status = data[i].status; let totalPlayed = data[i].totalPlayed; this.listData.push(new Player(id, name, level, status, totalPlayed)); } console.log("Loaded " + this.listData.length + " players."); this.render(); } generate() { console.log("Generating guest data."); let maxPlayerCount = 12; for (let i = 0; i < maxPlayerCount; i++) { let level = i < 3 ? 1 : ( i < 6 ? 3 : 7); let p = new Player(i, "Player " + i, level, false, 0); this.listData.push(p); } console.log("Generated data for " + this.listData.length + " guest"); 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; } }