forked from MagicBane/Server
cannot be subbed if you have a bane placed
nations can only have 1 bane placed at a time
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
Reference in New Issue
Block a user