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 { @@ -335,28 +335,19 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
serverCity = ZoneManager.getCityAtLocation(buildingList.getLoc());
//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 (buildingList.getLoc().isInsideCircle(attackerCity.getLoc(), Enum.CityBoundsType.SIEGE.extents))
serverCity = attackerCity;
if (serverCity == null) {
PlaceAssetMsg.sendPlaceAssetError(origin, 41, ""); // Cannot place outisde a guild zone
return false;
}
//no city found for attacker city,
//check if defender city
if (serverCity == null){
if (player.getGuild().getOwnedCity() != null)
if (buildingList.getLoc().isInsideCircle(player.getGuild().getOwnedCity().getLoc(), Enum.CityBoundsType.SIEGE.extents))
serverCity = player.getGuild().getOwnedCity();
// No bane no bow
if (serverCity.getBane() == null) {
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
// the siege bounds buffer area
@ -368,9 +359,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler { @@ -368,9 +359,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
PlaceAssetMsg.sendPlaceAssetError(origin, 54, ""); // Must belong to attacker or defender
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
// and 1x the tree rank for defenders
@ -434,6 +422,8 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler { @@ -434,6 +422,8 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
if (building.getGuild().equals(serverCity.getBane().getOwner().getGuild()))
attackerBuildings.add(building);
}
// Validate bane limits on siege assets
if (playerCharacter.getGuild().equals(serverCity.getGuild())) {
@ -452,7 +442,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler { @@ -452,7 +442,6 @@ public class PlaceAssetMsgHandler extends AbstractClientMsgHandler {
}
}
}
// Passed validation
return true;

Loading…
Cancel
Save