70 lines
1.4 KiB
JavaScript
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",
|
|
};
|
|
}
|
|
}
|