Started working on allowing RitualDiviner to do directions.

Completed refactorization of spell system.
Increased protection against void damage while void sigil is in Bound Armour.
Added an OnRitualStop with an Enum input providing the action.
Added more events.
This commit is contained in:
WayofTime 2014-11-12 17:14:43 -05:00
parent 69abce8f85
commit beea2e875a
97 changed files with 4234 additions and 1414 deletions

View file

@ -1,161 +0,0 @@
package WayofTime.alchemicalWizardry.common.spell.complex;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffect;
import WayofTime.alchemicalWizardry.common.spell.complex.enhancement.SpellEnhancement;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import java.util.LinkedList;
import java.util.List;
public abstract class SpellParadigm
{
protected List<SpellEffect> bufferedEffectList = new LinkedList();
public List<String> effectList = new LinkedList();
public void addBufferedEffect(SpellEffect effect)
{
if (effect != null)
{
this.bufferedEffectList.add(effect);
effectList.add(effect.getClass().getName());
}
}
public void modifyBufferedEffect(SpellModifier modifier)
{
SpellEffect effect = this.getBufferedEffect();
if (effect != null)
{
effect.modifyEffect(modifier);
effectList.add(modifier.getClass().getName());
}
}
public void applyEnhancement(SpellEnhancement enh)
{
if (enh != null)
{
if (bufferedEffectList.isEmpty())
{
this.enhanceParadigm(enh);
} else
{
SpellEffect effect = this.getBufferedEffect();
if (effect != null)
{
effect.enhanceEffect(enh);
}
}
effectList.add(enh.getClass().getName());
}
}
public abstract void enhanceParadigm(SpellEnhancement enh);
public abstract void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack);
public void applySpellEffect(SpellEffect effect)
{
effect.modifyParadigm(this);
}
public void applyAllSpellEffects()
{
for (SpellEffect effect : bufferedEffectList)
{
this.applySpellEffect(effect);
}
}
public SpellEffect getBufferedEffect()
{
if (bufferedEffectList.isEmpty())
{
return null;
} else
{
return bufferedEffectList.get(bufferedEffectList.size() - 1);
}
}
public int getTotalCost()
{
int cost = 0;
if (this.bufferedEffectList != null && !this.bufferedEffectList.isEmpty())
{
if (this instanceof SpellParadigmProjectile)
{
for (SpellEffect effect : bufferedEffectList)
{
cost += effect.getCostForProjectile();
}
} else if (this instanceof SpellParadigmSelf)
{
for (SpellEffect effect : bufferedEffectList)
{
cost += effect.getCostForSelf();
}
} else if (this instanceof SpellParadigmMelee)
{
for (SpellEffect effect : bufferedEffectList)
{
cost += effect.getCostForMelee();
}
} else if (this instanceof SpellParadigmTool)
{
for (SpellEffect effect : bufferedEffectList)
{
cost += effect.getCostForTool();
}
}
return (int) (cost * Math.sqrt(this.bufferedEffectList.size()));
}
return getDefaultCost();
}
public abstract int getDefaultCost();
public int getBufferedEffectPower()
{
SpellEffect eff = this.getBufferedEffect();
if (eff != null)
{
return eff.getPowerEnhancements();
}
return 0;
}
public int getBufferedEffectCost()
{
SpellEffect eff = this.getBufferedEffect();
if (eff != null)
{
return eff.getCostEnhancements();
}
return 0;
}
public int getBufferedEffectPotency()
{
SpellEffect eff = this.getBufferedEffect();
if (eff != null)
{
return eff.getPotencyEnhancements();
}
return 0;
}
}