2022-04-30 09:41:17 -04:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// 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 ;
2024-04-16 19:52:41 -05:00
import engine.workthreads.ZergMechanicThread ;
2022-04-30 09:41:17 -04:00
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 ) {
2023-07-15 09:23:48 -04:00
Logger . info ( " No bane found for " + city . getCityName ( ) ) ;
2022-04-30 09:41:17 -04:00
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 ( ) ) ;
2023-07-15 09:23:48 -04:00
2022-04-30 09:41:17 -04:00
DispatchMessage . dispatchMsgToAll ( msg ) ;
2024-04-16 19:52:41 -05:00
if ( city . getBane ( ) ! = null ) {
Thread zergMechanicThread = new Thread ( new ZergMechanicThread ( city . getBane ( ) , null ) ) ;
zergMechanicThread . setName ( city . getName ( ) + " Bane " ) ;
zergMechanicThread . start ( ) ;
}
2022-04-30 09:41:17 -04:00
}
@Override
protected void _cancelJob ( ) {
}
}