diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index c5faab7e..25b4f55e 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -162,7 +162,7 @@ import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; -@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.2.0Beta22") +@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.2.0Beta25") //@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"BloodAltar", "particle", "SetLifeEssence", "GetLifeEssence", "Ritual", "GetAltarEssence", "TESocket", "TEWritingTable", "CustomParticle", "SetPlayerVel", "SetPlayerPos", "TEPedestal", "TEPlinth", "TETeleposer", "InfiniteLPPath", "TEOrientor"}, packetHandler = PacketHandler.class) public class AlchemicalWizardry @@ -1005,8 +1005,8 @@ public class AlchemicalWizardry AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.ender_pearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(Blocks.soul_sand),AlchemicalWizardry.customPotionSoulFray.id,30*20); - AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.baseItems,1,16),AlchemicalWizardry.customPotionSoulHarden.id,30*20); + AlchemicalPotionCreationHandler.addPotion(new ItemStack(Blocks.soul_sand),AlchemicalWizardry.customPotionSoulFray.id,60*20); + AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.baseItems,1,16),AlchemicalWizardry.customPotionSoulHarden.id,60*20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.slime_ball),AlchemicalWizardry.customPotionDeaf.id,60*20); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java index 1a5c3e00..c3ed52af 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java @@ -44,6 +44,18 @@ public class AlchemicalWizardryEventHooks public static Map> respawnMap = new HashMap(); public static Map> forceSpawnMap = new HashMap(); + @SubscribeEvent + public void onPlayerDamageEvent(LivingAttackEvent event) + { + if(event.source.isProjectile()) + { + if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionProjProt) && event.isCancelable()) + { + event.setCanceled(true); + } + } + } + @SubscribeEvent public void onLivingSpawnEvent(CheckSpawn event) { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java index 8100c7b2..224f4d55 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/block/ImperfectRitualStone.java @@ -46,10 +46,9 @@ public class ImperfectRitualStone extends Block if (block == Blocks.water) { - if (!player.capabilities.isCreativeMode && world.isRemote) + if (!player.capabilities.isCreativeMode && !world.isRemote) { - - //PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(SpellHelper.getUsername(player) , -5000, 0)); + EnergyItems.drainPlayerNetwork(player, 5000); } if (!world.isRemote) @@ -74,7 +73,7 @@ public class ImperfectRitualStone extends Block return true; } else if (block == Blocks.coal_block) { - if (!player.capabilities.isCreativeMode && world.isRemote) + if (!player.capabilities.isCreativeMode && !world.isRemote) { EnergyItems.drainPlayerNetwork(player, 5000); } @@ -104,7 +103,7 @@ public class ImperfectRitualStone extends Block return true; } else if (block== Blocks.lapis_block) { - if (!player.capabilities.isCreativeMode && world.isRemote) + if (!player.capabilities.isCreativeMode && !world.isRemote) { EnergyItems.drainPlayerNetwork(player, 5000); } @@ -120,9 +119,9 @@ public class ImperfectRitualStone extends Block } } else if (block == Blocks.bedrock) { - if (!player.capabilities.isCreativeMode && world.isRemote) + if (!player.capabilities.isCreativeMode && !world.isRemote) { - EnergyItems.drainPlayerNetwork(player, 5000); + EnergyItems.drainPlayerNetwork(player, 5000); } if (!world.isRemote) diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java index 26a26062..a1f6bc9b 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityMeteor.java @@ -1,6 +1,7 @@ package WayofTime.alchemicalWizardry.common.entity.projectile; import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -9,6 +10,12 @@ import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; public class EntityMeteor extends EnergyBlastProjectile { private int meteorID; + + public boolean hasTerrae; + public boolean hasOrbisTerrae; + public boolean hasCrystallos; + public boolean hasIncendium; + public boolean hasTennebrae; public EntityMeteor(World par1World) { @@ -21,6 +28,32 @@ public class EntityMeteor extends EnergyBlastProjectile super(par1World, par2, par4, par6); this.meteorID = meteorID; } + + @Override + public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) + { + super.writeEntityToNBT(par1NBTTagCompound); + + par1NBTTagCompound.setInteger("meteorID", meteorID); + par1NBTTagCompound.setBoolean("hasTerrae", hasTerrae); + par1NBTTagCompound.setBoolean("hasOrbisTerrae", hasOrbisTerrae); + par1NBTTagCompound.setBoolean("hasCrystallos", hasCrystallos); + par1NBTTagCompound.setBoolean("hasIncendium", hasIncendium); + par1NBTTagCompound.setBoolean("hasTennebrae", hasTennebrae); + } + + @Override + public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) + { + super.readEntityFromNBT(par1NBTTagCompound); + + meteorID = par1NBTTagCompound.getInteger("meteorID"); + hasTerrae = par1NBTTagCompound.getBoolean("hasTerrae"); + hasOrbisTerrae = par1NBTTagCompound.getBoolean("hasOrbisTerrae"); + hasIncendium = par1NBTTagCompound.getBoolean("hasIncendium"); + hasCrystallos = par1NBTTagCompound.getBoolean("hasCrystallos"); + hasTennebrae = par1NBTTagCompound.getBoolean("hasTennebrae"); + } @Override public DamageSource getDamageSource() @@ -41,7 +74,7 @@ public class EntityMeteor extends EnergyBlastProjectile this.onImpact(mop.entityHit); } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { - MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID); + MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID, new boolean[]{hasTerrae, hasOrbisTerrae, hasCrystallos, hasIncendium, hasTennebrae}); } this.setDead(); @@ -50,7 +83,7 @@ public class EntityMeteor extends EnergyBlastProjectile @Override public void onImpact(Entity mop) { - MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID); + MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID, new boolean[]{hasTerrae, hasOrbisTerrae, hasCrystallos, hasIncendium, hasTennebrae}); this.setDead(); } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java index 550878a8..cbb3bdc2 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java @@ -42,7 +42,7 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr private static IIcon leggingsIcon; private static IIcon bootsIcon; - private static final boolean tryComplexRendering = false; + private static final boolean tryComplexRendering = true; public BoundArmour(int armorType) { @@ -177,7 +177,11 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr double damageAmount = 0.25; - if(!player.isPotionActive(AlchemicalWizardry.customPotionSoulHarden)) + if(player.isPotionActive(AlchemicalWizardry.customPotionSoulHarden)) + { + int i = player.getActivePotionEffect(AlchemicalWizardry.customPotionSoulHarden).getAmplifier() + 1; + damageAmount /= (1 - i*0.1); + }else { damageAmount *= 0.9; } @@ -216,7 +220,7 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr { if (source.isUnblockable()) { - return new ArmorProperties(-1, damageAmount * 0.8d, maxAbsorption); + return new ArmorProperties(-1, damageAmount * 0.9d, maxAbsorption); } return new ArmorProperties(-1, damageAmount, maxAbsorption); diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java index 9385d7ce..8eaa883c 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/BoundPickaxe.java @@ -137,6 +137,11 @@ public class BoundPickaxe extends ItemPickaxe implements IBindable return par1ItemStack; } + if(par2World.isRemote) + { + return par1ItemStack; + } + Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); int posX = (int)(blockVec.xCoord); int posY = (int)(blockVec.yCoord); diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java index 80bc638a..88b7ef89 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/EnergyItems.java @@ -228,6 +228,16 @@ public class EnergyItems extends Item implements IBindable initializePlayer(player); } + + public static void setItemOwner(ItemStack item, String ownerName) + { + if (item.stackTagCompound == null) + { + item.setTagCompound(new NBTTagCompound()); + } + + item.stackTagCompound.setString("ownerName", ownerName); + } public static void checkAndSetItemOwner(ItemStack item, String ownerName) { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBlockCrystalBelljar.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBlockCrystalBelljar.java index b4745e90..0f1ac64f 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBlockCrystalBelljar.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/items/ItemBlockCrystalBelljar.java @@ -80,11 +80,6 @@ public class ItemBlockCrystalBelljar extends ItemBlock @Override public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) { - System.out.println("I am calling placeBlockAt"); - if(stack.getTagCompound() == null) - { - System.out.println("I have no NBT."); - } if (!world.setBlock(x, y, z, field_150939_a, metadata, 3)) { return false; diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelOmegaArmour.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelOmegaArmour.java index 04a51fa0..790bb9e1 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelOmegaArmour.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/renderer/model/ModelOmegaArmour.java @@ -12,6 +12,25 @@ public class ModelOmegaArmour extends ModelBiped // ModelRenderer leftarm; // ModelRenderer rightleg; // ModelRenderer leftleg; + ModelRenderer leftFacePlate; + ModelRenderer rightFacePlate; + ModelRenderer facePlate1; + ModelRenderer facePlate2; + ModelRenderer facePlate3; + ModelRenderer leftWingPlate1; + ModelRenderer leftWingPlate2; + ModelRenderer rightWingPlate1; + ModelRenderer rightWingPlate2; + ModelRenderer topPlate1; + ModelRenderer topPlate2; + ModelRenderer topPlate3; + ModelRenderer backPlate1; + ModelRenderer backPlate2; + ModelRenderer backPlate3; + ModelRenderer backPlate4; + ModelRenderer backPlate5; + ModelRenderer backPlate6; + ModelRenderer eyePlate; ModelRenderer rightArmMain; ModelRenderer rightKnucklePlate; ModelRenderer rightKnuckleBrace; @@ -118,6 +137,148 @@ public class ModelOmegaArmour extends ModelBiped // setRotation(leftleg, 0F, 0F, 0F); } + /* Helmet */ + { + leftFacePlate = new ModelRenderer(this, 66, 52); + leftFacePlate.addBox(-2F, -5F, -5F, 5, 4, 1); + leftFacePlate.setRotationPoint(0F, 0F, 0F); + leftFacePlate.setTextureSize(128, 128); + leftFacePlate.mirror = true; + setRotation(leftFacePlate, 0.296706F, -0.3490659F, -0.0872665F); + + rightFacePlate = new ModelRenderer(this, 66, 52); + rightFacePlate.addBox(-3F, -5F, -5F, 5, 4, 1); + rightFacePlate.setRotationPoint(0F, 0F, 0F); + rightFacePlate.setTextureSize(128, 128); + rightFacePlate.mirror = true; + setRotation(rightFacePlate, 0.296706F, 0.3490659F, 0.0872665F); + rightFacePlate.mirror = false; + + facePlate1 = new ModelRenderer(this, 79, 52); + facePlate1.addBox(-5F, -8F, -5F, 10, 3, 1); + facePlate1.setRotationPoint(0F, 0F, 0F); + facePlate1.setTextureSize(128, 128); + facePlate1.mirror = true; + setRotation(facePlate1, 0F, 0F, 0F); + + facePlate2 = new ModelRenderer(this, 79, 57); + facePlate2.addBox(-1F, -5F, -5F, 2, 1, 1); + facePlate2.setRotationPoint(0F, 0F, 0F); + facePlate2.setTextureSize(128, 128); + facePlate2.mirror = true; + setRotation(facePlate2, 0F, 0F, 0F); + + facePlate3 = new ModelRenderer(this, 79, 60); + facePlate3.addBox(-3F, -4F, -5F, 6, 1, 1); + facePlate3.setRotationPoint(0F, 0F, 0F); + facePlate3.setTextureSize(128, 128); + facePlate3.mirror = true; + setRotation(facePlate3, 0F, 0F, 0F); + + leftWingPlate1 = new ModelRenderer(this, 66, 58); + leftWingPlate1.addBox(5F, -5F, -2.5F, 1, 5, 8); + leftWingPlate1.setRotationPoint(0F, 0F, 0F); + leftWingPlate1.setTextureSize(128, 128); + leftWingPlate1.mirror = true; + setRotation(leftWingPlate1, 0.2617994F, 0.1745329F, 0F); + + leftWingPlate2 = new ModelRenderer(this, 66, 72); + leftWingPlate2.addBox(5F, -8F, -2F, 1, 3, 10); + leftWingPlate2.setRotationPoint(0F, 0F, 0F); + leftWingPlate2.setTextureSize(128, 128); + leftWingPlate2.mirror = true; + setRotation(leftWingPlate2, 0.2617994F, 0.1745329F, 0F); + + rightWingPlate1 = new ModelRenderer(this, 66, 58); + rightWingPlate1.addBox(-6F, -5F, -2.5F, 1, 5, 8); + rightWingPlate1.setRotationPoint(0F, 0F, 0F); + rightWingPlate1.setTextureSize(128, 128); + rightWingPlate1.mirror = true; + setRotation(rightWingPlate1, 0.2617994F, -0.1745329F, 0F); + rightWingPlate1.mirror = false; + + rightWingPlate2 = new ModelRenderer(this, 66, 72); + rightWingPlate2.addBox(-6F, -8F, -2F, 1, 3, 10); + rightWingPlate2.setRotationPoint(0F, 0F, 0F); + rightWingPlate2.setTextureSize(128, 128); + rightWingPlate2.mirror = true; + setRotation(rightWingPlate2, 0.2617994F, -0.1745329F, 0F); + rightWingPlate2.mirror = false; + + topPlate1 = new ModelRenderer(this, 79, 72); + topPlate1.addBox(-5F, -9F, -0.5F, 10, 1, 5); + topPlate1.setRotationPoint(0F, 0F, 0F); + topPlate1.setTextureSize(128, 128); + topPlate1.mirror = true; + setRotation(topPlate1, 0.4363323F, 0F, 0F); + + topPlate2 = new ModelRenderer(this, 79, 72); + topPlate2.addBox(-5F, -8F, 1.5F, 10, 1, 5); + topPlate2.setRotationPoint(0F, 0F, 0F); + topPlate2.setTextureSize(128, 128); + topPlate2.mirror = true; + setRotation(topPlate2, 0.4363323F, 0F, 0F); + + topPlate3 = new ModelRenderer(this, 79, 72); + topPlate3.addBox(-5F, -7F, 3.5F, 10, 1, 5); + topPlate3.setRotationPoint(0F, 0F, 0F); + topPlate3.setTextureSize(128, 128); + topPlate3.mirror = true; + setRotation(topPlate3, 0.4363323F, 0F, 0F); + + backPlate1 = new ModelRenderer(this, 66, 86); + backPlate1.addBox(-4.5F, -7F, 6F, 6, 4, 1); + backPlate1.setRotationPoint(0F, 0F, 0F); + backPlate1.setTextureSize(128, 128); + backPlate1.mirror = true; + setRotation(backPlate1, 0.2617994F, -0.2617994F, 0F); + backPlate1.mirror = false; + + backPlate2 = new ModelRenderer(this, 66, 86); + backPlate2.addBox(-4.5F, -6.5F, 6F, 6, 4, 1); + backPlate2.setRotationPoint(0F, 2F, 0F); + backPlate2.setTextureSize(128, 128); + backPlate2.mirror = true; + setRotation(backPlate2, 0.2617994F, -0.2617994F, 0F); + backPlate2.mirror = false; + + backPlate3 = new ModelRenderer(this, 66, 86); + backPlate3.addBox(-4.5F, -6F, 6F, 6, 4, 1); + backPlate3.setRotationPoint(0F, 4F, 0F); + backPlate3.setTextureSize(128, 128); + backPlate3.mirror = true; + setRotation(backPlate3, 0.2617994F, -0.2617994F, 0F); + backPlate3.mirror = false; + + backPlate4 = new ModelRenderer(this, 66, 86); + backPlate4.addBox(-1.5F, -7F, 6F, 6, 4, 1); + backPlate4.setRotationPoint(0F, 0F, 0F); + backPlate4.setTextureSize(128, 128); + backPlate4.mirror = true; + setRotation(backPlate4, 0.2617994F, 0.2617994F, 0F); + + backPlate5 = new ModelRenderer(this, 66, 86); + backPlate5.addBox(-1.5F, -7F, 6F, 6, 4, 1); + backPlate5.setRotationPoint(0F, 2.5F, 0F); + backPlate5.setTextureSize(128, 128); + backPlate5.mirror = true; + setRotation(backPlate5, 0.2617994F, 0.2617994F, 0F); + + backPlate6 = new ModelRenderer(this, 66, 86); + backPlate6.addBox(-1.5F, -7F, 6F, 6, 4, 1); + backPlate6.setRotationPoint(0F, 5F, 0F); + backPlate6.setTextureSize(128, 128); + backPlate6.mirror = true; + setRotation(backPlate6, 0.2617994F, 0.2617994F, 0F); + + eyePlate = new ModelRenderer(this, 63, 38); + eyePlate.addBox(-4F, -5F, -4.5F, 8, 2, 1); + eyePlate.setRotationPoint(0F, 0F, 0F); + eyePlate.setTextureSize(128, 128); + eyePlate.mirror = true; + setRotation(eyePlate, 0F, 0F, 0F); + } + /* Right arm */ { rightArmMain = new ModelRenderer(this, 0, 33); @@ -431,14 +592,14 @@ public class ModelOmegaArmour extends ModelBiped /* Left leg */ { - leftLegSidePlate = new ModelRenderer(this, 31, 71); + leftLegSidePlate = new ModelRenderer(this, 40, 93); leftLegSidePlate.addBox(-0.5F, 12F, -3F, 1, 6, 6); leftLegSidePlate.setRotationPoint(-2F, -12F, 0F); leftLegSidePlate.setTextureSize(128, 128); leftLegSidePlate.mirror = true; setRotation(leftLegSidePlate, 0F, 0F, -0.3490659F); - leftLegMain = new ModelRenderer(this, 53, 62); + leftLegMain = new ModelRenderer(this, 40, 93); leftLegMain.addBox(-0.5F, 11F, -2.5F, 5, 9, 5); leftLegMain.setRotationPoint(-2F, -12F, 0F); leftLegMain.setTextureSize(128, 128); @@ -523,7 +684,25 @@ public class ModelOmegaArmour extends ModelBiped this.bipedHeadwear.cubeList.clear(); if(addHelmet) { - + this.bipedHead.addChild(this.leftFacePlate); + this.bipedHead.addChild(this.rightFacePlate); + this.bipedHead.addChild(this.facePlate1); + this.bipedHead.addChild(this.facePlate2); + this.bipedHead.addChild(this.facePlate3); + this.bipedHead.addChild(this.leftWingPlate1); + this.bipedHead.addChild(this.leftWingPlate2); + this.bipedHead.addChild(this.rightWingPlate1); + this.bipedHead.addChild(this.rightWingPlate2); + this.bipedHead.addChild(this.topPlate1); + this.bipedHead.addChild(this.topPlate2); + this.bipedHead.addChild(this.topPlate3); + this.bipedHead.addChild(this.backPlate1); + this.bipedHead.addChild(this.backPlate2); + this.bipedHead.addChild(this.backPlate3); + this.bipedHead.addChild(this.backPlate4); + this.bipedHead.addChild(this.backPlate5); + this.bipedHead.addChild(this.backPlate6); + this.bipedHead.addChild(this.eyePlate); } this.bipedBody.cubeList.clear(); diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java index c625db2f..302441b3 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java @@ -64,7 +64,7 @@ public class RitualEffectFlight extends RitualEffect { continue; } - entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, hasAether ? 100 : 20, 0)); + entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, hasAether ? 30*20 : 20, 0)); entityCount ++; } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java new file mode 100644 index 00000000..8828d78a --- /dev/null +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java @@ -0,0 +1,131 @@ +package WayofTime.alchemicalWizardry.common.rituals; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.FoodStats; +import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; +import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; +import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; +import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; + +public class RitualEffectFullStomach extends RitualEffect +{ + + @Override + public void performEffect(IMasterRitualStone ritualStone) + { + String owner = ritualStone.getOwner(); + + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); + World world = ritualStone.getWorld(); + int x = ritualStone.getXCoord(); + int y = ritualStone.getYCoord(); + int z = ritualStone.getZCoord(); + + if (world.getWorldTime() % 20 != 0) + { + return; + } + + double horizRange = 5; + double vertRange = 5; + + List playerList = SpellHelper.getPlayersInRange(world, x+0.5, y+0.5, z+0.5, horizRange, vertRange); + + if(playerList == null) + { + return; + } + + if (currentEssence < this.getCostPerRefresh() * playerList.size()) + { + SoulNetworkHandler.causeNauseaToPlayer(owner); + } else + { + TileEntity tile = world.getTileEntity(x, y+1, z); + IInventory inventory = null; + if(tile instanceof IInventory) + { + inventory = (IInventory)tile; + }else + { + tile = world.getTileEntity(x, y-1, z); + if(tile instanceof IInventory) + { + inventory = (IInventory)tile; + } + } + + int count = 0; + + if(inventory != null) + { + for(EntityPlayer player : playerList) + { + FoodStats foodStats = player.getFoodStats(); + float satLevel = foodStats.getSaturationLevel(); + + for(int i=0; i getRitualComponentList() + { + ArrayList animalGrowthRitual = new ArrayList(); + animalGrowthRitual.add(new RitualComponent(0, 0, 2, RitualComponent.DUSK)); + animalGrowthRitual.add(new RitualComponent(2, 0, 0, RitualComponent.DUSK)); + animalGrowthRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK)); + animalGrowthRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.DUSK)); + animalGrowthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.WATER)); + animalGrowthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.WATER)); + animalGrowthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.WATER)); + animalGrowthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.WATER)); + animalGrowthRitual.add(new RitualComponent(1, 0, 2, RitualComponent.EARTH)); + animalGrowthRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.EARTH)); + animalGrowthRitual.add(new RitualComponent(1, 0, -2, RitualComponent.EARTH)); + animalGrowthRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.EARTH)); + animalGrowthRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR)); + animalGrowthRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR)); + animalGrowthRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR)); + animalGrowthRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR)); + return animalGrowthRitual; + } +} diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java index 8b2ec9b3..91d24751 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java @@ -28,16 +28,8 @@ public class RitualEffectGrowth extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -105,8 +97,7 @@ public class RitualEffectGrowth extends RitualEffect if(hasVirtus) this.canDrainReagent(ritualStone, ReagentRegistry.virtusReagent, virtusDrain, true); - data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*flag); } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java index 4882a6e5..f85d611e 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java @@ -16,6 +16,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; public class RitualEffectHarvest extends RitualEffect @@ -24,16 +25,8 @@ public class RitualEffectHarvest extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -78,8 +71,7 @@ public class RitualEffectHarvest extends RitualEffect if (flag > 0) { - data.currentEssence = currentEssence - this.getCostPerRefresh() * Math.min(maxCount, flag); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * Math.min(maxCount, flag)); } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java index 2071cc91..a0c86f27 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java @@ -29,16 +29,8 @@ public class RitualEffectHealing extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -128,8 +120,7 @@ public class RitualEffectHealing extends RitualEffect { this.canDrainReagent(ritualStone, ReagentRegistry.praesidiumReagent, praesidiumDrain, true); } - data.currentEssence = currentEssence - cost * entityCount; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, cost * entityCount); } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java index 913d385d..bc585a82 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectItemSuction.java @@ -27,22 +27,14 @@ public class RitualEffectItemSuction extends RitualEffect { public static final int reductusDrain = 1; - public static final int timeDelayMin = 10; + public static final int timeDelayMin = 60; @Override public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); @@ -150,8 +142,7 @@ public class RitualEffectItemSuction extends RitualEffect if(count>0) { - data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*Math.min(count, 100)); return; } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java index e1689bad..69ffe1a0 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectJumping.java @@ -26,16 +26,8 @@ public class RitualEffectJumping extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -87,7 +79,7 @@ public class RitualEffectJumping extends RitualEffect { if(!livingEntity.isPotionActive(AlchemicalWizardry.customPotionFeatherFall)) { - livingEntity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFeatherFall.id, 3 * 20, 0)); + livingEntity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFeatherFall.id, 5 * 20, 0)); this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, terraeDrain, true); } } @@ -95,8 +87,7 @@ public class RitualEffectJumping extends RitualEffect if (flag > 0) { - data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*flag); } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java index 9ad15e77..96576e8b 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLava.java @@ -37,63 +37,13 @@ public class RitualEffectLava extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); int z = ritualStone.getZCoord(); - Block block = world.getBlock(x, y + 1, z); - - if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer)) - { - if (currentEssence < this.getCostPerRefresh()) - { - SoulNetworkHandler.causeNauseaToPlayer(owner); - } else - { - for (int i = 0; i < 10; i++) - { - SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z); - } - - world.setBlock(x, y + 1, z, Blocks.lava, 0, 3); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - }else - { - boolean hasSanctus = this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, false); - if(!hasSanctus) - { - return; - } - TileEntity tile = world.getTileEntity(x, y + 1, z); - if(tile instanceof IFluidHandler) - { - int amount = ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), false); - if(amount >= 1000) - { - ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), true); - - this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, true); - - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); - } - } - } - - if(this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, false) && SoulNetworkHandler.canSyphonFromOnlyNetwork(owner, fireFuseCost)) { @@ -120,6 +70,7 @@ public class RitualEffectLava extends RitualEffect continue; } } + entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFireFuse.id,100,0)); this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, true); SoulNetworkHandler.syphonFromNetwork(owner, fireFuseCost); @@ -127,6 +78,47 @@ public class RitualEffectLava extends RitualEffect } } + Block block = world.getBlock(x, y + 1, z); + + if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer)) + { + if (currentEssence < this.getCostPerRefresh()) + { + SoulNetworkHandler.causeNauseaToPlayer(owner); + } else + { + for (int i = 0; i < 10; i++) + { + SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z); + } + + world.setBlock(x, y + 1, z, Blocks.lava, 0, 3); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); + } + }else + { + boolean hasSanctus = this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, false); + if(!hasSanctus) + { + return; + } + TileEntity tile = world.getTileEntity(x, y + 1, z); + if(tile instanceof IFluidHandler) + { + int amount = ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), false); + if(amount >= 1000) + { + ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), true); + + this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, true); + + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); + } + } + } + + + } @Override diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java index a70e8a81..cde539ff 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLeap.java @@ -30,16 +30,8 @@ public class RitualEffectLeap extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -82,7 +74,7 @@ public class RitualEffectLeap extends RitualEffect double motionY = hasTerrae ? 0.6 : 1.2; double speed = hasAether ? 6.0 : 3.0; - if (!(hasTenebrae || hasSanctus) && livingEntity instanceof EntityPlayer) + if (!(hasTenebrae || hasSanctus)|| livingEntity instanceof EntityPlayer) { livingEntity.motionY = motionY; livingEntity.fallDistance = 0; @@ -173,8 +165,7 @@ public class RitualEffectLeap extends RitualEffect if (flag > 0) { - data.currentEssence = currentEssence - this.getCostPerRefresh() * flag; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * flag); } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java index b7b93f4d..fab7e120 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectLifeConduit.java @@ -15,6 +15,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; @@ -24,16 +25,8 @@ public class RitualEffectLifeConduit extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -90,7 +83,7 @@ public class RitualEffectLifeConduit extends RitualEffect { entityOwner.setHealth(2.0f); } - data.currentEssence = currentEssence - fillAmount*2; + SoulNetworkHandler.syphonFromNetwork(owner, fillAmount*2); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java index a9eeaf71..01e289eb 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectMagnetic.java @@ -31,16 +31,8 @@ public class RitualEffectMagnetic extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -114,8 +106,7 @@ public class RitualEffectMagnetic extends RitualEffect //TODO //Allow swapping code. This means the searched block is an ore. BlockTeleposer.swapBlocks(world, world, x + i, j, z + k, xRep, yRep, zRep); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); if(hasPotentia) { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java index 99c60d07..2099ca3d 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSoulBound.java @@ -19,6 +19,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; public class RitualEffectSoulBound extends RitualEffect @@ -27,16 +28,8 @@ public class RitualEffectSoulBound extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -91,8 +84,7 @@ public class RitualEffectSoulBound extends RitualEffect } } - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, getCostPerRefresh()); } else { ritualStone.setCooldown(ritualStone.getCooldown() - 1); diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSpawnWard.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSpawnWard.java index b7162373..0d69aa0e 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSpawnWard.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSpawnWard.java @@ -24,16 +24,8 @@ public class RitualEffectSpawnWard extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -91,8 +83,7 @@ public class RitualEffectSpawnWard extends RitualEffect } - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java index 2ec9a0f6..70985878 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSummonMeteor.java @@ -10,10 +10,12 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.server.MinecraftServer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; @@ -24,16 +26,8 @@ public class RitualEffectSummonMeteor extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -70,20 +64,36 @@ public class RitualEffectSummonMeteor extends RitualEffect int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem()); EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID); meteor.motionY = -1.0f; + + if(this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, 1000, true)) + { + meteor.hasTerrae = true; + } + if(this.canDrainReagent(ritualStone, ReagentRegistry.orbisTerraeReagent, 1000, true)) + { + meteor.hasOrbisTerrae = true; + } + if(this.canDrainReagent(ritualStone, ReagentRegistry.crystallosReagent, 1000, true)) + { + meteor.hasCrystallos = true; + } + if(this.canDrainReagent(ritualStone, ReagentRegistry.incendiumReagent, 1000, true)) + { + meteor.hasIncendium = true; + } + if(this.canDrainReagent(ritualStone, ReagentRegistry.tenebraeReagent, 1000, true)) + { + meteor.hasTennebrae = true; + } + entityItem.setDead(); world.spawnEntityInWorld(meteor); ritualStone.setActive(false); break; } } - -// EnergyBlastProjectile proj = new EnergyBlastProjectile(world, x, y+20, z); -// proj.motionX = 0.0d; -// proj.motionZ = 0.0d; -// proj.motionY = -1.0d; -// world.spawnEntityInWorld(proj); - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java index 7eb5296e..9a93eb98 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectSupression.java @@ -16,6 +16,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; +import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; @@ -28,16 +29,8 @@ public class RitualEffectSupression extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -105,8 +98,7 @@ public class RitualEffectSupression extends RitualEffect } - data.currentEssence = currentEssence - this.getCostPerRefresh()*costMod; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*costMod); if(world.getWorldTime() % 100 == 0) { diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java index cb4d3168..0c4b3455 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectUnbinding.java @@ -33,16 +33,8 @@ public class RitualEffectUnbinding extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -171,8 +163,7 @@ public class RitualEffectUnbinding extends RitualEffect if(drain) { - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectVeilOfEvil.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectVeilOfEvil.java index d6232bc1..362b608f 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectVeilOfEvil.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectVeilOfEvil.java @@ -24,16 +24,8 @@ public class RitualEffectVeilOfEvil extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -91,8 +83,7 @@ public class RitualEffectVeilOfEvil extends RitualEffect } - data.currentEssence = currentEssence - this.getCostPerRefresh(); - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java index 2f6bef8f..7ec6e98b 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectWellOfSuffering.java @@ -30,16 +30,8 @@ public class RitualEffectWellOfSuffering extends RitualEffect public void performEffect(IMasterRitualStone ritualStone) { String owner = ritualStone.getOwner(); - World worldSave = MinecraftServer.getServer().worldServers[0]; - LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner); - - if (data == null) - { - data = new LifeEssenceNetwork(owner); - worldSave.setItemData(owner, data); - } - - int currentEssence = data.currentEssence; + + int currentEssence = SoulNetworkHandler.getCurrentEssence(owner); World world = ritualStone.getWorld(); int x = ritualStone.getXCoord(); int y = ritualStone.getYCoord(); @@ -99,8 +91,7 @@ public class RitualEffectWellOfSuffering extends RitualEffect } } - data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; - data.markDirty(); + SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * entityCount); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java index 5d3fcb7b..56a615e6 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorParadigm.java @@ -2,6 +2,7 @@ package WayofTime.alchemicalWizardry.common.summoning.meteor; import java.util.ArrayList; import java.util.List; +import java.util.Random; import net.minecraft.block.Block; import net.minecraft.init.Blocks; @@ -16,6 +17,8 @@ public class MeteorParadigm public ItemStack focusStack; public int radius; public static int maxChance = 1000; + + public static Random rand = new Random(); public MeteorParadigm(ItemStack focusStack, int radius) { @@ -34,17 +37,51 @@ public class MeteorParadigm } } - public void createMeteorImpact(World world, int x, int y, int z) + public void createMeteorImpact(World world, int x, int y, int z, boolean[] flags) { - world.createExplosion(null, x, y, z, radius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks); - - for (int i = -radius; i <= radius; i++) + boolean hasTerrae = false; + boolean hasOrbisTerrae = false; + boolean hasCrystallos = false; + boolean hasIncendium = false; + boolean hasTennebrae = false; + + if(flags != null && flags.length >= 5) { - for (int j = -radius; j <= radius; j++) + hasTerrae = flags[0]; + hasOrbisTerrae = flags[1]; + hasCrystallos = flags[2]; + hasIncendium = flags[3]; + hasTennebrae = flags[4]; + } + + int newRadius = radius; + int chance = maxChance; + + if(hasOrbisTerrae) + { + newRadius += 2; + chance += 200; + }else if(hasTerrae) + { + newRadius += 1; + chance += 100; + } + + world.createExplosion(null, x, y, z, newRadius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks); + + float iceChance = hasCrystallos ? 1 : 0; + float soulChance = hasIncendium ? 1 : 0; + float obsidChance = hasTennebrae ? 1 : 0; + + float totalChance = iceChance + soulChance + obsidChance; + + for (int i = -newRadius; i <= newRadius; i++) + { + for (int j = -newRadius; j <= newRadius; j++) { - for (int k = -radius; k <= radius; k++) + for (int k = -newRadius; k <= newRadius; k++) { - if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) + if (i * i + j * j + k * k >= (newRadius + 0.50f) * (newRadius + 0.50f)) { continue; } @@ -54,7 +91,7 @@ public class MeteorParadigm continue; } - int randNum = world.rand.nextInt(maxChance); + int randNum = world.rand.nextInt(chance); boolean hasPlacedBlock = false; for (MeteorParadigmComponent mpc : componentList) @@ -77,7 +114,44 @@ public class MeteorParadigm if (!hasPlacedBlock) { - world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3); + float randChance = rand.nextFloat() * totalChance; + + if(randChance < iceChance) + { + world.setBlock(x + i, y + j, z + k, Blocks.ice, 0, 3); + }else + { + randChance-=iceChance; + + if(randChance < soulChance) + { + switch(rand.nextInt(3)) + { + case 0: + world.setBlock(x + i, y + j, z + k, Blocks.soul_sand, 0, 3); + break; + case 1: + world.setBlock(x + i, y + j, z + k, Blocks.glowstone, 0, 3); + break; + case 2: + world.setBlock(x + i, y + j, z + k, Blocks.netherrack, 0, 3); + break; + } + }else + { + randChance-=soulChance; + + if(randChance < obsidChance) + { + world.setBlock(x + i, y + j, z + k, Blocks.obsidian, 0, 3); + }else + { + randChance-=obsidChance; + + world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3); + } + } + } } } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java index 4df585c1..eb26421a 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/summoning/meteor/MeteorRegistry.java @@ -26,11 +26,11 @@ public class MeteorRegistry } } - public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID) + public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID, boolean[] flags) { if (paradigmID < paradigmList.size()) { - paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z); + paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z, flags); } } diff --git a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java index 0113303f..946b1ddb 100644 --- a/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java +++ b/1.7.10/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TETeleposer.java @@ -191,6 +191,7 @@ public class TETeleposer extends TileEntity implements IInventory public void updateEntity() { super.updateEntity(); + EntityPlayer d; if (worldObj.isRemote) { @@ -281,6 +282,7 @@ public class TETeleposer extends TileEntity implements IInventory entityplayer1 = (EntityLivingBase) iterator1.next(); entityplayer1.worldObj = worldF; entityplayer1.setPositionAndUpdate(entityplayer1.posX - this.xCoord + xf, entityplayer1.posY - this.yCoord + yf, entityplayer1.posZ - this.zCoord + zf); + //entityplayer1.travelToDimension(worldF.provider.dimensionId); } while (iterator2.hasNext()) @@ -288,6 +290,7 @@ public class TETeleposer extends TileEntity implements IInventory entityplayer2 = (EntityLivingBase) iterator2.next(); entityplayer2.worldObj = worldF; entityplayer2.setPositionAndUpdate(entityplayer2.posX + this.xCoord - xf, entityplayer2.posY + this.yCoord - yf, entityplayer2.posZ + this.zCoord - zf); + //entityplayer2.travelToDimension(worldObj.provider.dimensionId); } } } diff --git a/1.7.10/main/resources/assets/alchemicalwizardry/models/armor/BloodArmour_WIP.png b/1.7.10/main/resources/assets/alchemicalwizardry/models/armor/BloodArmour_WIP.png index 0225c61e..9b19c5fc 100644 Binary files a/1.7.10/main/resources/assets/alchemicalwizardry/models/armor/BloodArmour_WIP.png and b/1.7.10/main/resources/assets/alchemicalwizardry/models/armor/BloodArmour_WIP.png differ