Riskless/static/js/map.js

75 lines
1.6 KiB
JavaScript
Raw Normal View History

2023-02-06 11:04:37 +00:00
class Continent {
constructor(name) {
this.name = name;
this.yield = 0;
}
}
const REGIONS = {};
class Region {
constructor(name, continent) {
this.name = name;
this.owner = null;
this.strength = 0;
this.neighbours = new Set();
this.continent = continent;
REGIONS[name] = this;
}
static setNeighbours(region1, region2) {
region1.neighbours.add(region2);
region2.neighbours.add(region1);
}
static getRegion(name) {
return REGIONS[name];
}
claim(player) {
this.owner = player;
this.strength = 1;
}
reinforce(amount) {
this.strength += amount;
}
}
2023-02-06 12:30:24 +00:00
const EAST = new Continent("East");
const WEST = new Continent("West");
const A = new Region("A", EAST);
const B = new Region("B", EAST);
const C = new Region("C", EAST);
const D = new Region("D", EAST);
2023-02-06 13:03:25 +00:00
const J = new Region("J", EAST);
2023-02-06 12:30:24 +00:00
const F = new Region("F", WEST);
const G = new Region("G", WEST);
const H = new Region("H", WEST);
const I = new Region("I", WEST);
2023-02-06 13:03:25 +00:00
const E = new Region("E", WEST);
2023-02-08 17:55:45 +00:00
function allRegionsClaimed() {
return Object.values(REGIONS).find((region) => region.owner === null) === undefined;
}
2023-02-10 15:47:21 +00:00
let allPlaced = false;
function allReinforcementsPlaced() {
if (allPlaced) {
return true;
} else {
let totalStrength = Object.values(REGIONS).reduce(
(counter, region) => counter + region.strength,
0
);
let numPlayers = Object.values(players).length;
allPlaced = totalStrength >= numPlayers * 5 * (10 - numPlayers);
return allPlaced;
}
}