aboutsummaryrefslogtreecommitdiff
path: root/src/guest.mjs
blob: 57eb2373bab00b5c855d7fa0a877d6ca8b2cb9b2 (plain) (blame)
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
37
38
39
40
41
42
43
44
45
46
47
48
import { Manager } from "./utils.mjs";
import { Guest } from "./data";

export class GuestManager extends Manager {
  constructor() {
    super("guest", []);
    console.log("Loading guest data.");
    let tempGuest = new Guest();
    let data = JSON.parse(localStorage.getItem(tempGuest.description));
    if (data === null || data.length === 0) {
      console.log("Guest data unavailable: " + data);
      this.generate();
      return;
    }
    console.log(tempGuest.description);
    for (let i = 0; i < data.length; i++) {
      console.log(data[i]);
      let id = Number(data[i].id);
      let status = Boolean(Number(data[i].status));
      let games = data[i].games;
      this.data.push(new Guest(id, status, games));
    }
    console.log("Loaded " + this.data.length + " players.");
    this.render();
  }
  generate() {
    console.log("Generating guest data.");
    const tempGuest = new Guest(0, false);
    const totalGuestCount = tempGuest.maxCount * tempGuest.categoryCount;
    for (let i = 0; i < totalGuestCount; i++) {
      let p = new Guest(i, false, 0);
      this.data.push(p);
    }
    console.log("Generated data for " + this.data.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;
  }
}