Browse Source

cannot be subbed if you have a bane placed

nations can only have 1 bane placed at a time
lakebane-master
fatboy 7 months ago
parent
commit
52a0c95002
  1. 6
      src/engine/net/client/handlers/InviteToSubHandler.java
  2. 12
      src/engine/objects/Bane.java

6
src/engine/net/client/handlers/InviteToSubHandler.java

@ -25,6 +25,8 @@ import engine.objects.Guild;
import engine.objects.GuildStatusController; import engine.objects.GuildStatusController;
import engine.objects.PlayerCharacter; import engine.objects.PlayerCharacter;
import static engine.objects.Bane.getBaneByAttackerGuild;
public class InviteToSubHandler extends AbstractClientMsgHandler { public class InviteToSubHandler extends AbstractClientMsgHandler {
public InviteToSubHandler() { public InviteToSubHandler() {
@ -110,6 +112,10 @@ public class InviteToSubHandler extends AbstractClientMsgHandler {
if(targetGuild.getOwnedCity().getBane() != null) if(targetGuild.getOwnedCity().getBane() != null)
return true; // cannot be subbed if you have a bane placed on you return true; // cannot be subbed if you have a bane placed on you
if(getBaneByAttackerGuild(targetGuild) != null)
return true; // cannot sub to a nation if you have a bane placed
//target must be GL or IC //target must be GL or IC
if (GuildStatusController.isInnerCouncil(target.getGuildStatus()) == false && GuildStatusController.isGuildLeader(target.getGuildStatus()) == false) { if (GuildStatusController.isInnerCouncil(target.getGuildStatus()) == false && GuildStatusController.isGuildLeader(target.getGuildStatus()) == false) {

12
src/engine/objects/Bane.java

@ -215,12 +215,6 @@ public final class Bane {
Vector3fImmutable localLocation = ZoneManager.worldToLocal(player.getLoc(), cityZone); Vector3fImmutable localLocation = ZoneManager.worldToLocal(player.getLoc(), cityZone);
if (localLocation == null) {
PlaceAssetMsg.sendPlaceAssetError(player.getClientConnection(), 1, "A Serious error has occurred. Please post details for to ensure transaction integrity");
Logger.info("Failed to Convert World coordinates to local zone coordinates");
return false;
}
Building stone = DbManager.BuildingQueries.CREATE_BUILDING( Building stone = DbManager.BuildingQueries.CREATE_BUILDING(
cityZone.getObjectUUID(), player.getObjectUUID(), blueprint.getName(), blueprint.getBlueprintUUID(), cityZone.getObjectUUID(), player.getObjectUUID(), blueprint.getName(), blueprint.getBlueprintUUID(),
localLocation, 1.0f, blueprint.getMaxHealth(rank), ProtectionState.PROTECTED, 0, rank, localLocation, 1.0f, blueprint.getMaxHealth(rank), ProtectionState.PROTECTED, 0, rank,
@ -231,6 +225,12 @@ public final class Bane {
return false; return false;
} }
for(Guild subGuild : baningGuild.getNation().getSubGuildList()) {
if (getBaneByAttackerGuild(subGuild) != null) {
PlaceAssetMsg.sendPlaceAssetError(player.getClientConnection(), 1, "Your Nation Already Has a Bane Placed");
return false;
}
}
stone.addEffectBit((1 << 19)); stone.addEffectBit((1 << 19));
stone.setMaxHitPoints(stone.getBlueprint().getMaxHealth(stone.getRank())); stone.setMaxHitPoints(stone.getBlueprint().getMaxHealth(stone.getRank()));
stone.setCurrentHitPoints(stone.getMaxHitPoints()); stone.setCurrentHitPoints(stone.getMaxHitPoints());

Loading…
Cancel
Save