mirror of
https://github.com/simon987/Much-Assembly-Required-Frontend.git
synced 2025-04-10 14:26:44 +00:00
Support for debug commands
This commit is contained in:
parent
41937aff2e
commit
92201666dc
2
game.php
2
game.php
@ -130,7 +130,7 @@ if (isset($user)) {
|
||||
<div id="game" tabindex="0">
|
||||
<script src="mar/phaser.min.js"></script>
|
||||
<script src="mar/phaser-plugin-isometric.min.js"></script>
|
||||
<script src="mar/app.min.js"></script>
|
||||
<script src="mar/app.js"></script>
|
||||
</div>
|
||||
<?php if ($user) { ?>
|
||||
<!-- Editor -->
|
||||
|
@ -237,6 +237,20 @@ class CodeResponseListener implements MessageListener {
|
||||
|
||||
}
|
||||
|
||||
class DebugResponseListener implements MessageListener {
|
||||
|
||||
getListenedMessageType(): string {
|
||||
return "debug";
|
||||
}
|
||||
|
||||
handle(message): void {
|
||||
|
||||
console.log("> " + message.message)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class GameClient {
|
||||
|
||||
keyboardBuffer: KeyboardBuffer;
|
||||
@ -338,6 +352,11 @@ class GameClient {
|
||||
this.socket.send(JSON.stringify({t: "object", x: this.worldX, y: this.worldY}));
|
||||
}
|
||||
|
||||
public sendDebugCommand(json): void {
|
||||
|
||||
this.socket.send(JSON.stringify(json));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get server info from game website
|
||||
@ -401,6 +420,7 @@ class GameClient {
|
||||
self.listeners.push(new ObjectsListener());
|
||||
self.listeners.push(new CodeResponseListener());
|
||||
self.listeners.push(new CodeListener());
|
||||
self.listeners.push(new DebugResponseListener());
|
||||
|
||||
self.socket.onmessage = function (received) {
|
||||
|
||||
|
@ -630,7 +630,7 @@ class VaultDoor extends GameObject {
|
||||
mar.game.tweens.removeFrom(this);
|
||||
mar.game.add.tween(this).to({isoZ: 25}, 200, Phaser.Easing.Quadratic.InOut, true);
|
||||
mar.game.add.tween(this.scale).to({x: 1.06, y: 1.06}, 200, Phaser.Easing.Linear.None, true);
|
||||
this.tint = config.cubotHoverTint;
|
||||
// this.tint = config.cubotHoverTint;
|
||||
|
||||
this.text.visible = true;
|
||||
}
|
||||
@ -639,7 +639,7 @@ class VaultDoor extends GameObject {
|
||||
mar.game.tweens.removeFrom(this);
|
||||
mar.game.add.tween(this).to({isoZ: 15}, 400, Phaser.Easing.Bounce.Out, true);
|
||||
mar.game.add.tween(this.scale).to({x: 1, y: 1}, 200, Phaser.Easing.Linear.None, true);
|
||||
this.tint = config.cubotTint;
|
||||
// this.tint = config.cubotTint;
|
||||
|
||||
this.text.visible = false;
|
||||
}
|
||||
@ -649,12 +649,14 @@ class VaultDoor extends GameObject {
|
||||
}
|
||||
|
||||
constructor(json) {
|
||||
super(Util.getIsoX(json.x), Util.getIsoY(json.y), 15, "sheet", "objects/VaultDoor");
|
||||
super(Util.getIsoX(json.x), Util.getIsoY(json.y), 15, "sheet", "objects/biomass/idle/0001");
|
||||
this.tint = 0xff232a;
|
||||
this.anchor.set(0.5, 0);
|
||||
|
||||
this.anchor.set(myVarX, myVarY);
|
||||
this.setText("Vault");
|
||||
this.text.visible = false;
|
||||
|
||||
|
||||
this.id = json.i;
|
||||
this.tileX = json.x;
|
||||
this.tileY = json.y;
|
||||
|
74
mar/app.js
74
mar/app.js
@ -360,9 +360,55 @@ var Util = /** @class */ (function () {
|
||||
};
|
||||
return Util;
|
||||
}());
|
||||
var Debug = /** @class */ (function () {
|
||||
function Debug() {
|
||||
}
|
||||
Debug.setTileAt = function (x, y, newTile) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "setTileAt", x: x, y: y, newTile: newTile,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY });
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
};
|
||||
Debug.createWorld = function (x, y) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "createWorld", worldX: x, worldY: y });
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
};
|
||||
Debug.createWorldHex = function (x, y) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "createWorld", worldX: parseInt(x, 16), worldY: parseInt(y, 16) });
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
};
|
||||
Debug.goTo = function (worldX, worldY) {
|
||||
mar.client.worldX = worldX;
|
||||
mar.client.worldY = worldY;
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
};
|
||||
Debug.goToHex = function (worldX, worldY) {
|
||||
mar.client.worldX = parseInt(worldX, 16);
|
||||
mar.client.worldY = parseInt(worldY, 16);
|
||||
mar.client.requestTerrain();
|
||||
};
|
||||
Debug.killAll = function (x, y) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "killAll", x: x, y: y,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY });
|
||||
};
|
||||
Debug.objInfo = function (x, y) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "objInfo", x: x, y: y,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY });
|
||||
};
|
||||
Debug.userInfo = function (username) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "userInfo", username: username });
|
||||
};
|
||||
Debug.moveObj = function (objectId, x, y) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "moveObj", objectId: objectId, x: x, y: y });
|
||||
mar.client.requestObjects();
|
||||
};
|
||||
Debug.spawnObj = function (data) {
|
||||
mar.client.sendDebugCommand({ t: "debug", command: "spawnObj", data: data,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY });
|
||||
};
|
||||
return Debug;
|
||||
}());
|
||||
DEBUG = false; // todo remove
|
||||
var mar = new MarGame();
|
||||
var myVarX = 0.46;
|
||||
var myVarY = 0.46;
|
||||
/**
|
||||
* Client-side keyboard buffer. It is overwritten by the server at the end of tick.
|
||||
*/
|
||||
@ -554,6 +600,17 @@ var CodeResponseListener = /** @class */ (function () {
|
||||
};
|
||||
return CodeResponseListener;
|
||||
}());
|
||||
var DebugResponseListener = /** @class */ (function () {
|
||||
function DebugResponseListener() {
|
||||
}
|
||||
DebugResponseListener.prototype.getListenedMessageType = function () {
|
||||
return "debug";
|
||||
};
|
||||
DebugResponseListener.prototype.handle = function (message) {
|
||||
console.log("> " + message.message);
|
||||
};
|
||||
return DebugResponseListener;
|
||||
}());
|
||||
var GameClient = /** @class */ (function () {
|
||||
function GameClient() {
|
||||
this.listeners = [];
|
||||
@ -613,6 +670,9 @@ var GameClient = /** @class */ (function () {
|
||||
}
|
||||
this.socket.send(JSON.stringify({ t: "object", x: this.worldX, y: this.worldY }));
|
||||
};
|
||||
GameClient.prototype.sendDebugCommand = function (json) {
|
||||
this.socket.send(JSON.stringify(json));
|
||||
};
|
||||
/**
|
||||
* Get server info from game website
|
||||
*/
|
||||
@ -660,6 +720,7 @@ var GameClient = /** @class */ (function () {
|
||||
self.listeners.push(new ObjectsListener());
|
||||
self.listeners.push(new CodeResponseListener());
|
||||
self.listeners.push(new CodeListener());
|
||||
self.listeners.push(new DebugResponseListener());
|
||||
self.socket.onmessage = function (received) {
|
||||
var message;
|
||||
try {
|
||||
@ -1238,8 +1299,9 @@ var RadioTower = /** @class */ (function (_super) {
|
||||
var VaultDoor = /** @class */ (function (_super) {
|
||||
__extends(VaultDoor, _super);
|
||||
function VaultDoor(json) {
|
||||
var _this = _super.call(this, Util.getIsoX(json.x), Util.getIsoY(json.y), 15, "sheet", "objects/VaultDoor") || this;
|
||||
_this.anchor.set(myVarX, myVarY);
|
||||
var _this = _super.call(this, Util.getIsoX(json.x), Util.getIsoY(json.y), 15, "sheet", "objects/biomass/idle/0001") || this;
|
||||
_this.tint = 0xff232a;
|
||||
_this.anchor.set(0.5, 0);
|
||||
_this.setText("Vault");
|
||||
_this.text.visible = false;
|
||||
_this.id = json.i;
|
||||
@ -1251,14 +1313,14 @@ var VaultDoor = /** @class */ (function (_super) {
|
||||
mar.game.tweens.removeFrom(this);
|
||||
mar.game.add.tween(this).to({ isoZ: 25 }, 200, Phaser.Easing.Quadratic.InOut, true);
|
||||
mar.game.add.tween(this.scale).to({ x: 1.06, y: 1.06 }, 200, Phaser.Easing.Linear.None, true);
|
||||
this.tint = config.cubotHoverTint;
|
||||
// this.tint = config.cubotHoverTint;
|
||||
this.text.visible = true;
|
||||
};
|
||||
VaultDoor.prototype.onTileExit = function () {
|
||||
mar.game.tweens.removeFrom(this);
|
||||
mar.game.add.tween(this).to({ isoZ: 15 }, 400, Phaser.Easing.Bounce.Out, true);
|
||||
mar.game.add.tween(this.scale).to({ x: 1, y: 1 }, 200, Phaser.Easing.Linear.None, true);
|
||||
this.tint = config.cubotTint;
|
||||
// this.tint = config.cubotTint;
|
||||
this.text.visible = false;
|
||||
};
|
||||
VaultDoor.prototype.updateObject = function (json) {
|
||||
|
61
mar/mar.ts
61
mar/mar.ts
@ -108,7 +108,64 @@ class Util {
|
||||
}
|
||||
}
|
||||
|
||||
class Debug {
|
||||
|
||||
public static setTileAt(x, y, newTile) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "setTileAt", x: x, y: y, newTile: newTile,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY});
|
||||
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
}
|
||||
|
||||
public static createWorld(x, y) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "createWorld", worldX: x, worldY: y});
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
}
|
||||
|
||||
public static createWorldHex(x, y) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "createWorld", worldX: parseInt(x, 16), worldY: parseInt(y, 16)});
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
}
|
||||
|
||||
public static goTo(worldX, worldY) {
|
||||
mar.client.worldX = worldX;
|
||||
mar.client.worldY = worldY;
|
||||
mar.client.requestTerrain(); //Reload terrain
|
||||
}
|
||||
|
||||
public static goToHex(worldX, worldY) {
|
||||
mar.client.worldX = parseInt(worldX, 16);
|
||||
mar.client.worldY = parseInt(worldY, 16);
|
||||
mar.client.requestTerrain();
|
||||
}
|
||||
|
||||
public static killAll(x, y) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "killAll", x: x, y: y,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY});
|
||||
}
|
||||
|
||||
public static objInfo(x, y) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "objInfo", x: x, y: y,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY});
|
||||
}
|
||||
|
||||
public static userInfo(username) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "userInfo", username: username});
|
||||
}
|
||||
|
||||
public static moveObj(objectId, x, y) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "moveObj", objectId: objectId, x: x, y: y});
|
||||
mar.client.requestObjects();
|
||||
}
|
||||
|
||||
public static spawnObj(data) {
|
||||
mar.client.sendDebugCommand({t:"debug", command: "spawnObj", data: data,
|
||||
worldX: mar.client.worldX, worldY: mar.client.worldY});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
DEBUG = false; // todo remove
|
||||
|
||||
let mar = new MarGame();
|
||||
|
||||
var myVarX = 0.46;
|
||||
var myVarY = 0.46;
|
Loading…
x
Reference in New Issue
Block a user