From 091bb3db3fa3ae24e318b449d426027d947876f0 Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sat, 18 Jan 2014 22:16:39 -0500 Subject: [PATCH] Fun testing stuff Added some basic fire effect stuff to test how well the system works. So far so good! --- .../common/items/ItemComplexSpellCrystal.java | 2 ++ .../spell/complex/SpellParadigmSelf.java | 2 ++ .../spell/complex/effect/SpellEffect.java | 10 +++++++++ .../spell/complex/effect/SpellEffectFire.java | 5 ++--- .../effect/impactEffects/SelfDefaultFire.java | 13 ----------- .../effect/impactEffects/SelfSpellEffect.java | 18 +++++++++++++++ .../impactEffects/fire/SelfDefaultFire.java | 22 +++++++++++++++++++ .../impactEffects/fire/SelfDefensiveFire.java | 21 ++++++++++++++++++ .../fire/SelfEnvironmentalFire.java | 21 ++++++++++++++++++ .../impactEffects/fire/SelfOffensiveFire.java | 20 +++++++++++++++++ .../complex/enhancement/SpellEnhancement.java | 1 + .../enhancement/SpellEnhancementPotency.java | 10 +++++++++ .../nei/NEIAlchemyRecipeHandler.java | 4 ++-- 13 files changed, 131 insertions(+), 18 deletions(-) delete mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfDefaultFire.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java create mode 100644 BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java index 4237f01b..2a1a756c 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java @@ -7,6 +7,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.common.spell.complex.SpellModifierDefault; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigm; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellEffectFire; @@ -55,6 +56,7 @@ public class ItemComplexSpellCrystal extends EnergyItems SpellParadigm parad = new SpellParadigmSelf(); parad.addBufferedEffect(new SpellEffectFire()); + parad.modifyBufferedEffect(new SpellModifierDefault()); parad.castSpell(par2World, par3EntityPlayer, par1ItemStack); return par1ItemStack; diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java index 69457b41..c246a94b 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmSelf.java @@ -28,6 +28,8 @@ public class SpellParadigmSelf extends SpellParadigm @Override public void castSpell(World world, EntityPlayer entityPlayer, ItemStack itemStack) { + this.applyAllSpellEffects(); + for(ISelfSpellEffect eff : selfSpellEffectList) { eff.onSelfUse(world, entityPlayer); diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java index 043a11a5..df6f8cf8 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffect.java @@ -12,6 +12,7 @@ public abstract class SpellEffect protected int modifierState; protected int powerEnhancement; protected int costEnhancement; + protected int potencyEnhancement; public SpellEffect() { @@ -28,6 +29,7 @@ public abstract class SpellEffect { case SpellEnhancement.POWER: this.powerEnhancement++; break; case SpellEnhancement.EFFICIENCY: this.costEnhancement++; break; + case SpellEnhancement.POTENCY: this.potencyEnhancement++; break; } } } @@ -44,6 +46,14 @@ public abstract class SpellEffect { this.modifyProjectileParadigm((SpellParadigmProjectile)parad); } + if(parad instanceof SpellParadigmSelf) + { + this.modifySelfParadigm((SpellParadigmSelf)parad); + } + if(parad instanceof SpellParadigmMelee) + { + this.modifyMeleeParadigm((SpellParadigmMelee)parad); + } } public void modifyProjectileParadigm(SpellParadigmProjectile parad) diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java index 02d6b329..32d7ab02 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectFire.java @@ -3,11 +3,10 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmMelee; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmProjectile; import WayofTime.alchemicalWizardry.common.spell.complex.SpellParadigmSelf; -import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfDefaultFire; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfDefaultFire; public class SpellEffectFire extends SpellEffect { - @Override public void defaultModificationProjectile(SpellParadigmProjectile parad) { @@ -38,7 +37,7 @@ public class SpellEffectFire extends SpellEffect @Override public void defaultModificationSelf(SpellParadigmSelf parad) { - parad.addSelfSpellEffect(new SelfDefaultFire()); + parad.addSelfSpellEffect(new SelfDefaultFire(powerEnhancement, potencyEnhancement, costEnhancement)); } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfDefaultFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfDefaultFire.java deleted file mode 100644 index 2fb74331..00000000 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfDefaultFire.java +++ /dev/null @@ -1,13 +0,0 @@ -package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class SelfDefaultFire implements ISelfSpellEffect -{ - @Override - public void onSelfUse(World world, EntityPlayer player) - { - player.setFire(500); - } -} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java new file mode 100644 index 00000000..8a6ba5dd --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/SelfSpellEffect.java @@ -0,0 +1,18 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public abstract class SelfSpellEffect implements ISelfSpellEffect +{ + protected int powerUpgrades; + protected int potencyUpgrades; + protected int costUpgrades; + + public SelfSpellEffect(int power, int potency, int cost) + { + this.powerUpgrades = power; + this.potencyUpgrades = potency; + this.costUpgrades = cost; + } +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java new file mode 100644 index 00000000..9ea92fcf --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefaultFire.java @@ -0,0 +1,22 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.ISelfSpellEffect; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.world.World; + +public class SelfDefaultFire extends SelfSpellEffect +{ + public SelfDefaultFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public void onSelfUse(World world, EntityPlayer player) + { + player.addPotionEffect(new PotionEffect(Potion.fireResistance.id,1000,0)); + } +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java new file mode 100644 index 00000000..6dbc2f80 --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfDefensiveFire.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; + +public class SelfDefensiveFire extends SelfSpellEffect { + + public SelfDefensiveFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public void onSelfUse(World world, EntityPlayer player) + { + // TODO Auto-generated method stub + + } + +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java new file mode 100644 index 00000000..769871cc --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfEnvironmentalFire.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; + +public class SelfEnvironmentalFire extends SelfSpellEffect +{ + public SelfEnvironmentalFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public void onSelfUse(World world, EntityPlayer player) + { + int posX = (int) Math.round(player.posX - 0.5f); + int posY = (int) player.posY; + int posZ = (int) Math.round(player.posZ - 0.5f); + } +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java new file mode 100644 index 00000000..037f1ae0 --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/fire/SelfOffensiveFire.java @@ -0,0 +1,20 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.SelfSpellEffect; + +public class SelfOffensiveFire extends SelfSpellEffect +{ + public SelfOffensiveFire(int power, int potency, int cost) + { + super(power, potency, cost); + } + + @Override + public void onSelfUse(World world, EntityPlayer player) + { + + } + +} diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java index 0d9078da..b17c5659 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancement.java @@ -4,6 +4,7 @@ public class SpellEnhancement { public static final int POWER = 0; public static final int EFFICIENCY = 1; + public static final int POTENCY = 2; private int state = this.POWER; diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java new file mode 100644 index 00000000..6231c8a7 --- /dev/null +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/enhancement/SpellEnhancementPotency.java @@ -0,0 +1,10 @@ +package WayofTime.alchemicalWizardry.common.spell.complex.enhancement; + +public class SpellEnhancementPotency extends SpellEnhancement +{ + public SpellEnhancementPotency() + { + super(SpellEnhancement.POTENCY); + } + +} diff --git a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java index b0d65bfa..c869c093 100644 --- a/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java +++ b/BM_src/joshie/alchemicalWizardy/nei/NEIAlchemyRecipeHandler.java @@ -46,7 +46,7 @@ public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { this.output = new PositionedStack(recipe.getResult(), 76, 25); this.lp = recipe.getAmountNeeded() * 100; this.orbs = new ArrayList(); - for(int i = recipe.getOrbLevel(); i < bloodOrbs.size(); i++) { + for(int i = recipe.getOrbLevel(); i <= bloodOrbs.size(); i++) { ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); orbs.add(new BloodOrbs(orb)); } @@ -89,7 +89,7 @@ public class NEIAlchemyRecipeHandler extends TemplateRecipeHandler { } ArrayList orbs = new ArrayList(); - for(int i = recipe.getOrbLevel(); i < bloodOrbs.size(); i++) { + for(int i = recipe.getOrbLevel(); i <= bloodOrbs.size(); i++) { ItemStack orb = new ItemStack(bloodOrbs.get(i - 1)); if(NEIServerUtils.areStacksSameTypeCrafting(orb, ingredient)) { arecipes.add(new CachedAlchemyRecipe(recipe));