Riskless/static/js/modules/interface/packet.js
2023-03-04 00:25:54 +00:00

70 lines
1.4 KiB
JavaScript

import { ID } from "./main.js";
export class Packet {
static _createBase(name) {
return {
type: name,
id: window.crypto.randomUUID(),
author: ID,
};
}
static createAnnounce() {
return {
...this._createBase("ANNOUNCE"),
};
}
static createDisconnect() {
return this._createBase("DISCONNECT");
}
static createKeepAlive() {
return this._createBase("KEEPALIVE");
}
static createSetReady(nowReady) {
return {
...this._createBase("ACT"),
action: "READY",
ready: nowReady,
};
}
static createBarrierSignal() {
return this._createBase("BARRIER");
}
static createRegionClaim(region) {
return {
...this._createBase("ACT"),
region: region,
};
}
static createAction(action, startRegion, endRegion, amount) {
return {
...this._createBase("ACT"),
startRegion: startRegion,
endRegion: endRegion,
strength: amount,
action: action,
};
}
static createDefense(amount) {
return {
...this._createBase("ACT"),
action: "DEFENSE",
amount: amount,
};
}
static createEndTurn() {
return {
...this._createBase("ACT"),
action: "END",
};
}
}