Public Repository for the Magicbane Shadowbane Emulator
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.

77 lines
2.5 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.jobs;
import engine.Enum;
import engine.Enum.ChatChannelType;
import engine.gameManager.DbManager;
import engine.job.AbstractScheduleJob;
import engine.net.DispatchMessage;
import engine.net.client.msg.chat.ChatSystemMsg;
import engine.objects.City;
import org.pmw.tinylog.Logger;
public class ActivateBaneJob extends AbstractScheduleJob {
private final int cityUUID;
public ActivateBaneJob(int cityUUID) {
super();
this.cityUUID = cityUUID;
}
@Override
protected void doJob() {
City city;
city = (City) DbManager.getObject(Enum.GameObjectType.City, cityUUID);
if (city == null)
return;
if (city.getBane() == null) {
Logger.info("No bane found for " + city.getCityName());
return;
}
if (city.getBane().isErrant()) {
Logger.info("Removed errant bane on " + city.getCityName());
city.getBane().remove();
return;
}
if (city.getBane() == null)
return;
if (city.protectionEnforced == true)
city.protectionEnforced = false;
else {
Logger.info("Bane on " + city.getCityName() + " activated for unprotected city?");
return;
}
Logger.info("ActivateBaneJob", "Bane on " + city.getCityName() + " is now active");
ChatSystemMsg msg = new ChatSystemMsg(null, "[Bane Channel] The Banecircle placed by " + city.getBane().getOwner().getGuild().getName() + " is now active! Buildings are now vulnerable to damage!");
msg.setMessageType(4); // Error message
msg.setChannel(ChatChannelType.SYSTEM.getChannelID());
DispatchMessage.dispatchMsgToAll(msg);
}
@Override
protected void _cancelJob() {
}
}