Browse Source

Rework of validation checks.

master
MagicBot 2 years ago
parent
commit
8ef5cb4e22
  1. 31
      src/engine/net/client/handlers/PlaceAssetMsgHandler.java

31
src/engine/net/client/handlers/PlaceAssetMsgHandler.java

@ -335,28 +335,19 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
serverCity = ZoneManager.getCityAtLocation(buildingList.getLoc()); serverCity = ZoneManager.getCityAtLocation(buildingList.getLoc());
//no city found //no city found
//check if attacker city.
if (serverCity == null){
Bane bane = Bane.getBaneByAttackerGuild(player.getGuild());
City attackerCity = null;
if (bane != null)
attackerCity = bane.getCity();
if (attackerCity != null) if (serverCity == null) {
if (buildingList.getLoc().isInsideCircle(attackerCity.getLoc(), Enum.CityBoundsType.SIEGE.extents)) PlaceAssetMsg.sendPlaceAssetError(origin, 41, ""); // Cannot place outisde a guild zone
serverCity = attackerCity; return false;
} }
//no city found for attacker city,
//check if defender city
if (serverCity == null){ // No bane no bow
if (player.getGuild().getOwnedCity() != null)
if (buildingList.getLoc().isInsideCircle(player.getGuild().getOwnedCity().getLoc(), Enum.CityBoundsType.SIEGE.extents)) if (serverCity.getBane() == null) {
serverCity = player.getGuild().getOwnedCity(); PlaceAssetMsg.sendPlaceAssetError(origin, 66, ""); // There is no bane circle to support this building of war
return false;
} }
if ((serverCity != null) &&
(serverCity.getBane() != null)) {
// Set the server zone to the city zone in order to account for being inside // Set the server zone to the city zone in order to account for being inside
// the siege bounds buffer area // the siege bounds buffer area
@ -368,9 +359,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
PlaceAssetMsg.sendPlaceAssetError(origin, 54, ""); // Must belong to attacker or defender PlaceAssetMsg.sendPlaceAssetError(origin, 54, ""); // Must belong to attacker or defender
return false; return false;
} }
}
// cant place siege equipment off city zone.
// If there is a bane placed, we limit placement to 2x the stone rank's worth of attacker assets // If there is a bane placed, we limit placement to 2x the stone rank's worth of attacker assets
// and 1x the tree rank for defenders // and 1x the tree rank for defenders
@ -434,6 +422,8 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
if (building.getGuild().equals(serverCity.getBane().getOwner().getGuild())) if (building.getGuild().equals(serverCity.getBane().getOwner().getGuild()))
attackerBuildings.add(building); attackerBuildings.add(building);
}
// Validate bane limits on siege assets // Validate bane limits on siege assets
if (playerCharacter.getGuild().equals(serverCity.getGuild())) { if (playerCharacter.getGuild().equals(serverCity.getGuild())) {
@ -452,7 +442,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
} }
} }
}
// Passed validation // Passed validation
return true; return true;

Loading…
Cancel
Save