Initial commit
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
const DesignChangedPacket = require("../Packets/DesignChanged");
|
||||
const PropertyChangedGeneralPacket = require("../Packets/PropertyChangedGeneral");
|
||||
const HealthChangedAuthorlessPacket = require("../Packets/HealthChangedAuthorless");
|
||||
|
||||
const Game = require("../Game/Game");
|
||||
const { players, guildIslands, packets } = Game;
|
||||
|
||||
module.exports = async function (ws, message, player) {
|
||||
if (!player.guild.id) return;
|
||||
|
||||
const guildIslandID = message.getUint8(1);
|
||||
const guildIsland = guildIslands.find(island => island.id === guildIslandID);
|
||||
if (!guildIsland) return console.info("guildIslandTowerBuildMessage 1");
|
||||
|
||||
const id = message.getUint32(2);
|
||||
const guildTower = guildIsland.getTower(id);
|
||||
if (!guildTower) return console.info("guildIslandTowerBuildMessage 2");
|
||||
|
||||
const entityTypeID = message.getUint8(6);
|
||||
|
||||
const currentHitpointBefore = guildTower.hp.current;
|
||||
const isUpgradeSuccessful = guildTower.upgrade(entityTypeID);
|
||||
if (!isUpgradeSuccessful) return console.info("not successful build for tower", guildTower.id, "on guild island", guildIslandID);
|
||||
|
||||
console.info("Tower upgrade", guildTower.id, guildIslandID);
|
||||
|
||||
const designChanged = {
|
||||
typeID: guildTower.typeID,
|
||||
id: guildTower.id,
|
||||
designID: guildTower.entityTypeID
|
||||
};
|
||||
|
||||
const designChangedPacket = DesignChangedPacket(designChanged);
|
||||
guildTower.map.registerNetworkPacket(guildTower.id, designChangedPacket);
|
||||
|
||||
const propertyChangedGeneral = {
|
||||
typeID: guildTower.typeID,
|
||||
id: guildTower.id,
|
||||
propertyTypeID: 1,
|
||||
value: guildTower.hp.maximum
|
||||
};
|
||||
|
||||
const propertyChangedGeneral2 = {
|
||||
typeID: guildTower.typeID,
|
||||
id: guildTower.id,
|
||||
propertyTypeID: 2,
|
||||
value: 0
|
||||
};
|
||||
|
||||
const propertyChangedGeneralPacket = PropertyChangedGeneralPacket(propertyChangedGeneral);
|
||||
const propertyChangedGeneralPacket2 = PropertyChangedGeneralPacket(propertyChangedGeneral2);
|
||||
const packets = [propertyChangedGeneralPacket, propertyChangedGeneralPacket2];
|
||||
|
||||
const hitpointToAdd = guildTower.hp.maximum - currentHitpointBefore;
|
||||
if (hitpointToAdd) {
|
||||
const healthChangedAuthorless = {
|
||||
targetTypeID: guildTower.typeID,
|
||||
targetID: guildTower.id,
|
||||
amount: hitpointToAdd,
|
||||
type: 1,
|
||||
isCritical: false
|
||||
};
|
||||
|
||||
const healthChangedAuthorlessPacket = HealthChangedAuthorlessPacket(healthChangedAuthorless);
|
||||
packets.push(healthChangedAuthorlessPacket);
|
||||
};
|
||||
|
||||
guildTower.map.registerNetworkPacket(guildTower.id, packets);
|
||||
};
|
||||
Reference in New Issue
Block a user