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.
154 lines
4.2 KiB
154 lines
4.2 KiB
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . |
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· |
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ |
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ |
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ |
|
// 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; |
|
} |
|
}
|
|
|