// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.jobs; import engine.job.AbstractScheduleJob; import engine.objects.AbstractWorldObject; import engine.powers.ActionsBase; import engine.powers.EffectsBase; import engine.powers.PowersBase; public abstract class AbstractEffectJob extends AbstractScheduleJob { protected String stackType; protected AbstractWorldObject target; protected AbstractWorldObject source; protected int trains; protected ActionsBase action; protected PowersBase power; protected EffectsBase eb; protected boolean skipSendEffect=false; protected boolean skipApplyEffect=false; protected boolean isChant=false; protected boolean skipCancelEffect=false; private boolean noOverwrite; private int effectSourceType = 0; private int effectSourceID = 0; public AbstractEffectJob(AbstractWorldObject source, AbstractWorldObject target, String stackType, int trains, ActionsBase action, PowersBase power, EffectsBase eb) { super(); this.source = source; this.target = target; this.stackType = stackType; this.trains = trains; this.action = action; this.power = power; this.eb = eb; } @Override protected abstract void doJob(); @Override protected abstract void _cancelJob(); public String getStackType() { return this.stackType; } public AbstractWorldObject getTarget() { return this.target; } public AbstractWorldObject getSource() { return this.target; } public int getTrains() { return this.trains; } public ActionsBase getAction() { return this.action; } public PowersBase getPower() { return this.power; } public int getPowerToken() { if (this.power == null) return 0; return this.power.getToken(); } public EffectsBase getEffect() { return this.eb; } public boolean skipSendEffect() { return this.skipSendEffect; } public void setSkipSendEffect(boolean value) { this.skipSendEffect = value; } public boolean skipApplyEffect() { return this.skipApplyEffect; } public void setSkipApplyEffect(boolean value) { this.skipApplyEffect = value; } public boolean skipCancelEffect() { return this.skipCancelEffect; } public void setSkipCancelEffect(boolean value) { this.skipCancelEffect = value; } public boolean isChant() { return this.isChant; } public void setChant(boolean value) { this.isChant = value; } public void endEffect() { if (this.eb == null) return; this.eb.endEffect(this.source, this.target, this.trains, this.power, this); } public void endEffectNoPower() { if (this.eb == null) return; this.eb.endEffectNoPower(this.trains,this); } public boolean isNoOverwrite() { return noOverwrite; } public void setNoOverwrite(boolean noOverwrite) { this.noOverwrite = noOverwrite; } public int getEffectSourceType() { return effectSourceType; } public void setEffectSourceType(int effectSourceType) { this.effectSourceType = effectSourceType; } public int getEffectSourceID() { return effectSourceID; } public void setEffectSourceID(int effectSourceID) { this.effectSourceID = effectSourceID; } }