47 lines
1.6 KiB
Java
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);
|
|
}
|