BloodMagic/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java
2014-01-17 19:59:31 -05:00

47 lines
1.6 KiB
Java

package WayofTime.alchemicalWizardry.common.spell.complex.effect;
import WayofTime.alchemicalWizardry.common.spell.complex.SpellEnhancement;
import WayofTime.alchemicalWizardry.common.spell.complex.SpellModifier;
import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm;
import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile;
public abstract class SpellEffect
{
public int modifierState = SpellModifier.DEFAULT;
public void enhanceEffect(SpellEnhancement enh)
{
}
public void modifyEffect(SpellModifier mod)
{
if(mod!=null)
modifierState = mod.getModifier();
}
public void modifyParadigm(SpellParadigm parad)
{
if(parad instanceof SpellParadigmProjectile)
{
this.modifyProjectileParadigm((SpellParadigmProjectile)parad);
}
}
public void modifyProjectileParadigm(SpellParadigmProjectile parad)
{
switch(modifierState)
{
case SpellModifier.DEFAULT: this.defaultModificationProjectile(parad); break;
case SpellModifier.OFFENSIVE: this.offensiveModificationProjectile(parad); break;
case SpellModifier.DEFENSIVE: this.defensiveModificationProjectile(parad); break;
case SpellModifier.ENVIRONMENTAL: this.environmentalModificationProjectile(parad); break;
}
}
public abstract void defaultModificationProjectile(SpellParadigmProjectile parad);
public abstract void offensiveModificationProjectile(SpellParadigmProjectile parad);
public abstract void defensiveModificationProjectile(SpellParadigmProjectile parad);
public abstract void environmentalModificationProjectile(SpellParadigmProjectile parad);
}