1.7.10 commit of I-still-can't-do-any-branches

This commit is contained in:
WayofTime 2014-06-27 19:43:09 -04:00
parent 6aec0a87ea
commit cabc296b21
763 changed files with 64290 additions and 0 deletions

View file

@ -0,0 +1,120 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectAnimalGrowth extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % 20 != 0)
{
return;
}
int d0 = 2;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 3), (double) (z + 1)).expand(d0, 0, d0);
List list = world.getEntitiesWithinAABB(EntityAgeable.class, axisalignedbb);
Iterator iterator1 = list.iterator();
EntityAgeable entity;
int entityCount = 0;
boolean flag = false;
while (iterator1.hasNext())
{
entity = (EntityAgeable) iterator1.next();
entityCount++;
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
Iterator iterator2 = list.iterator();
entityCount = 0;
while (iterator2.hasNext())
{
entity = (EntityAgeable) iterator2.next();
if (entity.getGrowingAge() < 0)
{
entity.addGrowth(5);
entityCount++;
}
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
return 2;
}
@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

@ -0,0 +1,100 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectApiaryOverclock extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
// TileEntity tile = world.getTileEntity(x, y+1, z);
//
// try{
// if(tile instanceof IBeeHousing && tile.getClass().getName().contains("Apiary"))
// {
// for (int i = 0; i < 10; i++)
// {
// PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(x, y+1, z, (short) 3));
// }
//
// for(int i=0; i<9; i++)
// {
// tile.updateEntity();
// }
//
// data.currentEssence = currentEssence - this.getCostPerRefresh();
// data.markDirty();
// }
// }catch (Exception e)
// {
//
// }
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 10;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> apiaryRitual = new ArrayList();
apiaryRitual.add(new RitualComponent(1,0,0, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(-1,0,0, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(0,0,-1, RitualComponent.DUSK));
apiaryRitual.add(new RitualComponent(0,0,1, RitualComponent.DUSK));
return apiaryRitual;
}
}

View file

@ -0,0 +1,431 @@
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.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
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.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
import WayofTime.alchemicalWizardry.common.tileEntity.TEWritingTable;
public class RitualEffectAutoAlchemy extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh()*6)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int flag = 0;
TileEntity topEntity = world.getTileEntity(x, y+1, z);
if(!(topEntity instanceof TEAltar))
{
return;
}
TEAltar tileAltar = (TEAltar)topEntity;
ItemStack targetStack = tileAltar.getStackInSlot(0);
if(targetStack == null)
{
return;
}
ItemStack[] recipe = AlchemyRecipeRegistry.getRecipeForItemStack(targetStack);
if(recipe!=null)
{
TEWritingTable alchemyEntity;
IInventory outputInv = null;
IInventory inputInv1 = null;
IInventory inputInv2 = null;
TileEntity northEntity = world.getTileEntity(x,y,z-1);
TileEntity southEntity = world.getTileEntity(x,y,z+1);
TileEntity eastEntity = world.getTileEntity(x+1,y,z);
TileEntity westEntity = world.getTileEntity(x-1,y,z);
if(northEntity instanceof TEWritingTable)
{
alchemyEntity = (TEWritingTable)northEntity;
if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable))
{
outputInv = (IInventory)southEntity;
}
if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable))
{
inputInv1 = (IInventory)eastEntity;
}
if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable))
{
inputInv2 = (IInventory)westEntity;
}
}else if(southEntity instanceof TEWritingTable)
{
alchemyEntity = (TEWritingTable)southEntity;
if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable))
{
outputInv = (IInventory)northEntity;
}
if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable))
{
inputInv1 = (IInventory)eastEntity;
}
if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable))
{
inputInv2 = (IInventory)westEntity;
}
}else if(eastEntity instanceof TEWritingTable)
{
alchemyEntity = (TEWritingTable)eastEntity;
if(westEntity instanceof IInventory && !(westEntity instanceof TEWritingTable))
{
outputInv = (IInventory)westEntity;
}
if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable))
{
inputInv1 = (IInventory)northEntity;
}
if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable))
{
inputInv2 = (IInventory)southEntity;
}
}else if(westEntity instanceof TEWritingTable)
{
alchemyEntity = (TEWritingTable)westEntity;
if(eastEntity instanceof IInventory && !(eastEntity instanceof TEWritingTable))
{
outputInv = (IInventory)eastEntity;
}
if(northEntity instanceof IInventory && !(northEntity instanceof TEWritingTable))
{
inputInv1 = (IInventory)northEntity;
}
if(southEntity instanceof IInventory && !(southEntity instanceof TEWritingTable))
{
inputInv2 = (IInventory)southEntity;
}
}else
{
return;
}
if(outputInv!=null)
{
ItemStack outputStack = alchemyEntity.getStackInSlot(6);
if(outputStack!=null)
{
for(int i=0; i<outputInv.getSizeInventory(); i++)
{
ItemStack curStack = outputInv.getStackInSlot(i);
if(curStack==null)
{
ItemStack copyStack = outputStack.copy();
copyStack.stackSize = 1;
outputStack.stackSize--;
if(outputStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(6, null);
}else
{
alchemyEntity.setInventorySlotContents(6, outputStack);
}
outputInv.setInventorySlotContents(i, copyStack);
flag++;
break;
}
else if(curStack.isItemEqual(outputStack)&&curStack.stackSize<curStack.getMaxStackSize())
{
outputStack.stackSize--;
if(outputStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(6, null);
}else
{
alchemyEntity.setInventorySlotContents(6, outputStack);
}
curStack.stackSize++;
outputInv.setInventorySlotContents(i, curStack);
flag++;
break;
}
}
}
for(int i=0; i<5;i++)
{
ItemStack recItem;
if(recipe.length<=i)
{
recItem = null;
}
else
{
recItem = recipe[i];
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if((recItem==null&&alchStack!=null) || (alchStack!=null&&!(areItemStacksEqualWithWildcard(recItem,alchStack))))
{
for(int j=0;j<outputInv.getSizeInventory();j++)
{
ItemStack curStack = outputInv.getStackInSlot(j);
if(curStack==null)
{
ItemStack copyStack = alchStack.copy();
copyStack.stackSize = 1;
alchStack.stackSize--;
if(alchStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(i+1, null);
}else
{
alchemyEntity.setInventorySlotContents(i+1, alchStack);
}
outputInv.setInventorySlotContents(j, copyStack);
flag++;
break;
}
else if(curStack.isItemEqual(alchStack)&&curStack.stackSize<curStack.getMaxStackSize())
{
alchStack.stackSize--;
if(alchStack.stackSize<=0)
{
alchemyEntity.setInventorySlotContents(i+1, null);
}else
{
alchemyEntity.setInventorySlotContents(i+1, alchStack);
}
curStack.stackSize++;
outputInv.setInventorySlotContents(j, curStack);
flag++;
break;
}
}
continue;
}
}
}
if(world.getWorldTime()%10 == 0)
{
if(flag==0&&inputInv1!=null)
{
for(int i=0;i<recipe.length;i++)
{
ItemStack recItem = recipe[i];
if(recItem==null)
{
continue;
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if(alchStack!=null&&((!areItemStacksEqualWithWildcard(recItem,alchStack))||alchStack.stackSize>=alchStack.getMaxStackSize()))
{
continue;
}
for(int j=0;j<inputInv1.getSizeInventory();j++)
{
ItemStack curItem = inputInv1.getStackInSlot(j);
if(curItem==null)
{
continue;
}
if(areItemStacksEqualWithWildcard(recItem,curItem))
{
if(alchStack==null)
{
ItemStack copyStack = recItem.copy();
copyStack.stackSize = 1;
alchemyEntity.setInventorySlotContents(i+1, copyStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv1.setInventorySlotContents(j, null);
}else
{
inputInv1.setInventorySlotContents(j, curItem);
}
flag++;
break;
}else
{
alchStack.stackSize++;
alchemyEntity.setInventorySlotContents(i+1, alchStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv1.setInventorySlotContents(j, null);
}else
{
inputInv1.setInventorySlotContents(j, curItem);
}
flag++;
break;
}
}
}
}
}
if(flag==0&&inputInv2!=null)
{
for(int i=0;i<recipe.length;i++)
{
ItemStack recItem = recipe[i];
if(recItem==null)
{
continue;
}
ItemStack alchStack = alchemyEntity.getStackInSlot(i+1);
if(alchStack!=null&&((!areItemStacksEqualWithWildcard(recItem,alchStack))||alchStack.stackSize>=alchStack.getMaxStackSize()))
{
continue;
}
for(int j=0;j<inputInv2.getSizeInventory();j++)
{
ItemStack curItem = inputInv2.getStackInSlot(j);
if(curItem==null)
{
continue;
}
if(areItemStacksEqualWithWildcard(recItem,curItem))
{
if(alchStack==null)
{
ItemStack copyStack = recItem.copy();
copyStack.stackSize = 1;
alchemyEntity.setInventorySlotContents(i+1, copyStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv2.setInventorySlotContents(j, null);
}else
{
inputInv2.setInventorySlotContents(j, curItem);
}
flag++;
break;
}else
{
alchStack.stackSize++;
alchemyEntity.setInventorySlotContents(i+1, alchStack);
curItem.stackSize--;
if(curItem.stackSize<=0)
{
inputInv2.setInventorySlotContents(j, null);
}else
{
inputInv2.setInventorySlotContents(j, curItem);
}
flag++;
break;
}
}
}
}
}
}
}
if (flag>0)
{
world.markBlockForUpdate(x, y, z+1);
world.markBlockForUpdate(x, y, z-1);
world.markBlockForUpdate(x+1, y, z);
world.markBlockForUpdate(x-1, y, z);
data.currentEssence = currentEssence - this.getCostPerRefresh()*flag;
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 10;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> autoAlchemyRitual = new ArrayList();
autoAlchemyRitual.add(new RitualComponent(1,0,1, RitualComponent.DUSK));
autoAlchemyRitual.add(new RitualComponent(1,0,-1, RitualComponent.DUSK));
autoAlchemyRitual.add(new RitualComponent(-1,0,-1, RitualComponent.DUSK));
autoAlchemyRitual.add(new RitualComponent(-1,0,1, RitualComponent.DUSK));
autoAlchemyRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER));
autoAlchemyRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER));
autoAlchemyRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER));
autoAlchemyRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER));
autoAlchemyRitual.add(new RitualComponent(-3,0,-2, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(-2,0,-3, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(-3,0,2, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(-2,0,3, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(3,0,-2, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(2,0,-3, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(3,0,2, RitualComponent.FIRE));
autoAlchemyRitual.add(new RitualComponent(2,0,3, RitualComponent.FIRE));
return autoAlchemyRitual;
}
public boolean areItemStacksEqualWithWildcard(ItemStack recipeStack, ItemStack comparedStack)
{
return recipeStack.isItemEqual(comparedStack) || (recipeStack.getItemDamage() == OreDictionary.WILDCARD_VALUE && recipeStack.getItem() == comparedStack.getItem());
}
}

View file

@ -0,0 +1,448 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import WayofTime.alchemicalWizardry.ModBlocks;
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.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
public class RitualEffectBiomeChanger extends RitualEffect
{
@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 cooldown = ritualStone.getCooldown();
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (cooldown > 0)
{
ritualStone.setCooldown(cooldown - 1);
if (world.rand.nextInt(15) == 0)
{
world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3), y + 1, z - 1 + world.rand.nextInt(3)));
}
return;
}
int currentEssence = data.currentEssence;
int range = 10;
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
boolean[][] boolList = new boolean[range * 2 + 1][range * 2 + 1];
for (int i = 0; i < 2 * range + 1; i++)
{
for (int j = 0; j < 2 * range + 1; j++)
{
boolList[i][j] = false;
}
}
boolList[range][range] = true;
boolean isReady = false;
while (!isReady)
{
isReady = true;
for (int i = 0; i < 2 * range + 1; i++)
{
for (int j = 0; j < 2 * range + 1; j++)
{
if (boolList[i][j])
{
if (i - 1 >= 0 && !boolList[i - 1][j])
{
Block block = world.getBlock(x - range + i - 1, y + 1, z - range + j);
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
{
boolList[i - 1][j] = true;
isReady = false;
}
}
if (j - 1 >= 0 && !boolList[i][j - 1])
{
Block block = world.getBlock(x - range + i, y + 1, z - range + j - 1);
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
{
boolList[i][j - 1] = true;
isReady = false;
}
}
if (i + 1 <= 2 * range && !boolList[i + 1][j])
{
Block block = world.getBlock(x - range + i + 1, y + 1, z - range + j);
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
{
boolList[i + 1][j] = true;
isReady = false;
}
}
if (j + 1 <= 2 * range && !boolList[i][j + 1])
{
Block block = world.getBlock(x - range + i, y + 1, z - range + j + 1);
if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
{
boolList[i][j + 1] = true;
isReady = false;
}
}
}
}
}
}
float temperature = 0.5f;
float humidity = 0.5f;
float acceptableRange = 0.1f;
for (int i = -1; i <= 1; i++)
{
for (int j = -1; j <= 1; j++)
{
if (i == 0 && j == 0)
{
continue;
}
boolean isItemConsumed = false;
TileEntity tileEntity = world.getTileEntity(x + i, y, z + j);
if (!(tileEntity instanceof TEPlinth))
{
continue;
}
TEPlinth tilePlinth = (TEPlinth) tileEntity;
ItemStack itemStack = tilePlinth.getStackInSlot(0);
if (itemStack != null)
{
Item itemTest = itemStack.getItem();
if (itemTest != null)
{
if (itemTest instanceof ItemBlock)
{
Block item = ((ItemBlock)itemTest).field_150939_a;
if (item == (Blocks.sand))
{
humidity -= 0.1f;
isItemConsumed = true;
} else if (item == (Blocks.lapis_block))
{
humidity += 0.4f;
isItemConsumed = true;
} else if (item == (Blocks.sand))
{
humidity -= 0.1f;
isItemConsumed = true;
} else if (item == (Blocks.sandstone))
{
humidity -= 0.2f;
isItemConsumed = true;
} else if (item == (Blocks.netherrack))
{
humidity -= 0.4f;
isItemConsumed = true;
} else if (item == (Blocks.coal_block))
{
temperature += 0.2f;
isItemConsumed = true;
} else if (item == (Blocks.ice))
{
temperature -= 0.4f;
isItemConsumed = true;
} else if (item == (Blocks.snow))
{
temperature -= 0.2f;
isItemConsumed = true;
}
} else if (itemTest.equals(Items.dye) && itemStack.getItemDamage() == 4)
{
humidity += 0.1f;
isItemConsumed = true;
} else if (itemTest.equals(Items.lava_bucket))
{
temperature += 0.4f;
isItemConsumed = true;
} else if (itemTest.equals(Items.water_bucket))
{
humidity += 0.2f;
isItemConsumed = true;
} else if (itemTest.equals(Items.coal))
{
temperature += 0.1f;
isItemConsumed = true;
} else if (itemTest.equals(Items.snowball))
{
temperature -= 0.1f;
isItemConsumed = true;
}
}
}
if (isItemConsumed)
{
tilePlinth.setInventorySlotContents(0, null);
world.markBlockForUpdate(x + i, y, z + j);
world.addWeatherEffect(new EntityLightningBolt(world, x + i, y + 1, z + j));
}
}
}
boolean wantsSnow = false;
boolean wantsRain = true;
int biomeID = 1;
BiomeGenBase[] biomeList = BiomeGenBase.getBiomeGenArray();
int iteration = 0;
for (BiomeGenBase biome : biomeList)
{
if (biome == null)
{
continue;
}
float temp = biome.temperature;
float rainfall = biome.rainfall;
temperature = Math.min(2.0f, Math.max(0.0f, temperature));
humidity = Math.min(2.0f, Math.max(0.0f, humidity));
if (Math.abs(rainfall - humidity) < acceptableRange && Math.abs(temperature - temp) < acceptableRange)
{
//if(biome.getEnableSnow()==wantsSnow)
{
biomeID = iteration;
break;
}
}
iteration++;
}
for (int i = 0; i < 2 * range + 1; i++)
{
for (int j = 0; j < 2 * range + 1; j++)
{
//Testing of traversal of boolean matrix
if (boolList[i][j])
{
Chunk chunk = world.getChunkFromBlockCoords(x - range + i, z - range + j);
byte[] byteArray = chunk.getBiomeArray();
int moduX = (x - range + i) % 16;
int moduZ = (z - range + j) % 16;
if (moduX < 0)
{
moduX = moduX + 16;
}
if (moduZ < 0)
{
moduZ = moduZ + 16;
}
byteArray[moduZ * 16 + moduX] = (byte) biomeID;
chunk.setBiomeArray(byteArray);
//world.setBlock(x-range+i, y+1, z-range+j, Block.blockClay);
}
}
}
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
ritualStone.setActive(false);
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public int getInitialCooldown()
{
return 200;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> biomeChangerRitual = new ArrayList();
biomeChangerRitual.add(new RitualComponent(1, 0, -2, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(1, 0, 2, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(3, 0, -3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(4, 0, -5, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(5, 0, -4, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(3, 0, 3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(4, 0, 5, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(5, 0, 4, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(0, 0, -5, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-1, 0, -6, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(1, 0, -6, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-1, 0, -8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(0, 0, -8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(1, 0, -8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(-1, 0, -10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(0, 0, -10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(1, 0, -10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(0, 0, 5, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-1, 0, 6, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(1, 0, 6, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-1, 0, 8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(0, 0, 8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(1, 0, 8, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(-1, 0, 10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(0, 0, 10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(1, 0, 10, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-6, 0, -1, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-6, 0, 1, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-8, 0, -1, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(-8, 0, 1, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(-10, 0, -1, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-10, 0, 0, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-10, 0, 1, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(5, 0, 0, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(6, 0, -1, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(6, 0, 1, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(8, 0, -1, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(8, 0, 0, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(8, 0, 1, RitualComponent.BLANK));
biomeChangerRitual.add(new RitualComponent(10, 0, -1, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(10, 0, 0, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(10, 0, 1, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(6, 0, -6, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(6, 0, -7, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(7, 0, -6, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(7, 0, -5, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(5, 0, -7, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(8, 0, -5, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(8, 0, -4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(9, 0, -4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(5, 0, -8, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(4, 0, -8, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(4, 0, -9, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-6, 0, 6, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-6, 0, 7, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-7, 0, 6, RitualComponent.AIR));
biomeChangerRitual.add(new RitualComponent(-7, 0, 5, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-5, 0, 7, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-8, 0, 5, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-8, 0, 4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-9, 0, 4, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-5, 0, 8, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-4, 0, 8, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(-4, 0, 9, RitualComponent.EARTH));
biomeChangerRitual.add(new RitualComponent(6, 0, 6, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(6, 0, 7, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(7, 0, 6, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(7, 0, 5, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(5, 0, 7, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(8, 0, 5, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(8, 0, 4, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(9, 0, 4, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(5, 0, 8, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(4, 0, 8, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(4, 0, 9, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-6, 0, -6, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-6, 0, -7, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-7, 0, -6, RitualComponent.FIRE));
biomeChangerRitual.add(new RitualComponent(-7, 0, -5, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-5, 0, -7, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-8, 0, -5, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-8, 0, -4, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-9, 0, -4, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-5, 0, -8, RitualComponent.DUSK));
biomeChangerRitual.add(new RitualComponent(-4, 0, -8, RitualComponent.WATER));
biomeChangerRitual.add(new RitualComponent(-4, 0, -9, RitualComponent.WATER));
return biomeChangerRitual;
}
}

View file

@ -0,0 +1,127 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectContainment extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int d0 = 5;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0);
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityLivingBase livingEntity;
boolean flag = false;
while (iterator.hasNext())
{
livingEntity = (EntityLivingBase) iterator.next();
if (livingEntity instanceof EntityPlayer)
{
continue;
}
//if (!(livingEntity.getEntityName().equals(owner)))
{
double xDif = livingEntity.posX - (x + 0.5);
double yDif = livingEntity.posY - (y + 3);
double zDif = livingEntity.posZ - (z + 0.5);
livingEntity.motionX = -0.05 * xDif;
livingEntity.motionY = -0.05 * yDif;
livingEntity.motionZ = -0.05 * zDif;
flag = true;
//livingEntity.setVelocity(-0.05 * xDif, -0.05 * yDif, -0.05 * zDif);
if (world.rand.nextInt(10) == 0)
{
//PacketDispatcher.sendPacketToAllPlayers(TEAltar.getParticlePacket(livingEntity.posX, livingEntity.posY, livingEntity.posZ, (short) 1));
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z);
}
livingEntity.fallDistance = 0;
//entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
}
}
if (world.getWorldTime() % 2 == 0 && flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 1;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> containmentRitual = new ArrayList();
containmentRitual.add(new RitualComponent(1, 0, 0, 3));
containmentRitual.add(new RitualComponent(-1, 0, 0, 3));
containmentRitual.add(new RitualComponent(0, 0, 1, 3));
containmentRitual.add(new RitualComponent(0, 0, -1, 3));
containmentRitual.add(new RitualComponent(2, 0, 2, 3));
containmentRitual.add(new RitualComponent(2, 0, -2, 3));
containmentRitual.add(new RitualComponent(-2, 0, 2, 3));
containmentRitual.add(new RitualComponent(-2, 0, -2, 3));
containmentRitual.add(new RitualComponent(1, 5, 0, 3));
containmentRitual.add(new RitualComponent(-1, 5, 0, 3));
containmentRitual.add(new RitualComponent(0, 5, 1, 3));
containmentRitual.add(new RitualComponent(0, 5, -1, 3));
containmentRitual.add(new RitualComponent(2, 5, 2, 3));
containmentRitual.add(new RitualComponent(2, 5, -2, 3));
containmentRitual.add(new RitualComponent(-2, 5, 2, 3));
containmentRitual.add(new RitualComponent(-2, 5, -2, 3));
return containmentRitual;
}
}

View file

@ -0,0 +1,301 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks;
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.common.spell.complex.effect.SpellHelper;
public class RitualEffectCrushing extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
if (world.getWorldTime() % 40 != 20)
{
return;
}
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
TileEntity tile = world.getTileEntity(x, y + 1, z);
IInventory tileEntity;
if (tile instanceof IInventory)
{
tileEntity = (IInventory) tile;
} else
{
return;
}
if (tileEntity.getSizeInventory() <= 0)
{
return;
}
boolean isSilkTouch = this.isSilkTouch(world, x, y, z);
int fortuneLevel = this.getFortuneLevel(world, x, y, z);
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
//boolean flag = false;
for (int j = -3; j < 0; j++)
{
for (int i = -1; i <= 1; i++)
{
for (int k = -1; k <= 1; k++)
{
Block block = world.getBlock(x + i, y + j, z + k);
int meta = world.getBlockMetadata(x + i, y + j, z + k);
if (block != null && !world.isAirBlock(x + i, y + j, z + k))
{
if ((block.equals(ModBlocks.ritualStone) || block.equals(ModBlocks.blockMasterStone)))
{
continue;
}
if(isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta))
{
int invSize = tileEntity.getSizeInventory();
ItemStack item = new ItemStack(block,1,meta);
ItemStack copyStack = item.copyItemStack(item);
for (int n = 0; n < invSize; n++)
{
if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0)
{
ItemStack itemStack = tileEntity.getStackInSlot(n);
if (itemStack == null)
{
tileEntity.setInventorySlotContents(n, item);
copyStack.stackSize = 0;
} else
{
if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage())
{
int itemSize = itemStack.stackSize;
int copySize = copyStack.stackSize;
int maxSize = itemStack.getMaxStackSize();
if (copySize + itemSize < maxSize)
{
copyStack.stackSize = 0;
itemStack.stackSize = itemSize + copySize;
tileEntity.setInventorySlotContents(n, itemStack);
} else
{
copyStack.stackSize = itemSize + copySize - maxSize;
itemStack.stackSize = maxSize;
}
}
}
}
}
if (copyStack.stackSize > 0)
{
world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
//flag=true;
}
}
else
{
ArrayList<ItemStack> itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, fortuneLevel);
if (itemDropList != null)
{
int invSize = tileEntity.getSizeInventory();
for (ItemStack item : itemDropList)
{
ItemStack copyStack = item.copyItemStack(item);
for (int n = 0; n < invSize; n++)
{
if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0)
{
ItemStack itemStack = tileEntity.getStackInSlot(n);
if (itemStack == null)
{
tileEntity.setInventorySlotContents(n, item);
copyStack.stackSize = 0;
} else
{
if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage())
{
int itemSize = itemStack.stackSize;
int copySize = copyStack.stackSize;
int maxSize = itemStack.getMaxStackSize();
if (copySize + itemSize < maxSize)
{
copyStack.stackSize = 0;
itemStack.stackSize = itemSize + copySize;
tileEntity.setInventorySlotContents(n, itemStack);
} else
{
copyStack.stackSize = itemSize + copySize - maxSize;
itemStack.stackSize = maxSize;
}
}
}
}
}
if (copyStack.stackSize > 0)
{
world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
//flag=true;
}
}
}
}
//if(flag)
world.setBlockToAir(x + i, y + j, z + k);
world.playSoundEffect(x + i, y + j, z + k, "mob.endermen.portal", 1.0F, 1.0F);
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
return;
}
}
}
}
}
}
public boolean isSilkTouch(World world, int x, int y, int z)
{
int index = 0;
for(int i=-2; i<=2; i++)
{
for(int j=-2; j<=2; j++)
{
int index1 = Math.abs(i);
int index2 = Math.abs(j);
if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
{
Block block = world.getBlock(x + i, y + 1, z + j);
if(block == Blocks.gold_block)
{
index++;
}
}
}
}
return index>=12;
}
public int getFortuneLevel(World world, int x, int y, int z)
{
int index = 0;
for(int i=-2; i<=2; i++)
{
for(int j=-2; j<=2; j++)
{
int index1 = Math.abs(i);
int index2 = Math.abs(j);
if((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
{
Block block = world.getBlock(x + i, y + 1, z + j);
if(block == Blocks.emerald_block || block == Blocks.diamond_block)
{
index++;
}
}
}
}
if(index>=12)
{
return 3;
}else if(index>=8)
{
return 2;
}else if(index>=4)
{
return 1;
}
return 0;
}
@Override
public int getCostPerRefresh()
{
return 7;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> crushingRitual = new ArrayList();
crushingRitual.add(new RitualComponent(0, 0, 1, RitualComponent.EARTH));
crushingRitual.add(new RitualComponent(1, 0, 0, RitualComponent.EARTH));
crushingRitual.add(new RitualComponent(0, 0, -1, RitualComponent.EARTH));
crushingRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.EARTH));
crushingRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE));
crushingRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE));
crushingRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE));
crushingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE));
crushingRitual.add(new RitualComponent(2, 0, 2, RitualComponent.DUSK));
crushingRitual.add(new RitualComponent(2, 0, -2, RitualComponent.DUSK));
crushingRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.DUSK));
crushingRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.DUSK));
crushingRitual.add(new RitualComponent(2, 1, 0, RitualComponent.AIR));
crushingRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.AIR));
crushingRitual.add(new RitualComponent(0, 1, 2, RitualComponent.AIR));
crushingRitual.add(new RitualComponent(0, 1, -2, RitualComponent.AIR));
return crushingRitual;
}
}

View file

@ -0,0 +1,286 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.EnderTeleportEvent;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
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.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport;
public class RitualEffectExpulsion extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int d0 = 25;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0);
axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0));
List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityPlayer entityplayer;
boolean flag = false;
while (iterator.hasNext())
{
entityplayer = (EntityPlayer) iterator.next();
if (!(SpellHelper.getUsername(entityplayer).equals(owner)))
{
if(entityplayer.isPotionActive(AlchemicalWizardry.customPotionPlanarBinding)||entityplayer.capabilities.isCreativeMode)
{
continue;
}
flag = teleportRandomly(entityplayer,100);
}
}
if (flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 1000;
}
public boolean teleportRandomly(EntityLivingBase entityLiving, double distance)
{
double x = entityLiving.posX;
double y = entityLiving.posY;
double z = entityLiving.posZ;
Random rand = new Random();
double d0 = x + (rand.nextDouble() - 0.5D) * distance;
double d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2);
double d2 = z + (rand.nextDouble() - 0.5D) * distance;
int i = 0;
while (!teleportTo(entityLiving, d0, d1, d2, x, y, z) && i < 100)
{
d0 = x + (rand.nextDouble() - 0.5D) * distance;
d1 = y + (double) (rand.nextInt((int) distance) - (distance) / 2);
d2 = z + (rand.nextDouble() - 0.5D) * distance;
i++;
}
if (i >= 100)
{
return false;
}
return true;
//return SpellTeleport.teleportTo(entityLiving, d0, d1, d2,x,y,z);
}
public boolean teleportTo(EntityLivingBase entityLiving, double par1, double par3, double par5, double lastX, double lastY, double lastZ)
{
EnderTeleportEvent event = new EnderTeleportEvent(entityLiving, par1, par3, par5, 0);
if (MinecraftForge.EVENT_BUS.post(event))
{
return false;
}
double d3 = lastX;
double d4 = lastY;
double d5 = lastZ;
SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ);
boolean flag = false;
int i = MathHelper.floor_double(entityLiving.posX);
int j = MathHelper.floor_double(entityLiving.posY);
int k = MathHelper.floor_double(entityLiving.posZ);
int l;
if (entityLiving.worldObj.blockExists(i, j, k))
{
boolean flag1 = false;
while (!flag1 && j > 0)
{
Block block = entityLiving.worldObj.getBlock(i, j - 1, k);
if (block != null && block.getMaterial().blocksMovement())
{
flag1 = true;
} else
{
--entityLiving.posY;
--j;
}
}
if (flag1)
{
SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ);
if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox))
{
flag = true;
}
}
}
if (!flag)
{
SpellTeleport.moveEntityViaTeleport(entityLiving, d3, d4, d5);
return false;
} else
{
short short1 = 128;
for (l = 0; l < short1; ++l)
{
double d6 = (double) l / ((double) short1 - 1.0D);
float f = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F;
float f1 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F;
float f2 = (entityLiving.worldObj.rand.nextFloat() - 0.5F) * 0.2F;
double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height;
double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2);
}
// this.worldObj.playSoundEffect(d3, d4, d5, "mob.endermen.portal", 1.0F, 1.0F);
// this.playSound("mob.endermen.portal", 1.0F, 1.0F);
return true;
}
}
public void moveEntityViaTeleport(EntityLivingBase entityLiving, double x, double y, double z)
{
if (entityLiving instanceof EntityPlayer)
{
if (entityLiving != null && entityLiving instanceof EntityPlayerMP)
{
EntityPlayerMP entityplayermp = (EntityPlayerMP) entityLiving;
if (entityplayermp.worldObj == entityLiving.worldObj)
{
EnderTeleportEvent event = new EnderTeleportEvent(entityplayermp, x, y, z, 5.0F);
if (!MinecraftForge.EVENT_BUS.post(event))
{
if (entityLiving.isRiding())
{
entityLiving.mountEntity((Entity) null);
}
entityLiving.setPositionAndUpdate(event.targetX, event.targetY, event.targetZ);
// this.getThrower().fallDistance = 0.0F;
// this.getThrower().attackEntityFrom(DamageSource.fall, event.attackDamage);
}
}
}
} else if (entityLiving != null)
{
entityLiving.setPosition(x, y, z);
}
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> expulsionRitual = new ArrayList();
expulsionRitual.add(new RitualComponent(2,0,2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(2,0,1, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(1,0,2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(2,0,-2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(2,0,-1, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-1,0,2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-2,0,2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-2,0,1, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(1,0,-2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(4,0,2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(5,0,2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(4,0,-2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(5,0,-2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-4,0,2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-5,0,2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-4,0,-2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-5,0,-2, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(2,0,4, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(2,0,5, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-2,0,4, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-2,0,5, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(2,0,-4, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(2,0,-5, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-2,0,-4, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(-2,0,-5, RitualComponent.AIR));
expulsionRitual.add(new RitualComponent(0,0,6, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(0,0,-6, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(6,0,0, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-6,0,0, RitualComponent.EARTH));
expulsionRitual.add(new RitualComponent(-5,0,0, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(-6,0,1, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(-6,0,-1, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(5,0,0, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(6,0,1, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(6,0,-1, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(0,0,5, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(1,0,6, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(-1,0,6, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(0,0,-5, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(1,0,-6, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(-1,0,-6, RitualComponent.DUSK));
expulsionRitual.add(new RitualComponent(4,0,4, RitualComponent.FIRE));
expulsionRitual.add(new RitualComponent(4,0,-4, RitualComponent.FIRE));
expulsionRitual.add(new RitualComponent(-4,0,4, RitualComponent.FIRE));
expulsionRitual.add(new RitualComponent(-4,0,-4, RitualComponent.FIRE));
return expulsionRitual;
}
}

View file

@ -0,0 +1,141 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z + 4));
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z - 4));
world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z - 4));
world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z + 4));
ritualStone.setCooldown(0);
}
int range = 20;
int verticalRange = 30;
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range));
int entityCount = 0;
boolean flag = false;
for (EntityLivingBase entity : entities)
{
entityCount++;
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
for (EntityLivingBase entity : entities)
{
entity.fallDistance = 0;
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
return 0;
}
@Override
public int getInitialCooldown()
{
return 1;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> featheredEarthRitual = new ArrayList();
featheredEarthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK));
featheredEarthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK));
featheredEarthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK));
featheredEarthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK));
featheredEarthRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH));
featheredEarthRitual.add(new RitualComponent(4, 4, 4, RitualComponent.FIRE));
featheredEarthRitual.add(new RitualComponent(-4, 4, 4, RitualComponent.FIRE));
featheredEarthRitual.add(new RitualComponent(-4, 4, -4, RitualComponent.FIRE));
featheredEarthRitual.add(new RitualComponent(4, 4, -4, RitualComponent.FIRE));
featheredEarthRitual.add(new RitualComponent(4, 5, 5, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(4, 5, 3, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(5, 5, 4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(3, 5, 4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-4, 5, 5, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-4, 5, 3, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-5, 5, 4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-3, 5, 4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(4, 5, -5, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(4, 5, -3, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(5, 5, -4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(3, 5, -4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-4, 5, -5, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-4, 5, -3, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-5, 5, -4, RitualComponent.AIR));
featheredEarthRitual.add(new RitualComponent(-3, 5, -4, RitualComponent.AIR));
return featheredEarthRitual;
}
}

View file

@ -0,0 +1,192 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectFeatheredKnife extends RitualEffect
{
public final int timeDelay = 20;
public final int amount = 100;
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
return;
}
// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar))
// {
// return;
// }
TEAltar tileAltar = null;
boolean testFlag = false;
for (int i = -5; i <= 5; i++)
{
for (int j = -5; j <= 5; j++)
{
for (int k = -10; k <= 10; k++)
{
if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar)
{
tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j);
testFlag = true;
}
}
}
}
if (!testFlag)
{
return;
}
//tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z);
int d0 = 15;
int vertRange = 20;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0);
List list = world.getEntitiesWithinAABB(EntityPlayer.class, axisalignedbb);
Iterator iterator1 = list.iterator();
EntityPlayer entity;
int entityCount = 0;
boolean flag = false;
while (iterator1.hasNext())
{
entity = (EntityPlayer) iterator1.next();
if (entity.getClass().equals(EntityPlayerMP.class) || entity.getClass().equals(EntityPlayer.class))
{
entityCount++;
}
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
Iterator iterator2 = list.iterator();
entityCount = 0;
while (iterator2.hasNext())
{
entity = (EntityPlayer) iterator2.next();
//entity = (EntityPlayer)iterator1.next();
if (entity.getClass().equals(EntityPlayerMP.class) || entity.getClass().equals(EntityPlayer.class))
{
if (entity.getHealth() > 6.2f)
{
entity.setHealth(entity.getHealth() - 1);
entityCount++;
tileAltar.sacrificialDaggerCall(this.amount, false);
}
}
//entity.setHealth(entity.getHealth()-1);
// if(entity.getHealth()<=0.2f)
// {
// entity.onDeath(DamageSource.inFire);
// }
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 20;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> featheredKnifeRitual = new ArrayList();
featheredKnifeRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK));
featheredKnifeRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK));
featheredKnifeRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK));
featheredKnifeRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK));
featheredKnifeRitual.add(new RitualComponent(2, -1, 0, RitualComponent.WATER));
featheredKnifeRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.WATER));
featheredKnifeRitual.add(new RitualComponent(0, -1, 2, RitualComponent.WATER));
featheredKnifeRitual.add(new RitualComponent(0, -1, -2, RitualComponent.WATER));
featheredKnifeRitual.add(new RitualComponent(1, -1, 1, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(1, -1, -1, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(-1, -1, 1, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(-1, -1, -1, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(4, -1, 2, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(2, -1, 4, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(2, -1, -4, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(4, -1, -2, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.FIRE));
featheredKnifeRitual.add(new RitualComponent(4, 0, 2, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(2, 0, 4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(2, 0, -4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(4, 0, -2, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(4, 0, 3, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(3, 0, 4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(3, 0, -4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(4, 0, -3, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.EARTH));
featheredKnifeRitual.add(new RitualComponent(3, 0, 3, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(3, 0, -3, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.AIR));
featheredKnifeRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.AIR));
return featheredKnifeRitual;
}
}

View file

@ -0,0 +1,180 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
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.common.spell.complex.effect.SpellHelper;
public class RitualEffectFlight extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
//TODO Cool stuffs
ritualStone.setCooldown(0);
}
int range = 20;
int verticalRange = 30;
AxisAlignedBB axis = AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range);
axis.maxY = 256;
axis.minY = 0;
List<EntityPlayer> entities = world.getEntitiesWithinAABB(EntityPlayer.class, axis);
int entityCount = 0;
for (EntityPlayer entity : entities)
{
entityCount++;
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
for (EntityPlayer entity : entities)
{
entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, 20, 0));
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
return 0;
}
@Override
public int getInitialCooldown()
{
return 1;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> flightRitual = new ArrayList();
flightRitual.add(new RitualComponent(1, 0, 0, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(0, 0, 1, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(0, 0, -1, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(2, 0, 2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(-2, 0, 2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(-2, 0, -2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(2, 0, -2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(1, 0, 3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(0, 0, 3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(1, 0, -3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(0, 0, -3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(3, 0, 1, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(3, 0, 0, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(3, 0, -1, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-3, 0, 0, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-3, 0, -4, RitualComponent.WATER));
flightRitual.add(new RitualComponent(-4, 0, -3, RitualComponent.WATER));
flightRitual.add(new RitualComponent(-3, 0, 4, RitualComponent.WATER));
flightRitual.add(new RitualComponent(4, 0, -3, RitualComponent.WATER));
flightRitual.add(new RitualComponent(3, 0, -4, RitualComponent.WATER));
flightRitual.add(new RitualComponent(-4, 0, 3, RitualComponent.WATER));
flightRitual.add(new RitualComponent(3, 0, 4, RitualComponent.WATER));
flightRitual.add(new RitualComponent(4, 0, 3, RitualComponent.WATER));
flightRitual.add(new RitualComponent(-1, 1, 0, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(1, 1, 0, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(0, 1, -1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(0, 1, 1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(2, 1, 0, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(0, 1, -2, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(0, 1, 2, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(4, 1, 0, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(0, 1, -4, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(0, 1, 4, RitualComponent.BLANK));
flightRitual.add(new RitualComponent(-5, 1, 0, RitualComponent.AIR));
flightRitual.add(new RitualComponent(5, 1, 0, RitualComponent.AIR));
flightRitual.add(new RitualComponent(0, 1, -5, RitualComponent.AIR));
flightRitual.add(new RitualComponent(0, 1, 5, RitualComponent.AIR));
flightRitual.add(new RitualComponent(5, 0, 0, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(-5, 0, 0, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(0, 0, 5, RitualComponent.DUSK));
flightRitual.add(new RitualComponent(0, 0, -5, RitualComponent.DUSK));
for (int i = 2; i <= 4; i++)
{
flightRitual.add(new RitualComponent(-i, 2, 0, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(i, 2, 0, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(0, 2, -i, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(0, 2, i, RitualComponent.EARTH));
}
flightRitual.add(new RitualComponent(2, 4, 1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(1, 4, 2, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-2, 4, 1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(1, 4, -2, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(2, 4, -1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-1, 4, 2, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-2, 4, -1, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-1, 4, -2, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(2, 4, 2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(-2, 4, 2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(2, 4, -2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(-2, 4, -2, RitualComponent.AIR));
flightRitual.add(new RitualComponent(-4, 2, -4, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(4, 2, 4, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(4, 2, -4, RitualComponent.FIRE));
flightRitual.add(new RitualComponent(-4, 2, 4, RitualComponent.FIRE));
for (int i = -1; i <= 1; i++)
{
flightRitual.add(new RitualComponent(3, 4, i, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(-3, 4, i, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(i, 4, 3, RitualComponent.EARTH));
flightRitual.add(new RitualComponent(i, 4, -3, RitualComponent.EARTH));
}
return flightRitual;
}
}

View file

@ -0,0 +1,104 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import net.minecraftforge.common.IPlantable;
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.common.spell.complex.effect.SpellHelper;
public class RitualEffectGrowth extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
if (world.getWorldTime() % 20 != 0)
{
return;
}
boolean flag = false;
for (int i = -1; i <= 1; i++)
{
for (int j = -1; j <= 1; j++)
{
Block block = world.getBlock(x + i, y + 2, z + j);
if (block instanceof IPlantable)
{
{
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z);
block.updateTick(world, x + i, y + 2, z + j, world.rand);
flag = true;
}
}
}
}
if (flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 100;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> growthRitual = new ArrayList();
growthRitual.add(new RitualComponent(1, 0, 0, 1));
growthRitual.add(new RitualComponent(-1, 0, 0, 1));
growthRitual.add(new RitualComponent(0, 0, 1, 1));
growthRitual.add(new RitualComponent(0, 0, -1, 1));
growthRitual.add(new RitualComponent(-1, 0, 1, 3));
growthRitual.add(new RitualComponent(1, 0, 1, 3));
growthRitual.add(new RitualComponent(-1, 0, -1, 3));
growthRitual.add(new RitualComponent(1, 0, -1, 3));
return growthRitual;
}
}

View file

@ -0,0 +1,181 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectHealing extends RitualEffect
{
public final int timeDelay = 50;
//public final int amount = 10;
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
return;
}
// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar))
// {
// return;
// }
//tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z);
int d0 = 10;
int vertRange = 10;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0);
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator1 = list.iterator();
EntityLivingBase entity;
int entityCount = 0;
boolean flag = false;
while (iterator1.hasNext())
{
entity = (EntityLivingBase) iterator1.next();
if (entity instanceof EntityPlayer)
{
entityCount += 10;
} else
{
entityCount++;
}
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
Iterator iterator2 = list.iterator();
entityCount = 0;
while (iterator2.hasNext())
{
entity = (EntityLivingBase) iterator2.next();
if (entity.getHealth() + 0.1f < entity.getMaxHealth())
{
entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, timeDelay + 2, 0));
//entity.setHealth(entity.getHealth()-1);
//entity.attackEntityFrom(DamageSource.outOfWorld, 1);
if (entity instanceof EntityPlayer)
{
entityCount += 10;
} else
{
entityCount++;
}
}
// if(entity.getHealth()<=0.2f)
// {
// entity.onDeath(DamageSource.inFire);
// }
//tileAltar.sacrificialDaggerCall(this.amount, true);
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 20;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> healingRitual = new ArrayList();
healingRitual.add(new RitualComponent(4, 0, 0, RitualComponent.AIR));
healingRitual.add(new RitualComponent(5, 0, -1, RitualComponent.AIR));
healingRitual.add(new RitualComponent(5, 0, 1, RitualComponent.AIR));
healingRitual.add(new RitualComponent(-4, 0, 0, RitualComponent.AIR));
healingRitual.add(new RitualComponent(-5, 0, -1, RitualComponent.AIR));
healingRitual.add(new RitualComponent(-5, 0, 1, RitualComponent.AIR));
healingRitual.add(new RitualComponent(0, 0, 4, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(-1, 0, 5, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(1, 0, 5, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(0, 0, -4, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(-1, 0, -5, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(1, 0, -5, RitualComponent.FIRE));
healingRitual.add(new RitualComponent(3, 0, 5, RitualComponent.WATER));
healingRitual.add(new RitualComponent(5, 0, 3, RitualComponent.WATER));
healingRitual.add(new RitualComponent(3, 0, -5, RitualComponent.WATER));
healingRitual.add(new RitualComponent(5, 0, -3, RitualComponent.WATER));
healingRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.WATER));
healingRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.WATER));
healingRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.WATER));
healingRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.WATER));
healingRitual.add(new RitualComponent(-3, 0, -3, RitualComponent.DUSK));
healingRitual.add(new RitualComponent(-3, 0, 3, RitualComponent.DUSK));
healingRitual.add(new RitualComponent(3, 0, -3, RitualComponent.DUSK));
healingRitual.add(new RitualComponent(3, 0, 3, RitualComponent.DUSK));
healingRitual.add(new RitualComponent(4, 0, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(4, -1, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, 0, 4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, -1, 4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, 0, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(4, 0, -5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(4, -1, -5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, 0, -4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, -1, -4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(5, 0, -5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-4, 0, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-4, -1, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, 0, 4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, -1, 4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, 0, 5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-4, 0, -5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-4, -1, -5, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, 0, -4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, -1, -4, RitualComponent.EARTH));
healingRitual.add(new RitualComponent(-5, 0, -5, RitualComponent.EARTH));
return healingRitual;
}
}

View file

@ -0,0 +1,112 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectInterdiction extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int d0 = 5;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, d0, d0);
axisalignedbb.maxY = Math.min((double) world.getHeight(), (double) (y + 1 + d0));
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityLivingBase entityplayer;
boolean flag = false;
while (iterator.hasNext())
{
entityplayer = (EntityLivingBase) iterator.next();
if (!(entityplayer instanceof EntityPlayer && (SpellHelper.getUsername((EntityPlayer)entityplayer).equals(owner))))
{
double xDif = entityplayer.posX - x;
double yDif = entityplayer.posY - (y + 1);
double zDif = entityplayer.posZ - z;
entityplayer.motionX = 0.1 * xDif;
entityplayer.motionY = 0.1 * yDif;
entityplayer.motionZ = 0.1 * zDif;
entityplayer.fallDistance = 0;
if (!(entityplayer instanceof EntityPlayer))
{
flag = true;
}
//entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
}
}
if (world.getWorldTime() % 2 == 0 && flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 1;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> interdictionRitual = new ArrayList();
interdictionRitual.add(new RitualComponent(1, 0, 0, 4));
interdictionRitual.add(new RitualComponent(-1, 0, 0, 4));
interdictionRitual.add(new RitualComponent(0, 0, 1, 4));
interdictionRitual.add(new RitualComponent(0, 0, -1, 4));
interdictionRitual.add(new RitualComponent(-1, 0, 1, 4));
interdictionRitual.add(new RitualComponent(1, 0, 1, 4));
interdictionRitual.add(new RitualComponent(-1, 0, -1, 4));
interdictionRitual.add(new RitualComponent(1, 0, -1, 4));
return interdictionRitual;
}
}

View file

@ -0,0 +1,166 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks;
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.common.spell.complex.effect.SpellHelper;
public class RitualEffectItemSuction extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
TileEntity tile = world.getTileEntity(x, y + 1, z);
IInventory tileEntity;
if (tile instanceof IInventory)
{
tileEntity = (IInventory) tile;
} else
{
return;
}
if (tileEntity.getSizeInventory() <= 0)
{
return;
}
if (currentEssence < this.getCostPerRefresh()*100)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
List<EntityItem> itemDropList = SpellHelper.getItemsInRange(world, x+0.5f, y+0.5f, z+0.5f, 10, 10);
int count = 0;
if (itemDropList != null)
{
int invSize = tileEntity.getSizeInventory();
for (EntityItem itemEntity : itemDropList)
{
ItemStack item = itemEntity.getEntityItem();
ItemStack copyStack = itemEntity.getEntityItem().copy();
count++;
for (int n = 0; n < invSize; n++)
{
if (tileEntity.isItemValidForSlot(n, copyStack) && copyStack.stackSize != 0)
{
ItemStack itemStack = tileEntity.getStackInSlot(n);
if (itemStack == null)
{
tileEntity.setInventorySlotContents(n, item);
copyStack.stackSize = 0;
} else
{
if (itemStack.getItem().equals(copyStack.getItem()) && itemStack.getItemDamage() == copyStack.getItemDamage())
{
int itemSize = itemStack.stackSize;
int copySize = copyStack.stackSize;
int maxSize = itemStack.getMaxStackSize();
if (copySize + itemSize < maxSize)
{
copyStack.stackSize = 0;
itemStack.stackSize = itemSize + copySize;
tileEntity.setInventorySlotContents(n, itemStack);
} else
{
copyStack.stackSize = itemSize + copySize - maxSize;
itemStack.stackSize = maxSize;
}
}
}
}
}
if(copyStack.stackSize<=0)
{
itemEntity.setDead();
}
if (copyStack.stackSize > 0)
{
itemEntity.getEntityItem().stackSize = copyStack.stackSize;
}
}
}
if(count>0)
{
data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100);
data.markDirty();
return;
}
}
}
@Override
public int getCostPerRefresh()
{
return 5;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> suctionRitual = new ArrayList();
suctionRitual.add(new RitualComponent(2, 0, 0, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(0, 0, 2, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(0, 0, -2, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(1, 1, 1, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(1, 1, -1, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(-1, 1, 1, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(-1, 1, -1, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(1, -1, 0, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(-1, -1, 0, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(0, -1, 1, RitualComponent.AIR));
suctionRitual.add(new RitualComponent(0, -1, -1, RitualComponent.AIR));
return suctionRitual;
}
}

View file

@ -0,0 +1,114 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectJumping extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int d0 = 0;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0);
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityLivingBase entityplayer;
boolean flag = false;
while (iterator.hasNext())
{
entityplayer = (EntityLivingBase) iterator.next();
if (entityplayer instanceof EntityPlayer)
{
//PacketDispatcher.sendPacketToPlayer(PacketHandler.getPlayerVelocitySettingPacket(entityplayer.motionX, 1.5, entityplayer.motionZ), (Player) entityplayer);
SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, entityplayer.motionX, 1.5, entityplayer.motionZ);
entityplayer.motionY = 1.5;
entityplayer.fallDistance = 0;
flag = true;
} else
//if (!(entityplayer.getEntityName().equals(owner)))
{
// double xDif = entityplayer.posX - xCoord;
// double yDif = entityplayer.posY - (yCoord + 1);
// double zDif = entityplayer.posZ - zCoord;
//entityplayer.motionX=0.1*xDif;
entityplayer.motionY = 1.5;
//entityplayer.motionZ=0.1*zDif;
entityplayer.fallDistance = 0;
flag = true;
//entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
}
}
if (flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 5;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> jumpingRitual = new ArrayList();
for (int i = -1; i <= 1; i++)
{
jumpingRitual.add(new RitualComponent(1, i, 1, RitualComponent.AIR));
jumpingRitual.add(new RitualComponent(-1, i, 1, RitualComponent.AIR));
jumpingRitual.add(new RitualComponent(-1, i, -1, RitualComponent.AIR));
jumpingRitual.add(new RitualComponent(1, i, -1, RitualComponent.AIR));
}
return jumpingRitual;
}
}

View file

@ -0,0 +1,86 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.block.BlockSpectralContainer;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectLava extends RitualEffect
{
@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;
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())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} 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();
}
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 500;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> lavaRitual = new ArrayList();
lavaRitual.add(new RitualComponent(1, 0, 0, 2));
lavaRitual.add(new RitualComponent(-1, 0, 0, 2));
lavaRitual.add(new RitualComponent(0, 0, 1, 2));
lavaRitual.add(new RitualComponent(0, 0, -1, 2));
return lavaRitual;
}
}

View file

@ -0,0 +1,158 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectLeap extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int direction = ritualStone.getDirection();
int d0 = 2;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y - 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, 0, d0);
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityLivingBase entityplayer;
boolean flag = false;
while (iterator.hasNext())
{
entityplayer = (EntityLivingBase) iterator.next();
if (entityplayer instanceof EntityPlayer)
{
entityplayer.motionY = 1.2;
entityplayer.fallDistance = 0;
switch (direction)
{
case 1:
SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 0, 1.2, -3.0);
break;
case 2:
SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 3.0, 1.2, 0);
break;
case 3:
SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, 0, 1.2, 3.0);
break;
case 4:
SpellHelper.setPlayerSpeedFromServer((EntityPlayer)entityplayer, -3.0, 1.2, 0);
break;
}
flag = true;
} else
//if (!(entityplayer.getEntityName().equals(owner)))
{
// double xDif = entityplayer.posX - xCoord;
// double yDif = entityplayer.posY - (yCoord + 1);
// double zDif = entityplayer.posZ - zCoord;
//entityplayer.motionX=0.1*xDif;
entityplayer.motionY = 1.2;
switch (direction)
{
case 1:
entityplayer.motionX = 0.0;
entityplayer.motionZ = -3.0;
break;
case 2:
entityplayer.motionX = 3.0;
entityplayer.motionZ = 0.0;
break;
case 3:
entityplayer.motionX = 0.0;
entityplayer.motionZ = -3.0;
break;
case 4:
entityplayer.motionX = -3.0;
entityplayer.motionZ = 0.0;
break;
}
//entityplayer.motionZ=0.1*zDif;
entityplayer.fallDistance = 0;
flag = true;
//entityplayer.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
}
}
if (flag)
{
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
@Override
public int getCostPerRefresh()
{
return 5;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> leapingRitual = new ArrayList();
leapingRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK));
leapingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.AIR));
leapingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.AIR));
for (int i = 0; i <= 2; i++)
{
leapingRitual.add(new RitualComponent(2, 0, i, RitualComponent.AIR));
leapingRitual.add(new RitualComponent(-2, 0, i, RitualComponent.AIR));
}
return leapingRitual;
}
}

View file

@ -0,0 +1,179 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
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.common.block.BlockTeleposer;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectMagnetic extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % 40 != 0)
{
return;
}
Block powerBlock = world.getBlock(x, y-1, z);
int radius = this.getRadiusForModifierBlock(powerBlock);
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int xRep = 0;
int yRep = 0;
int zRep = 0;
boolean replace = false;
for (int j = 1; j <= 3; j++)
{
for (int i = -1; i <= 1; i++)
{
for (int k = -1; k <= 1; k++)
{
if ((!replace) && world.isAirBlock(x + i, y + j, z + k))
{
xRep = x + i;
yRep = y + j;
zRep = z + k;
replace = true;
}
}
}
}
if (replace)
{
//boolean hasReplaced = false;
for (int j = y - 1; j >= 0; j--)
{
for (int i = -radius; i <= radius; i++)
{
for (int k = -radius; k <= radius; k++)
{
Block block = world.getBlock(x + i, j, z + k);
int meta = world.getBlockMetadata(x + i, j, z + k);
if (block == null)
{
continue;
}
ItemStack itemStack = new ItemStack(block, 1, meta);
int id = OreDictionary.getOreID(itemStack);
if (id != -1)
{
String oreName = OreDictionary.getOreName(id);
if (oreName.contains("ore"))
{
//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();
return;
}
}
}
}
}
}
}
}
@Override
public int getCostPerRefresh()
{
return 50;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> magneticRitual = new ArrayList();
magneticRitual.add(new RitualComponent(1, 0, 1, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(1, 0, -1, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(2, 1, 0, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(0, 1, 2, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(-2, 1, 0, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(0, 1, -2, RitualComponent.EARTH));
magneticRitual.add(new RitualComponent(2, 1, 2, RitualComponent.AIR));
magneticRitual.add(new RitualComponent(2, 1, -2, RitualComponent.AIR));
magneticRitual.add(new RitualComponent(-2, 1, 2, RitualComponent.AIR));
magneticRitual.add(new RitualComponent(-2, 1, -2, RitualComponent.AIR));
magneticRitual.add(new RitualComponent(2, 2, 0, RitualComponent.FIRE));
magneticRitual.add(new RitualComponent(0, 2, 2, RitualComponent.FIRE));
magneticRitual.add(new RitualComponent(-2, 2, 0, RitualComponent.FIRE));
magneticRitual.add(new RitualComponent(0, 2, -2, RitualComponent.FIRE));
return magneticRitual;
}
public int getRadiusForModifierBlock(Block block)
{
if(block == null)
{
return 3;
}
if(block == Blocks.diamond_block)
{
return 31;
}
if(block == Blocks.gold_block)
{
return 15;
}
if(block == Blocks.iron_block)
{
return 7;
}
return 3;
}
}

View file

@ -0,0 +1,199 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
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.common.spell.complex.effect.SpellHelper;
public class RitualEffectSoulBound extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
if (ritualStone.getVar1() == 0)
{
int d0 = 0;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0);
List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityItem item;
while (iterator.hasNext())
{
item = (EntityItem) iterator.next();
// double xDif = item.posX - (xCoord+0.5);
// double yDif = item.posY - (yCoord+1);
// double zDif = item.posZ - (zCoord+0.5);
ItemStack itemStack = item.getEntityItem();
if (itemStack == null)
{
continue;
}
if(BindingRegistry.isRequiredItemValid(itemStack))
{
ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack)+1);
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
item.setDead();
break;
}
if (world.rand.nextInt(10) == 0)
{
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z);
}
}
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
} else
{
ritualStone.setCooldown(ritualStone.getCooldown() - 1);
if (world.rand.nextInt(20) == 0)
{
int lightningPoint = world.rand.nextInt(8);
switch (lightningPoint)
{
case 0:
world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 3, z + 0));
break;
case 1:
world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 3, z + 0));
break;
case 2:
world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z + 4));
break;
case 3:
world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z - 4));
break;
case 4:
world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z + 3));
break;
case 5:
world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z + 3));
break;
case 6:
world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z - 3));
break;
case 7:
world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z - 3));
break;
}
}
if (ritualStone.getCooldown() <= 0)
{
ItemStack spawnedItem = BindingRegistry.getOutputForIndex(ritualStone.getVar1()-1);
if (spawnedItem != null)
{
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
world.spawnEntityInWorld(newItem);
}
ritualStone.setActive(false);
}
}
}
}
@Override
public int getCostPerRefresh()
{
return 0;
}
@Override
public int getInitialCooldown()
{
return 200;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> boundSoulRitual = new ArrayList();
boundSoulRitual.add(new RitualComponent(3, 0, 0, 2));
boundSoulRitual.add(new RitualComponent(-3, 0, 0, 2));
boundSoulRitual.add(new RitualComponent(0, 0, 3, 2));
boundSoulRitual.add(new RitualComponent(0, 0, -3, 2));
boundSoulRitual.add(new RitualComponent(2, 0, 2, 4));
boundSoulRitual.add(new RitualComponent(-2, 0, 2, 4));
boundSoulRitual.add(new RitualComponent(2, 0, -2, 4));
boundSoulRitual.add(new RitualComponent(-2, 0, -2, 4));
boundSoulRitual.add(new RitualComponent(4, 2, 0, 1));
boundSoulRitual.add(new RitualComponent(-4, 2, 0, 1));
boundSoulRitual.add(new RitualComponent(0, 2, 4, 1));
boundSoulRitual.add(new RitualComponent(0, 2, -4, 1));
boundSoulRitual.add(new RitualComponent(3, 2, 3, 3));
boundSoulRitual.add(new RitualComponent(3, 2, -3, 3));
boundSoulRitual.add(new RitualComponent(-3, 2, 3, 3));
boundSoulRitual.add(new RitualComponent(-3, 2, -3, 3));
boundSoulRitual.add(new RitualComponent(4, 1, 0, 0));
boundSoulRitual.add(new RitualComponent(-4, 1, 0, 0));
boundSoulRitual.add(new RitualComponent(0, 1, 4, 0));
boundSoulRitual.add(new RitualComponent(0, 1, -4, 0));
boundSoulRitual.add(new RitualComponent(3, 1, 3, 0));
boundSoulRitual.add(new RitualComponent(3, 1, -3, 0));
boundSoulRitual.add(new RitualComponent(-3, 1, 3, 0));
boundSoulRitual.add(new RitualComponent(-3, 1, -3, 0));
return boundSoulRitual;
}
}

View file

@ -0,0 +1,204 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
public class RitualEffectSummonMeteor extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
ritualStone.setCooldown(0);
}
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
List<EntityItem> entities = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1));
if (entities == null)
{
return;
}
for (EntityItem entityItem : entities)
{
if (entityItem != null && MeteorRegistry.isValidParadigmItem(entityItem.getEntityItem()))
{
int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem());
EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID);
meteor.motionY = -1.0f;
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();
}
}
@Override
public int getCostPerRefresh()
{
return 0;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> meteorRitual = new ArrayList();
meteorRitual.add(new RitualComponent(2, 0, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 0, 2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 0, -2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(3, 0, 1, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(3, 0, -1, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-3, 0, 1, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-3, 0, -1, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(1, 0, 3, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-1, 0, 3, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(1, 0, -3, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-1, 0, -3, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(4, 0, 2, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(4, 0, -2, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-4, 0, 2, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-4, 0, -2, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(2, 0, 4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-2, 0, 4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(2, 0, -4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-2, 0, -4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(5, 0, 3, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(5, 0, -3, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-5, 0, 3, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-5, 0, -3, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(3, 0, 5, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-3, 0, 5, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(3, 0, -5, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-3, 0, -5, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-4, 0, -4, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(-4, 0, 4, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(4, 0, 4, RitualComponent.DUSK));
meteorRitual.add(new RitualComponent(4, 0, -4, RitualComponent.DUSK));
for (int i = 4; i <= 6; i++)
{
meteorRitual.add(new RitualComponent(i, 0, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(-i, 0, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 0, i, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 0, -i, RitualComponent.EARTH));
}
meteorRitual.add(new RitualComponent(8, 0, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(-8, 0, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 0, 8, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 0, -8, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(8, 1, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(-8, 1, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 1, 8, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 1, -8, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(7, 1, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(-7, 1, 0, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 1, 7, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(0, 1, -7, RitualComponent.EARTH));
meteorRitual.add(new RitualComponent(7, 2, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-7, 2, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 2, 7, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 2, -7, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(6, 2, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-6, 2, 0, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 2, 6, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(0, 2, -6, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(6, 3, 0, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-6, 3, 0, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(0, 3, 6, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(0, 3, -6, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(5, 3, 0, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-5, 3, 0, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(0, 3, 5, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(0, 3, -5, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(5, 4, 0, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-5, 4, 0, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(0, 4, 5, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(0, 4, -5, RitualComponent.AIR));
for (int i = -1; i <= 1; i++)
{
meteorRitual.add(new RitualComponent(i, 4, 4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(i, 4, -4, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(4, 4, i, RitualComponent.AIR));
meteorRitual.add(new RitualComponent(-4, 4, i, RitualComponent.AIR));
}
meteorRitual.add(new RitualComponent(2, 4, 4, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(4, 4, 2, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(2, 4, -4, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-4, 4, 2, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-2, 4, 4, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(4, 4, -2, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-2, 4, -4, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(-4, 4, -2, RitualComponent.WATER));
meteorRitual.add(new RitualComponent(2, 4, 3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(3, 4, 2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(3, 4, 3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-2, 4, 3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(3, 4, -2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(3, 4, -3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(2, 4, -3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-3, 4, 2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-3, 4, 3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-2, 4, -3, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-3, 4, -2, RitualComponent.FIRE));
meteorRitual.add(new RitualComponent(-3, 4, -3, RitualComponent.FIRE));
return meteorRitual;
}
}

View file

@ -0,0 +1,112 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.List;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
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.common.items.EnergyItems;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectSummonPlayer extends RitualEffect //Summons a player via the bound item
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (ritualStone.getCooldown() > 0)
{
ritualStone.setCooldown(0);
}
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
List<EntityItem> entities = world.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1));
if (entities == null)
{
return;
}
for (EntityItem entityItem : entities)
{
if (entityItem != null && entityItem.getEntityItem().getItem() instanceof IBindable)
{
String str = EnergyItems.getOwnerName(entityItem.getEntityItem());
EntityPlayer entityPlayer = SpellHelper.getPlayerForUsername(str);
if(entityPlayer!=null)
{
entityPlayer.posX = x;
entityPlayer.posY = y+1;
entityPlayer.posZ = z;
if(entityPlayer instanceof EntityPlayerMP)
{
((EntityPlayerMP)entityPlayer).mcServer.getConfigurationManager().transferPlayerToDimension(((EntityPlayerMP)entityPlayer), 0);
}
entityItem.setDead();
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
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);
}
}
@Override
public int getCostPerRefresh()
{
return 0;
}
@Override
public List<RitualComponent> getRitualComponentList() {
// TODO Auto-generated method stub
return null;
}
}

View file

@ -0,0 +1,180 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer;
public class RitualEffectSupression extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
Block blockish = world.getBlock(x, y-1, z);
int costMod = this.getCostModifier(blockish);
int radius = this.getRadiusForModifierBlock(blockish);
int masterRadius = radius;
int yIndex = (int)(world.getWorldTime() % (2*radius + 1))-radius;
boolean expansion = false;
if(ritualStone.getVar1()<(radius+1))
{
expansion = true;
radius = ritualStone.getVar1();
ritualStone.setVar1(ritualStone.getVar1() + 1);
}
if (currentEssence < this.getCostPerRefresh()*costMod)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
for (int i = -radius; i <= radius; i++)
{
for (int j = (expansion ? -radius : yIndex); j <= (expansion ? radius : yIndex); j++)
{
for(int k = -radius; k <= radius; k++)
{
if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f))
{
continue;
}
Block block = world.getBlock(x+i, y+j, z+k);
if(SpellHelper.isBlockFluid(block))
{
TESpectralContainer.createSpectralBlockAtLocation(world, x+i, y+j, z+k, 3*masterRadius);
}
else
{
TileEntity tile = world.getTileEntity(x+i, y+j, z+k);
if(tile instanceof TESpectralContainer)
{
((TESpectralContainer) tile).resetDuration(3*masterRadius);
}
}
}
}
}
data.currentEssence = currentEssence - this.getCostPerRefresh()*costMod;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
return 2;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> supressionRitual = new ArrayList();
supressionRitual.add(new RitualComponent(2,0,2, RitualComponent.WATER));
supressionRitual.add(new RitualComponent(2,0,-2, RitualComponent.WATER));
supressionRitual.add(new RitualComponent(-2,0,2, RitualComponent.WATER));
supressionRitual.add(new RitualComponent(-2,0,-2, RitualComponent.WATER));
supressionRitual.add(new RitualComponent(-2,0,-1, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(-1,0,-2, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(-2,0,1, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(1,0,-2, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(2,0,1, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(1,0,2, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(2,0,-1, RitualComponent.AIR));
supressionRitual.add(new RitualComponent(-1,0,2, RitualComponent.AIR));
return supressionRitual;
}
public int getRadiusForModifierBlock(Block block)
{
if(block == null)
{
return 10;
}
if(block == Blocks.diamond_block)
{
return 30;
}
if(block == Blocks.gold_block)
{
return 20;
}
if(block == Blocks.iron_block)
{
return 15;
}
return 10;
}
public int getCostModifier(Block block)
{
if(block == null)
{
return 1;
}
if(block == Blocks.diamond_block)
{
return 20;
}
if(block == Blocks.gold_block)
{
return 10;
}
if(block == Blocks.iron_block)
{
return 5;
}
return 1;
}
}

View file

@ -0,0 +1,206 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.effect.EntityLightningBolt;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.ModBlocks;
import WayofTime.alchemicalWizardry.ModItems;
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.common.items.BoundArmour;
import WayofTime.alchemicalWizardry.common.items.sigil.SigilOfHolding;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectUnbinding extends RitualEffect
{
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (currentEssence < this.getCostPerRefresh())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
int d0 = 0;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0);
List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb);
Iterator iterator = list.iterator();
EntityItem item;
while (iterator.hasNext())
{
item = (EntityItem) iterator.next();
// double xDif = item.posX - (xCoord+0.5);
// double yDif = item.posY - (yCoord+1);
// double zDif = item.posZ - (zCoord+0.5);
ItemStack itemStack = item.getEntityItem();
if (itemStack == null)
{
continue;
}
if (itemStack.getItem() == ModItems.boundHelmet)
{
ritualStone.setVar1(5);
} else if (itemStack.getItem() == ModItems.boundPlate)
{
ritualStone.setVar1(8);
} else if (itemStack.getItem() == ModItems.boundLeggings)
{
ritualStone.setVar1(7);
} else if (itemStack.getItem() == ModItems.boundBoots)
{
ritualStone.setVar1(4);
} else if (itemStack.getItem() == ModItems.sigilOfHolding)
{
ritualStone.setVar1(-1);
}
if (ritualStone.getVar1() > 0)
{
item.setDead();
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5));
world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z));
world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z));
NBTTagCompound itemTag = itemStack.stackTagCompound;
ItemStack[] inv = ((BoundArmour) itemStack.getItem()).getInternalInventory(itemStack);
if (inv != null)
{
for (ItemStack internalItem : inv)
{
if (internalItem != null)
{
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy());
world.spawnEntityInWorld(newItem);
}
}
}
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(ModBlocks.bloodSocket, ritualStone.getVar1()));
world.spawnEntityInWorld(newItem);
ritualStone.setActive(false);
break;
} else if (ritualStone.getVar1() == -1)
{
item.setDead();
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5));
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5));
world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z));
world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z));
NBTTagCompound itemTag = itemStack.stackTagCompound;
ItemStack[] inv = ((SigilOfHolding) itemStack.getItem()).getInternalInventory(itemStack);
if (inv != null)
{
for (ItemStack internalItem : inv)
{
if (internalItem != null)
{
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy());
world.spawnEntityInWorld(newItem);
}
}
}
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, new ItemStack(ModItems.sigilOfHolding, 1, 0));
world.spawnEntityInWorld(newItem);
ritualStone.setActive(false);
break;
}
if (world.rand.nextInt(10) == 0)
{
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 1, x, y, z);
}
}
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> unbindingRitual = new ArrayList();
unbindingRitual.add(new RitualComponent(-2, 0, 0, 4));
unbindingRitual.add(new RitualComponent(2, 0, 0, 4));
unbindingRitual.add(new RitualComponent(0, 0, 2, 4));
unbindingRitual.add(new RitualComponent(0, 0, -2, 4));
unbindingRitual.add(new RitualComponent(-2, 0, -2, 3));
unbindingRitual.add(new RitualComponent(-2, 0, -3, 3));
unbindingRitual.add(new RitualComponent(-3, 0, -2, 3));
unbindingRitual.add(new RitualComponent(2, 0, -2, 3));
unbindingRitual.add(new RitualComponent(2, 0, -3, 3));
unbindingRitual.add(new RitualComponent(3, 0, -2, 3));
unbindingRitual.add(new RitualComponent(-2, 0, 2, 3));
unbindingRitual.add(new RitualComponent(-2, 0, 3, 3));
unbindingRitual.add(new RitualComponent(-3, 0, 2, 3));
unbindingRitual.add(new RitualComponent(2, 0, 2, 3));
unbindingRitual.add(new RitualComponent(2, 0, 3, 3));
unbindingRitual.add(new RitualComponent(3, 0, 2, 3));
unbindingRitual.add(new RitualComponent(3, 1, 3, 0));
unbindingRitual.add(new RitualComponent(3, 1, -3, 0));
unbindingRitual.add(new RitualComponent(-3, 1, -3, 0));
unbindingRitual.add(new RitualComponent(-3, 1, 3, 0));
unbindingRitual.add(new RitualComponent(3, 2, 3, 0));
unbindingRitual.add(new RitualComponent(3, 2, -3, 0));
unbindingRitual.add(new RitualComponent(-3, 2, -3, 0));
unbindingRitual.add(new RitualComponent(-3, 2, 3, 0));
unbindingRitual.add(new RitualComponent(3, 3, 3, 2));
unbindingRitual.add(new RitualComponent(3, 3, -3, 2));
unbindingRitual.add(new RitualComponent(-3, 3, -3, 2));
unbindingRitual.add(new RitualComponent(-3, 3, 3, 2));
unbindingRitual.add(new RitualComponent(-5, 0, 0, 2));
unbindingRitual.add(new RitualComponent(5, 0, 0, 2));
unbindingRitual.add(new RitualComponent(0, 0, 5, 2));
unbindingRitual.add(new RitualComponent(0, 0, -5, 2));
return unbindingRitual;
}
}

View file

@ -0,0 +1,83 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.block.BlockSpectralContainer;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectWater 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;
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())
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} 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.water, 0, 3);
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
public int getCostPerRefresh()
{
return 25;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> waterRitual = new ArrayList();
waterRitual.add(new RitualComponent(-1, 0, 1, 1));
waterRitual.add(new RitualComponent(-1, 0, -1, 1));
waterRitual.add(new RitualComponent(1, 0, -1, 1));
waterRitual.add(new RitualComponent(1, 0, 1, 1));
return waterRitual;
}
}

View file

@ -0,0 +1,182 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
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.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
public class RitualEffectWellOfSuffering extends RitualEffect
{
public final int timeDelay = 25;
public final int amount = 10;
@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;
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % this.timeDelay != 0)
{
return;
}
// if(!(world.getBlockTileEntity(x, y-1, z) instanceof TEAltar))
// {
// return;
// }
TEAltar tileAltar = null;
boolean testFlag = false;
for (int i = -5; i <= 5; i++)
{
for (int j = -5; j <= 5; j++)
{
for (int k = -10; k <= 10; k++)
{
if (world.getTileEntity(x + i, y + k, z + j) instanceof TEAltar)
{
tileAltar = (TEAltar) world.getTileEntity(x + i, y + k, z + j);
testFlag = true;
}
}
}
}
if (!testFlag)
{
return;
}
//tileAltar = (TEAltar)world.getBlockTileEntity(x,y-1,z);
int d0 = 10;
int vertRange = 5;
AxisAlignedBB axisalignedbb = AxisAlignedBB.getBoundingBox((double) x, (double) y, (double) z, (double) (x + 1), (double) (y + 1), (double) (z + 1)).expand(d0, vertRange, d0);
List list = world.getEntitiesWithinAABB(EntityLivingBase.class, axisalignedbb);
Iterator iterator1 = list.iterator();
EntityLivingBase entity;
int entityCount = 0;
boolean flag = false;
while (iterator1.hasNext())
{
entity = (EntityLivingBase) iterator1.next();
entityCount++;
}
if (currentEssence < this.getCostPerRefresh() * entityCount)
{
EntityPlayer entityOwner = SpellHelper.getPlayerForUsername(owner);
if (entityOwner == null)
{
return;
}
entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
} else
{
Iterator iterator2 = list.iterator();
entityCount = 0;
while (iterator2.hasNext())
{
entity = (EntityLivingBase) iterator2.next();
if (entity instanceof EntityPlayer)
{
continue;
}
//entity.setHealth(entity.getHealth()-1);
entity.attackEntityFrom(DamageSource.outOfWorld, 1);
entityCount++;
// if(entity.getHealth()<=0.2f)
// {
// entity.onDeath(DamageSource.inFire);
// }
tileAltar.sacrificialDaggerCall(this.amount, true);
}
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount;
data.markDirty();
}
}
@Override
public int getCostPerRefresh()
{
// TODO Auto-generated method stub
return 2;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> wellOfSufferingRitual = new ArrayList();
wellOfSufferingRitual.add(new RitualComponent(1, 0, 1, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(-1, 0, 1, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(1, 0, -1, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(-1, 0, -1, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(2, -1, 2, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(2, -1, -2, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(-2, -1, 2, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(-2, -1, -2, RitualComponent.FIRE));
wellOfSufferingRitual.add(new RitualComponent(0, -1, 2, RitualComponent.EARTH));
wellOfSufferingRitual.add(new RitualComponent(2, -1, 0, RitualComponent.EARTH));
wellOfSufferingRitual.add(new RitualComponent(0, -1, -2, RitualComponent.EARTH));
wellOfSufferingRitual.add(new RitualComponent(-2, -1, 0, RitualComponent.EARTH));
wellOfSufferingRitual.add(new RitualComponent(-3, -1, -3, RitualComponent.DUSK));
wellOfSufferingRitual.add(new RitualComponent(3, -1, -3, RitualComponent.DUSK));
wellOfSufferingRitual.add(new RitualComponent(-3, -1, 3, RitualComponent.DUSK));
wellOfSufferingRitual.add(new RitualComponent(3, -1, 3, RitualComponent.DUSK));
wellOfSufferingRitual.add(new RitualComponent(2, -1, 4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(4, -1, 2, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-2, -1, 4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(4, -1, -2, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(2, -1, -4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-4, -1, 2, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-2, -1, -4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-4, -1, -2, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(1, 0, 4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(4, 0, 1, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(1, 0, -4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-4, 0, 1, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-1, 0, 4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(4, 0, -1, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-1, 0, -4, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(-4, 0, -1, RitualComponent.WATER));
wellOfSufferingRitual.add(new RitualComponent(4, 1, 0, RitualComponent.AIR));
wellOfSufferingRitual.add(new RitualComponent(0, 1, 4, RitualComponent.AIR));
wellOfSufferingRitual.add(new RitualComponent(-4, 1, 0, RitualComponent.AIR));
wellOfSufferingRitual.add(new RitualComponent(0, 1, -4, RitualComponent.AIR));
return wellOfSufferingRitual;
}
}