From b962ede72da86437b2f84e144985a7988fe0592a Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sat, 22 Mar 2014 17:15:58 -0400 Subject: [PATCH] v1.0.0 finilization --- .../AlchemicalWizardry.java | 31 ++++++++++++-- .../common/block/RitualStone.java | 6 +++ .../common/items/ItemComplexSpellCrystal.java | 31 +++++++++++++- .../spell/complex/EntitySpellProjectile.java | 14 +++++++ .../complex/SpellParadigmProjectile.java | 5 ++- .../complex/effect/SpellEffectEarth.java | 3 +- .../spell/complex/effect/SpellEffectWind.java | 7 ++-- .../earth/ProjectileEnvironmentalEarth.java | 16 ++++++-- .../earth/SelfEnvironmentalEarth.java | 32 ++++++--------- .../ice/MeleeEnvironmentalIce.java | 1 + .../wind/MeleeEnvironmentalWind.java | 38 ++++++------------ .../textures/items/ComplexCrystal.png | Bin 0 -> 414 bytes 12 files changed, 123 insertions(+), 61 deletions(-) create mode 100644 resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png diff --git a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index ed065c27..aec0c335 100644 --- a/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/BM_src/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -878,9 +878,9 @@ public class AlchemicalWizardry AlchemyRecipeRegistry.registerRecipe(orbisTerraeStack, 10, new ItemStack[]{strengthenedCatalystStack,terraeStack, gunpowderStack, new ItemStack(Block.netherrack), new ItemStack(Block.sand)}, 3); AlchemyRecipeRegistry.registerRecipe(concentratedCatalystStack,10,new ItemStack[]{strengthenedCatalystStack,fracturedBoneStack,goldNuggetStack},4); AlchemyRecipeRegistry.registerRecipe(fracturedBoneStackCrafted, 2, new ItemStack[]{new ItemStack(Item.bone), new ItemStack(Item.bone),new ItemStack(Item.bone),new ItemStack(Item.bone), gunpowderStack},1); - AlchemyRecipeRegistry.registerRecipe(virtusStack, 10, new ItemStack[]{redstoneStack, new ItemStack(Item.coal),strengthenedCatalystStack,redstoneStack,gunpowderStack}, 3); - AlchemyRecipeRegistry.registerRecipe(reductusStack,10,new ItemStack[]{redstoneStack, goldIngotStack, strengthenedCatalystStack,new ItemStack(Block.slowSand), new ItemStack(Item.carrot)},3); - AlchemyRecipeRegistry.registerRecipe(potentiaStack, 10, new ItemStack[]{glowstoneDustStack,strengthenedCatalystStack,lapisStack,lapisStack,new ItemStack(Item.netherQuartz)}, 3); + AlchemyRecipeRegistry.registerRecipe(virtusStack,20, new ItemStack[]{redstoneStack, new ItemStack(Item.coal),strengthenedCatalystStack,redstoneStack,gunpowderStack}, 3); + AlchemyRecipeRegistry.registerRecipe(reductusStack,20,new ItemStack[]{redstoneStack, goldIngotStack, strengthenedCatalystStack,new ItemStack(Block.slowSand), new ItemStack(Item.carrot)},3); + AlchemyRecipeRegistry.registerRecipe(potentiaStack,20, new ItemStack[]{glowstoneDustStack,strengthenedCatalystStack,lapisStack,lapisStack,new ItemStack(Item.netherQuartz)}, 3); HomSpellRegistry.registerBasicSpell(new ItemStack(Item.flintAndSteel), new SpellFireBurst()); HomSpellRegistry.registerBasicSpell(new ItemStack(Block.ice), new SpellFrozenWater()); @@ -1015,7 +1015,7 @@ public class AlchemicalWizardry AlchemyRecipeRegistry.registerRecipe(crackedRunicPlateStackCrafted, 10, new ItemStack[]{imbuedSlateStack,imbuedSlateStack,concentratedCatalystStack}, 4); AlchemyRecipeRegistry.registerRecipe(runicPlateStack, 30, new ItemStack[]{crackedRunicPlateStack,terraeStack}, 5); AlchemyRecipeRegistry.registerRecipe(imbuedRunicPlateStack, 100, new ItemStack[]{magicalesStack,incendiumStack,runicPlateStack, runicPlateStack,aquasalusStack}, 5); - AlchemyRecipeRegistry.registerRecipe(complexSpellCrystalStack,50,new ItemStack[]{new ItemStack(ModItems.blankSpell), weakBloodShardStack, weakBloodShardStack, glassStack,goldIngotStack},3); + AlchemyRecipeRegistry.registerRecipe(complexSpellCrystalStack,50,new ItemStack[]{new ItemStack(ModItems.blankSpell), weakBloodShardStack, weakBloodShardStack, diamondStack,goldIngotStack},3); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockConduit,1,0),"q q","ccc","q q",'q', quartzRodStack,'c', magicalesCableStack); @@ -1045,6 +1045,29 @@ public class AlchemicalWizardry GameRegistry.addShapelessRecipe(new ItemStack(Item.dyePowder,5,15),fracturedBoneStack); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.flint,2,0), 1, new ItemStack[]{new ItemStack(Block.gravel),new ItemStack(Item.flint)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.grass), 2, new ItemStack[]{new ItemStack(Block.dirt),new ItemStack(Item.dyePowder,1,15),new ItemStack(Item.seeds),new ItemStack(Item.seeds)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.leather,3,0), 2, new ItemStack[]{new ItemStack(Item.rottenFlesh),new ItemStack(Item.rottenFlesh),new ItemStack(Item.rottenFlesh),waterBucketStack,new ItemStack(Item.flint)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.bread), 1, new ItemStack[]{new ItemStack(Item.wheat),new ItemStack(Item.sugar)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.fireballCharge,5,0), 3, new ItemStack[]{new ItemStack(Item.coal),new ItemStack(Item.blazePowder),gunpowderStack}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.sand,2,0), 1, new ItemStack[]{new ItemStack(Block.cobblestone),gunpowderStack}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.blockClay,4,0), 2, new ItemStack[]{new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),new ItemStack(Block.hardenedClay,1,craftingConstant),waterBucketStack}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.silk,4,0), 1, new ItemStack[]{new ItemStack(Block.cloth,1,craftingConstant),new ItemStack(Item.flint)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.gravel,2,0), 1, new ItemStack[]{new ItemStack(Block.stone),gunpowderStack}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.obsidian), 1, new ItemStack[]{waterBucketStack,lavaBucketStack}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Item.paper), 1, new ItemStack[]{new ItemStack(Item.reed)}, 1); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.slowSand,3,0), 3, new ItemStack[]{new ItemStack(Block.sand),new ItemStack(Block.sand),new ItemStack(Block.sand),waterBucketStack,weakBloodShardStack}, 3); + AlchemyRecipeRegistry.registerRecipe(new ItemStack(Block.mycelium,1,0), 5, new ItemStack[]{new ItemStack(Block.grass),new ItemStack(Block.mushroomCapBrown), new ItemStack(Block.mushroomCapRed)}, 2); + + + + + + + + + + LanguageRegistry.addName(strengthenedCatalystStack, "Strengthened Catalyst"); LanguageRegistry.addName(offensaStack, "Offensa"); LanguageRegistry.addName(praesidiumStack,"Praesidium"); diff --git a/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java b/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java index 512087c2..567e0187 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/block/RitualStone.java @@ -117,4 +117,10 @@ public class RitualStone extends Block return blankIcon; } } + + @Override + public boolean canSilkHarvest(World world, EntityPlayer player, int x, int y, int z, int meta) + { + return false; + } } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java index 59f4578c..8962b1f4 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/items/ItemComplexSpellCrystal.java @@ -1,6 +1,7 @@ package WayofTime.alchemicalWizardry.common.items; import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.common.alchemy.AlchemyRecipeRegistry; import WayofTime.alchemicalWizardry.common.tileEntity.TESpellParadigmBlock; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -9,11 +10,14 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; import java.util.List; +import org.lwjgl.input.Keyboard; + public class ItemComplexSpellCrystal extends EnergyItems { public ItemComplexSpellCrystal(int par1) @@ -27,7 +31,7 @@ public class ItemComplexSpellCrystal extends EnergyItems @SideOnly(Side.CLIENT) public void registerIcons(IconRegister iconRegister) { - this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankSpell"); + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:ComplexCrystal"); } @Override @@ -47,6 +51,31 @@ public class ItemComplexSpellCrystal extends EnergyItems par3List.add("Coords: " + itemTag.getInteger("xCoord") + ", " + itemTag.getInteger("yCoord") + ", " + itemTag.getInteger("zCoord")); par3List.add("Bound Dimension: " + getDimensionID(par1ItemStack)); } + + if (Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) + { + ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); + + if (recipe != null) + { + par3List.add(EnumChatFormatting.BLUE + "Recipe:"); + + for (ItemStack item : recipe) + { + if (item != null) + { + par3List.add("" + item.getDisplayName()); + } + } + } + } else + { + ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(par1ItemStack); + if(recipe!=null) + { + par3List.add("-Press " + EnumChatFormatting.BLUE + "shift" + EnumChatFormatting.GRAY + " for Recipe-"); + } + } } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java index fbd54cb8..04e10b26 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/EntitySpellProjectile.java @@ -38,6 +38,7 @@ public class EntitySpellProjectile extends Entity implements IProjectile private int ticksInAir = 0; private int ricochetCounter = 0; private boolean scheduledForDeath = false; + private boolean isSilkTouch = false; //Custom variables private int maxRicochet = 0; @@ -288,6 +289,7 @@ public class EntitySpellProjectile extends Entity implements IProjectile par1NBTTagCompound.setTag("Effects", effectList); par1NBTTagCompound.setInteger("blocksBroken", blocksBroken); + par1NBTTagCompound.setBoolean("isSilkTouch", isSilkTouch); } /** @@ -303,6 +305,8 @@ public class EntitySpellProjectile extends Entity implements IProjectile inData = par1NBTTagCompound.getByte("inData") & 255; inGround = par1NBTTagCompound.getByte("inGround") == 1; blocksBroken = par1NBTTagCompound.getInteger("blocksBroken"); + isSilkTouch = par1NBTTagCompound.getBoolean("isSilkTouch"); + NBTTagList tagList = par1NBTTagCompound.getTagList("Effects"); @@ -580,4 +584,14 @@ public class EntitySpellProjectile extends Entity implements IProjectile { this.blocksBroken = blocksBroken; } + + public boolean getIsSilkTouch() + { + return this.isSilkTouch; + } + + public void setIsSilkTouch(boolean bool) + { + this.isSilkTouch = bool; + } } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java index 7c81d8aa..1cc9b3a6 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/SpellParadigmProjectile.java @@ -23,6 +23,7 @@ public class SpellParadigmProjectile extends SpellParadigm public List updateEffectList; public boolean penetration; public int ricochetMax; + public boolean isSilkTouch; public SpellParadigmProjectile() { @@ -33,6 +34,7 @@ public class SpellParadigmProjectile extends SpellParadigm this.updateEffectList = new ArrayList(); this.penetration = false; this.ricochetMax = 0; + this.isSilkTouch = false; } @Override @@ -70,7 +72,8 @@ public class SpellParadigmProjectile extends SpellParadigm proj.setImpactList(impactList); proj.setUpdateEffectList(updateEffectList); proj.setPenetration(penetration); - proj.setRicochetMax(ricochetMax); + proj.setRicochetMax(ricochetMax); + proj.setIsSilkTouch(isSilkTouch); proj.setSpellEffectList(bufferedEffectList); } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java index d958617b..a3c993c1 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectEarth.java @@ -136,8 +136,7 @@ public class SpellEffectEarth extends SpellEffect @Override protected int getCostForEnvironmentSelf() { - // TODO Auto-generated method stub - return 0; + return (int)(250*(1.2*this.potencyEnhancement+1)*(3*this.powerEnhancement+2.5)*Math.pow(0.85, costEnhancement)); } @Override diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java index 4152689b..91688c44 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellEffectWind.java @@ -32,7 +32,7 @@ public class SpellEffectWind extends SpellEffect @Override public void defensiveModificationProjectile(SpellParadigmProjectile parad) { - parad.ricochetMax+=this.potencyEnhancement; + parad.isSilkTouch = true; } @Override @@ -86,7 +86,7 @@ public class SpellEffectWind extends SpellEffect @Override public void environmentalModificationMelee(SpellParadigmMelee parad) { - //TODO parad.addWorldEffect(new MeleeEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); + parad.addWorldEffect(new MeleeEnvironmentalWind(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement)); } @Override @@ -158,7 +158,6 @@ public class SpellEffectWind extends SpellEffect @Override protected int getCostForEnvironmentMelee() { - // TODO Auto-generated method stub - return 0; + return (int)(100*(1.0*this.potencyEnhancement+1)*(0.7*this.powerEnhancement+1)*Math.pow(0.85, costEnhancement)); } } diff --git a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java index 9afb0ad9..72a9bbd0 100644 --- a/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java +++ b/BM_src/WayofTime/alchemicalWizardry/common/spell/complex/effect/impactEffects/earth/ProjectileEnvironmentalEarth.java @@ -1,7 +1,5 @@ package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.earth; -import java.util.ArrayList; - import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -52,13 +50,25 @@ public class ProjectileEnvironmentalEarth extends ProjectileUpdateEffect if(!worldObj.isAirBlock(posX+i, posY+j, posZ+k)&&blocksBroken entities = SpellHelper.getEntitiesInRange(world, player.posX, player.posY, player.posZ, radius, radius); - int posX = (int)(blockVec.xCoord); - int posY = (int)(blockVec.yCoord); - int posZ = (int)(blockVec.zCoord); - - for(int i=-horizRadius; i<=horizRadius; i++) + for(Entity entity : entities) { - for(int j=0; j entities = SpellHelper.getEntitiesInRange(world, posX, posY, posZ, radius, radius); + + for(Entity entity : entities) { - for(int j=-radius; j<=radius; j++) + if(entity instanceof EntityItem) { - for(int k=-radius; k<=radius; k++) - { - Block block = Block.blocksList[world.getBlockId(posX+i, posY+j, posZ+k)]; - int meta = world.getBlockMetadata(posX+i, posY+j, posZ+k); - - if(SpellHelper.isBlockFluid(block)&&world.rand.nextFloat()<0.9f) - { - EntityFallingSand liquid = new EntityFallingSand(world, posX+i, posY+j, posZ+k, block.blockID, meta); - - if(liquid!=null) - { - liquid.motionX = (world.rand.nextDouble()-world.rand.nextDouble())*wantedVel; - liquid.motionY = (world.rand.nextDouble()-world.rand.nextDouble())*wantedVel; - liquid.motionZ = (world.rand.nextDouble()-world.rand.nextDouble())*wantedVel; - - world.spawnEntityInWorld(liquid); - } - } - } + ((EntityItem)entity).delayBeforeCanPickup = 0; + entity.onCollideWithPlayer((EntityPlayer)player); } } } diff --git a/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png b/resources/assets/alchemicalwizardry/textures/items/ComplexCrystal.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f2ccf7b13dec83ca943b010075e678c582a971 GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqvxvC7;GrGg>VQJBnIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^0|O(Ir;B5V#p$J!ef~vC2yx-_HCvyWUqQdqV5<*vNmUw|$t{qH?d>>2jpd z`g___E{Oe_rBar