You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
4.5 KiB
147 lines
4.5 KiB
package engine.net.client.handlers; |
|
|
|
import engine.Enum; |
|
import engine.InterestManagement.RealmMap; |
|
import engine.exception.MsgSendException; |
|
import engine.gameManager.BuildingManager; |
|
import engine.net.Dispatch; |
|
import engine.net.DispatchMessage; |
|
import engine.net.client.ClientConnection; |
|
import engine.net.client.msg.ClientNetMsg; |
|
import engine.net.client.msg.ErrorPopupMsg; |
|
import engine.net.client.msg.TaxCityMsg; |
|
import engine.net.client.msg.ViewResourcesMessage; |
|
import engine.objects.*; |
|
|
|
/* |
|
* @Author: |
|
* @Summary: Processes application protocol message which handles |
|
* protecting and unprotecting city assets |
|
*/ |
|
public class TaxCityMsgHandler extends AbstractClientMsgHandler { |
|
|
|
public TaxCityMsgHandler() { |
|
super(TaxCityMsg.class); |
|
} |
|
|
|
private static boolean ViewTaxes(TaxCityMsg msg, PlayerCharacter player) { |
|
|
|
// Member variable declaration |
|
Building building = BuildingManager.getBuildingFromCache(msg.getGuildID()); |
|
Guild playerGuild = player.getGuild(); |
|
|
|
if (building == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Not a valid Building!"); |
|
return true; |
|
} |
|
|
|
City city = building.getCity(); |
|
if (city == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "This building does not belong to a city."); |
|
return true; |
|
} |
|
|
|
if (city.getWarehouse() == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "This city does not have a warehouse!"); |
|
return true; |
|
} |
|
|
|
|
|
if (playerGuild == null || playerGuild.isEmptyGuild()) { |
|
ErrorPopupMsg.sendErrorMsg(player, "You must belong to a guild to do that!"); |
|
return true; |
|
} |
|
|
|
if (playerGuild.getOwnedCity() == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Your Guild needs to own a city!"); |
|
return true; |
|
} |
|
|
|
if (playerGuild.getOwnedCity().getWarehouse() == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Your Guild needs to own a warehouse!"); |
|
return true; |
|
} |
|
|
|
if (playerGuild.getOwnedCity().getTOL() == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Cannot find Tree of Life for your city!"); |
|
return true; |
|
} |
|
|
|
// if (playerGuild.getOwnedCity().getTOL().getRank() != 8){ |
|
// ErrorPopupMsg.sendErrorMsg(player, "Your City needs to Own a realm!"); |
|
// return true; |
|
// } |
|
|
|
if (playerGuild.getOwnedCity().getRealm() == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Cannot find realm for your city!"); |
|
return true; |
|
} |
|
Realm targetRealm = RealmMap.getRealmForCity(city); |
|
|
|
if (targetRealm == null) { |
|
ErrorPopupMsg.sendErrorMsg(player, "Cannot find realm for city you are attempting to tax!"); |
|
return true; |
|
} |
|
|
|
// if (targetRealm.getRulingCity() == null){ |
|
// ErrorPopupMsg.sendErrorMsg(player, "Realm Does not have a ruling city!"); |
|
// return true; |
|
// } |
|
|
|
// if (targetRealm.getRulingCity().getObjectUUID() != playerGuild.getOwnedCity().getObjectUUID()){ |
|
// ErrorPopupMsg.sendErrorMsg(player, "Your guild does not rule this realm!"); |
|
// return true; |
|
// } |
|
|
|
// if (playerGuild.getOwnedCity().getObjectUUID() == city.getObjectUUID()){ |
|
// ErrorPopupMsg.sendErrorMsg(player, "You cannot tax your own city!"); |
|
// return true; |
|
// } |
|
|
|
|
|
if (!GuildStatusController.isTaxCollector(player.getGuildStatus())) { |
|
ErrorPopupMsg.sendErrorMsg(player, "You Must be a tax Collector!"); |
|
return true; |
|
} |
|
|
|
|
|
// if (!city.isAfterTaxPeriod(DateTime.now(), player)) |
|
// return true; |
|
|
|
|
|
ViewResourcesMessage vrm = new ViewResourcesMessage(player); |
|
vrm.setGuild(building.getGuild()); |
|
vrm.setWarehouseBuilding(BuildingManager.getBuildingFromCache(building.getCity().getWarehouse().getBuildingUID())); |
|
vrm.configure(); |
|
Dispatch dispatch = Dispatch.borrow(player, msg); |
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); |
|
dispatch = Dispatch.borrow(player, vrm); |
|
DispatchMessage.dispatchMsgDispatch(dispatch, Enum.DispatchChannel.SECONDARY); |
|
return true; |
|
|
|
|
|
} |
|
|
|
@Override |
|
protected boolean _handleNetMsg(ClientNetMsg baseMsg, ClientConnection origin) throws MsgSendException { |
|
|
|
// Member variable declaration |
|
|
|
PlayerCharacter player; |
|
TaxCityMsg msg; |
|
|
|
player = origin.getPlayerCharacter(); |
|
|
|
|
|
msg = (TaxCityMsg) baseMsg; |
|
|
|
//realm taxing disabled |
|
//ViewTaxes(msg, player); |
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
}
|
|
|