Pushing before merging

This commit is contained in:
WayofTime 2014-10-09 07:48:45 -04:00
parent 297567a417
commit 1d99b70f14
31 changed files with 588 additions and 262 deletions

View file

@ -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);
}

View file

@ -44,6 +44,18 @@ public class AlchemicalWizardryEventHooks
public static Map<Integer, List<CoordAndRange>> respawnMap = new HashMap();
public static Map<Integer, List<CoordAndRange>> 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)
{

View file

@ -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)

View file

@ -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();
}

View file

@ -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);

View file

@ -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);

View file

@ -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)
{

View file

@ -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;

View file

@ -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();

View file

@ -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 ++;
}

View file

@ -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<EntityPlayer> 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<inventory.getSizeInventory(); i++)
{
ItemStack stack = inventory.getStackInSlot(i);
if(stack != null && stack.getItem() instanceof ItemFood)
{
ItemFood foodItem = (ItemFood)stack.getItem();
int regularHeal = foodItem.func_150905_g(stack);
float saturatedHeal = foodItem.func_150906_h(stack);
if(saturatedHeal + satLevel <= 20)
{
foodStats.setFoodSaturationLevel(saturatedHeal + satLevel);
inventory.decrStackSize(i, 1);
count++;
break;
}
}
}
}
}
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * count);
}
}
@Override
public int getCostPerRefresh()
{
return 100;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> 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;
}
}

View file

@ -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);
}
}
}

View file

@ -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));
}
}
}

View file

@ -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);
}
}
}

View file

@ -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;
}
}

View file

@ -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);
}
}
}

View file

@ -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

View file

@ -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);
}
}
}

View file

@ -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);
}
}

View file

@ -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)
{

View file

@ -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);

View file

@ -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());
}
}

View file

@ -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());
}
}

View file

@ -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)
{

View file

@ -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());
}
}

View file

@ -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());
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}
}
}
}
}

View file

@ -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);
}
}

View file

@ -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);
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 18 KiB