Files
Server/src/engine/powers/effectmodifiers/FearEffectModifier.java
T

59 lines
2.2 KiB
Java
Raw Normal View History

2025-08-17 17:14:17 -05:00
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// 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) {}
}