|
|
@ -28,7 +28,6 @@ import engine.net.DispatchMessage; |
|
|
|
import engine.net.client.msg.ErrorPopupMsg; |
|
|
|
import engine.net.client.msg.ErrorPopupMsg; |
|
|
|
import engine.net.client.msg.chat.ChatSystemMsg; |
|
|
|
import engine.net.client.msg.chat.ChatSystemMsg; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import engine.session.SessionID; |
|
|
|
|
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
|
|
|
|
|
|
|
|
import java.net.UnknownHostException; |
|
|
|
import java.net.UnknownHostException; |
|
|
@ -47,13 +46,12 @@ public class Mine extends AbstractGameObject { |
|
|
|
private Resource production; |
|
|
|
private Resource production; |
|
|
|
private boolean isActive = false; |
|
|
|
private boolean isActive = false; |
|
|
|
|
|
|
|
|
|
|
|
public boolean wasClaimed = false; |
|
|
|
|
|
|
|
private float latitude; |
|
|
|
private float latitude; |
|
|
|
private float longitude; |
|
|
|
private float longitude; |
|
|
|
private float altitude; |
|
|
|
private float altitude; |
|
|
|
private Guild owningGuild; |
|
|
|
private Guild owningGuild; |
|
|
|
public PlayerCharacter lastClaimer; |
|
|
|
public PlayerCharacter lastClaimer; |
|
|
|
|
|
|
|
public boolean wasClaimed = false; |
|
|
|
private int flags; |
|
|
|
private int flags; |
|
|
|
private int buildingID; |
|
|
|
private int buildingID; |
|
|
|
private Zone parentZone; |
|
|
|
private Zone parentZone; |
|
|
@ -287,15 +285,11 @@ public class Mine extends AbstractGameObject { |
|
|
|
int guildWOO = mineOwnerGuild.getNation().getMineTime(); |
|
|
|
int guildWOO = mineOwnerGuild.getNation().getMineTime(); |
|
|
|
LocalDateTime guildMineTime = mineOpenTime.withHour(guildWOO); |
|
|
|
LocalDateTime guildMineTime = mineOpenTime.withHour(guildWOO); |
|
|
|
|
|
|
|
|
|
|
|
if (mineOpenTime.isAfter(guildMineTime)) |
|
|
|
if (mineOpenTime.isAfter(guildMineTime) || mine.wasClaimed == true) |
|
|
|
mineOpenTime = guildMineTime.plusDays(1); |
|
|
|
mineOpenTime = guildMineTime.plusDays(1); |
|
|
|
else |
|
|
|
else |
|
|
|
mineOpenTime = guildMineTime; |
|
|
|
mineOpenTime = guildMineTime; |
|
|
|
|
|
|
|
|
|
|
|
// Mines can only open once per cycle
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (mine.wasClaimed == true) |
|
|
|
|
|
|
|
mineOpenTime = guildMineTime.plusDays(1); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
writer.putLocalDateTime(mineOpenTime); |
|
|
|
writer.putLocalDateTime(mineOpenTime); |
|
|
@ -395,31 +389,38 @@ public class Mine extends AbstractGameObject { |
|
|
|
if (playerGuild.getNation().isErrant()) |
|
|
|
if (playerGuild.getNation().isErrant()) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
if (SessionManager.getPlayerCharacterByID(playerCharacter.getObjectUUID()) == null) |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Get a count of nation mines, can't go over capital tol rank.
|
|
|
|
//Get a count of nation mines, can't go over capital tol rank.
|
|
|
|
City capital = playerGuild.getOwnedCity(); |
|
|
|
City nationCapitol = playerGuild.getNation().getOwnedCity(); |
|
|
|
City guildCity = playerGuild.getOwnedCity(); |
|
|
|
City guildCity = playerGuild.getOwnedCity(); |
|
|
|
|
|
|
|
|
|
|
|
if (guildCity == null) |
|
|
|
if (nationCapitol == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
if (capital == null) |
|
|
|
if (guildCity == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
if (guildCity.getWarehouse() == null) |
|
|
|
if (guildCity.getWarehouse() == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
Building tol = capital.getTOL(); |
|
|
|
Building nationCapitolTOL = nationCapitol.getTOL(); |
|
|
|
|
|
|
|
|
|
|
|
if (tol == null) |
|
|
|
if (nationCapitolTOL == null) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
int rank = tol.getRank(); |
|
|
|
int treeRank = nationCapitolTOL.getRank(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (treeRank < 1) |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
if (rank < 1) |
|
|
|
if (guildUnderMineLimit(playerGuild.getNation(), treeRank) == false){ |
|
|
|
|
|
|
|
ErrorPopupMsg.sendErrorMsg(playerCharacter, "Your nation cannot support another mine."); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static boolean guildUnderMineLimit(Guild playerGuild, int tolRank) { |
|
|
|
|
|
|
|
|
|
|
|
int mineCnt = 0; |
|
|
|
int mineCnt = 0; |
|
|
|
|
|
|
|
|
|
|
@ -428,7 +429,7 @@ public class Mine extends AbstractGameObject { |
|
|
|
for (Guild guild : playerGuild.getSubGuildList()) |
|
|
|
for (Guild guild : playerGuild.getSubGuildList()) |
|
|
|
mineCnt += Mine.getMinesForGuild(guild.getObjectUUID()).size(); |
|
|
|
mineCnt += Mine.getMinesForGuild(guild.getObjectUUID()).size(); |
|
|
|
|
|
|
|
|
|
|
|
if (mineCnt > rank) |
|
|
|
if (mineCnt > tolRank) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
return true; |
|
|
|