Public Repository for the Magicbane Shadowbane Emulator
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.

125 lines
3.6 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.powers.effectmodifiers;
import engine.jobs.AbstractEffectJob;
import engine.mbEnums.ModType;
import engine.mbEnums.SourceType;
import engine.objects.AbstractCharacter;
import engine.objects.AbstractWorldObject;
import engine.objects.Building;
import engine.objects.Item;
import engine.powers.EffectsBase;
import engine.wpak.data.ModifierEntry;
import java.sql.ResultSet;
import java.sql.SQLException;
public abstract class AbstractEffectModifier {
public float minMod;
public SourceType sourceType;
public ModType modType;
protected EffectsBase parent;
protected int UUID;
protected String IDString;
protected String effectType;
protected float maxMod;
protected float percentMod;
protected float ramp;
protected boolean useRampAdd;
protected String type;
protected String string1;
protected String string2;
public AbstractEffectModifier(ResultSet rs){
}
public AbstractEffectModifier(ModifierEntry mod) {
this.IDString = mod.type.name();
this.effectType = mod.type.name();
this.modType = mod.type;
this.type = mod.type.name().replace("\"", "");
this.sourceType = SourceType.GetSourceType(this.type.replace(" ", "").replace("-", ""));
this.minMod = mod.min;
this.maxMod = mod.max;
this.percentMod = mod.value;
this.ramp = (float)mod.compoundCurveType.getValue();
this.useRampAdd = (float)mod.compoundCurveType.getValue() != 0;
this.string1 = mod.arg1;
this.string2 = mod.arg2;
}
public int getUUID() {
return this.UUID;
}
// public String getIDString() {
// return this.IDString;
// }
public String getmodType() {
return this.effectType;
}
public float getMinMod() {
return this.minMod;
}
public float getMaxMod() {
return this.maxMod;
}
public float getPercentMod() {
return this.percentMod;
}
public float getRamp() {
return this.ramp;
}
public String getType() {
return this.type;
}
public String getString1() {
return this.string1;
}
public String getString2() {
return this.string2;
}
public EffectsBase getParent() {
return this.parent;
}
public void setParent(EffectsBase value) {
this.parent = value;
}
public void applyEffectModifier(AbstractCharacter source, AbstractWorldObject awo, int trains, AbstractEffectJob effect) {
_applyEffectModifier(source, awo, trains, effect);
}
protected abstract void _applyEffectModifier(AbstractCharacter source, AbstractWorldObject awo, int trains, AbstractEffectJob effect);
public abstract void applyBonus(AbstractCharacter ac, int trains);
public abstract void applyBonus(Item item, int trains);
public abstract void applyBonus(Building building, int trains);
}