// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.powers.effectmodifiers; import engine.Enum.GameObjectType; import engine.Enum.ModType; import engine.Enum.SourceType; import engine.jobs.FearWanderJob; import engine.job.JobContainer; import engine.job.JobScheduler; import engine.jobs.AbstractEffectJob; import engine.objects.*; import java.sql.ResultSet; import java.sql.SQLException; public class FearEffectModifier extends AbstractEffectModifier { public FearEffectModifier(ResultSet rs) throws SQLException { super(rs); } @Override protected void _applyEffectModifier(AbstractCharacter source, AbstractWorldObject awo, int trains, AbstractEffectJob effect) { // Optional: custom logic when fear is applied } @Override public void applyBonus(AbstractCharacter ac, int trains) { PlayerBonuses bonus = ac.getBonuses(); bonus.setBool(this.modType, this.sourceType, true); ac.cancelOnFear(); ac.setIsCasting(false); ac.stopMovement(ac.getLoc()); // Schedule the wander job if not already scheduled if (ac.getTimers().get("FearWander") == null) { JobContainer wanderJob = JobScheduler.getInstance().scheduleJob( new FearWanderJob(ac), 2000 ); ac.getTimers().put("FearWander", wanderJob); } } @Override public void applyBonus(Item item, int trains) {} @Override public void applyBonus(Building building, int trains) {} }