diff --git a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index 5c241a72..4ff55520 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -916,7 +916,14 @@ public class AlchemicalWizardry ItemStack potencyCoreStack = new ItemStack(ModItems.baseItems, 1, 24); ItemStack obsidianBraceStack = new ItemStack(ModItems.baseItems, 1, 25); ItemStack etherealSlateStack = new ItemStack(ModItems.baseItems, 1, 27); + ItemStack lifeShardStack = new ItemStack(ModItems.baseItems, 1, 28); + ItemStack soulShardStack = new ItemStack(ModItems.baseItems, 1, 29); + ItemStack soulRunicPlateStack = new ItemStack(ModItems.baseItems, 1, 30); + ItemStack livingBraceStack = new ItemStack(ModItems.baseItems, 1, 31); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockCrystal), "lsl", "sls", "lsl", 'l', lifeShardStack, 's', soulShardStack); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockCrystal, 4, 1), "ss", "ss", 's', new ItemStack(ModBlocks.blockCrystal, 1, 0)); + ItemStack magicalesCraftedCableStack = new ItemStack(ModItems.baseItems, 5, 2); ItemStack crackedRunicPlateStackCrafted = new ItemStack(ModItems.baseItems, 2, 15); ItemStack runicPlateStackCrafted = new ItemStack(ModItems.baseItems, 2, 16); @@ -927,6 +934,7 @@ public class AlchemicalWizardry GameRegistry.addRecipe(woodBraceStack, " il", "ili", "li ", 'l', new ItemStack(Blocks.log, 1, craftingConstant), 'i', new ItemStack(Items.string)); GameRegistry.addRecipe(stoneBraceStack, " is", "isi", "si ", 'i', ironIngotStack, 's', reinforcedSlateStack); GameRegistry.addRecipe(obsidianBraceStack, " is", "ibi", "si ", 'i', obsidianStack, 's', reinforcedSlateStack, 'b', stoneBraceStack); + GameRegistry.addRecipe(livingBraceStack, " gc", "gog", "sg ", 'g', goldIngotStack, 'o', obsidianBraceStack, 'c', lifeShardStack, 's', demonSlateStack); GameRegistry.addRecipe(new ShapedBloodOrbRecipe(projectileCoreStack, "mbm", "aca", "mom", 'c', emptyCoreStack, 'b', weakBloodShardStack, 'm', magicalesStack, 'o', magicianBloodOrbStack, 'a', new ItemStack(Items.arrow))); GameRegistry.addRecipe(new ShapedBloodOrbRecipe(selfCoreStack, "sbs", "ncn", "sos", 'c', emptyCoreStack, 's', sanctusStack, 'b', weakBloodShardStack, 'o', magicianBloodOrbStack, 'n', glowstoneDustStack)); @@ -960,7 +968,8 @@ public class AlchemicalWizardry AlchemyRecipeRegistry.registerRecipe(runicPlateStack, 30, new ItemStack[]{crackedRunicPlateStack, terraeStack}, 5); AlchemyRecipeRegistry.registerRecipe(imbuedRunicPlateStack, 100, new ItemStack[]{magicalesStack, incendiumStack, runicPlateStack, runicPlateStack, aquasalusStack}, 5); AlchemyRecipeRegistry.registerRecipe(complexSpellCrystalStack, 50, new ItemStack[]{new ItemStack(ModItems.blankSpell), weakBloodShardStack, weakBloodShardStack, diamondStack, goldIngotStack}, 3); - + AlchemyRecipeRegistry.registerRecipe(soulRunicPlateStack, 150, new ItemStack[]{imbuedRunicPlateStack, soulShardStack, soulShardStack, weakBloodShardStack, diamondStack}, 6); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockConduit, 1, 0), "q q", "ccc", "q q", 'q', quartzRodStack, 'c', magicalesCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm, 1, 0), "gb ", "pcw", "gb ", 'p', paradigmBackPlateStack, 'c', projectileCoreStack, 'g', goldIngotStack, 'b', stoneBraceStack, 'w', outputCableStack); @@ -981,12 +990,15 @@ public class AlchemicalWizardry GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 0), "bpb", "ico", "bpb", 'c', powerCoreStack, 'b', woodBraceStack, 'p', crackedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 1), "bpb", "ico", "bpb", 'c', powerCoreStack, 'b', stoneBraceStack, 'p', runicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 2), "bpb", "ico", "bpb", 'c', powerCoreStack, 'b', obsidianBraceStack, 'p', imbuedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 3), "bpb", "ico", "bpb", 'c', powerCoreStack, 'b', livingBraceStack, 'p', soulRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 5), "bpb", "ico", "bpb", 'c', costCoreStack, 'b', woodBraceStack, 'p', crackedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 6), "bpb", "ico", "bpb", 'c', costCoreStack, 'b', stoneBraceStack, 'p', runicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 7), "bpb", "ico", "bpb", 'c', costCoreStack, 'b', obsidianBraceStack, 'p', imbuedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 8), "bpb", "ico", "bpb", 'c', costCoreStack, 'b', livingBraceStack, 'p', soulRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 10), "bpb", "ico", "bpb", 'c', potencyCoreStack, 'b', woodBraceStack, 'p', crackedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 11), "bpb", "ico", "bpb", 'c', potencyCoreStack, 'b', stoneBraceStack, 'p', runicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 12), "bpb", "ico", "bpb", 'c', potencyCoreStack, 'b', obsidianBraceStack, 'p', imbuedRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEnhancement, 1, 13), "bpb", "ico", "bpb", 'c', potencyCoreStack, 'b', livingBraceStack, 'p', soulRunicPlateStack, 'i', inputCableStack, 'o', outputCableStack); GameRegistry.addRecipe(new ItemStack(ModItems.itemAttunedCrystal), "Sr ", " ar", "s S", 'r', quartzRodStack, 's', new ItemStack(Items.stick, 1, craftingConstant), 'a', strengthenedCatalystStack, 'S', stoneStack); GameRegistry.addRecipe(new ItemStack(ModItems.itemTankSegmenter), "gqi", " rq", "q g", 'q', quartzRodStack, 'i', ironIngotStack, 'r', strengthenedCatalystStack, 'g', goldIngotStack); @@ -1161,12 +1173,14 @@ public class AlchemicalWizardry AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.magicianBloodOrb), new ItemStack(Blocks.gold_block), 3, 25000, 20, 20, false); AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.masterBloodOrb), new ItemStack(ModItems.weakBloodShard), 4, 40000, 30, 50, false); AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.archmageBloodOrb), new ItemStack(ModItems.demonBloodShard), 5, 75000, 50, 100, false); + AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.transcendentBloodOrb), new ItemStack(ModBlocks.blockCrystal), 6, 200000, 100, 200, false); AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.weakBloodOrb), 1, 2); AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.apprenticeBloodOrb), 2, 5); AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.magicianBloodOrb), 3, 15); AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.masterBloodOrb), 4, 25); AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.archmageBloodOrb), 5, 50); + AltarRecipeRegistry.registerAltarOrbRecipe(new ItemStack(ModItems.transcendentBloodOrb), 6, 100); AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.telepositionFocus), new ItemStack(Items.ender_pearl), 4, 2000, 10, 10, false); AltarRecipeRegistry.registerAltarRecipe(new ItemStack(ModItems.enhancedTelepositionFocus), new ItemStack(ModItems.telepositionFocus), 4, 10000, 25, 15, false); @@ -1220,7 +1234,7 @@ public class AlchemicalWizardry Rituals.registerRitual("AW028SpawnWard", 1, 150000, new RitualEffectSpawnWard(), "Ward of Sacrosanctity", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 0, 0, 0, 255, 0, 0.501, 0.501, 0, 1.5, false)); Rituals.registerRitual("AW029VeilOfEvil", 1, 150000, new RitualEffectVeilOfEvil(), "Veil of Evil", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 0, 0, 0, 255, 0, 0.501, 0.501, 0, 1.5, false)); Rituals.registerRitual("AW030FullStomach", 1, 100000, new RitualEffectFullStomach(), "Requiem of the Satiated Stomach", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 0, 0, 0, 255, 0, 0.501, 0.501, 0, 1.5, false)); - Rituals.registerRitual("AW031DemonPortal", 2, 15000000, new RitualEffectDemonPortal(), "Convocation of the Damned", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/TransCircleDemon.png"), 220, 22, 22, 255, 0, 0.501, 0.501, 0, 5, false)); + Rituals.registerRitual("AW031Convocation", 2, 15000000, new RitualEffectDemonPortal(), "Convocation of the Damned", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/TransCircleDemon.png"), 220, 22, 22, 255, 0, 0.501, 0.501, 0, 5, false)); //Rituals.registerRitual(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock")); } diff --git a/src/main/java/WayofTime/alchemicalWizardry/ModBlocks.java b/src/main/java/WayofTime/alchemicalWizardry/ModBlocks.java index 15f8f6ca..4932e815 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/ModBlocks.java +++ b/src/main/java/WayofTime/alchemicalWizardry/ModBlocks.java @@ -7,6 +7,7 @@ import WayofTime.alchemicalWizardry.common.block.BlockAltar; import WayofTime.alchemicalWizardry.common.block.BlockBelljar; import WayofTime.alchemicalWizardry.common.block.BlockBloodLightSource; import WayofTime.alchemicalWizardry.common.block.BlockConduit; +import WayofTime.alchemicalWizardry.common.block.BlockCrystal; import WayofTime.alchemicalWizardry.common.block.BlockDemonPortal; import WayofTime.alchemicalWizardry.common.block.BlockHomHeart; import WayofTime.alchemicalWizardry.common.block.BlockMasterStone; @@ -37,6 +38,7 @@ import WayofTime.alchemicalWizardry.common.block.SpeedRune; import WayofTime.alchemicalWizardry.common.demonVillage.tileEntity.BlockDemonChest; import WayofTime.alchemicalWizardry.common.items.ItemBlockCrystalBelljar; import WayofTime.alchemicalWizardry.common.items.ItemBloodRuneBlock; +import WayofTime.alchemicalWizardry.common.items.ItemCrystalBlock; import WayofTime.alchemicalWizardry.common.items.ItemSpellEffectBlock; import WayofTime.alchemicalWizardry.common.items.ItemSpellEnhancementBlock; import WayofTime.alchemicalWizardry.common.items.ItemSpellModifierBlock; @@ -87,6 +89,7 @@ public class ModBlocks public static Block blockAlchemicCalcinator; public static Block blockCrystalBelljar; public static Block blockDemonChest; + public static Block blockCrystal; public static void init() { @@ -123,6 +126,7 @@ public class ModBlocks blockAlchemicCalcinator = new BlockAlchemicCalcinator(); blockCrystalBelljar = new BlockBelljar(); blockDemonChest = new BlockDemonChest(); + blockCrystal = new BlockCrystal(); blockLifeEssence = new LifeEssenceBlock(); } @@ -166,6 +170,7 @@ public class ModBlocks GameRegistry.registerBlock(ModBlocks.blockAlchemicCalcinator, "blockAlchemicCalcinator"); GameRegistry.registerBlock(ModBlocks.blockCrystalBelljar, ItemBlockCrystalBelljar.class, "blockCrystalBelljar"); GameRegistry.registerBlock(ModBlocks.blockDemonChest, "blockDemonChest"); + GameRegistry.registerBlock(ModBlocks.blockCrystal, ItemCrystalBlock.class, "blockCrystal"); } public static void registerBlocksInInit() diff --git a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java index 3965fb93..d4c5e80a 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java @@ -44,6 +44,7 @@ import WayofTime.alchemicalWizardry.common.items.MasterBloodOrb; import WayofTime.alchemicalWizardry.common.items.ReinforcedTelepositionFocus; import WayofTime.alchemicalWizardry.common.items.SacrificialDagger; import WayofTime.alchemicalWizardry.common.items.TelepositionFocus; +import WayofTime.alchemicalWizardry.common.items.TranscendentBloodOrb; import WayofTime.alchemicalWizardry.common.items.WaterScribeTool; import WayofTime.alchemicalWizardry.common.items.energy.ItemAttunedCrystal; import WayofTime.alchemicalWizardry.common.items.energy.ItemDestinationClearer; @@ -201,6 +202,8 @@ public class ModItems public static Item bucketLife; public static Item itemBloodPack; + + public static Item transcendentBloodOrb; public static void init() { @@ -209,6 +212,7 @@ public class ModItems magicianBloodOrb = new MagicianBloodOrb(150000).setUnlocalizedName("magicianBloodOrb"); masterBloodOrb = new MasterBloodOrb(1000000).setUnlocalizedName("masterBloodOrb"); archmageBloodOrb = new ArchmageBloodOrb(10000000).setUnlocalizedName("archmageBloodOrb"); + transcendentBloodOrb = new TranscendentBloodOrb(30000000).setUnlocalizedName("transcendentBloodOrb"); energyBlaster = new EnergyBlast().setUnlocalizedName("energyBlast"); energySword = new EnergySword().setUnlocalizedName("energySword"); lavaCrystal = new LavaCrystal().setUnlocalizedName("lavaCrystal"); @@ -362,6 +366,7 @@ public class ModItems GameRegistry.registerItem(ModItems.tennebrae, "tennebrae"); GameRegistry.registerItem(ModItems.demonBloodShard, "demonBloodShard"); GameRegistry.registerItem(ModItems.archmageBloodOrb, "archmageBloodOrb"); + GameRegistry.registerItem(ModItems.transcendentBloodOrb, "transcendentBloodOrb"); GameRegistry.registerItem(ModItems.sigilOfWind, "sigilOfWind"); GameRegistry.registerItem(ModItems.telepositionFocus, "telepositionFocus"); GameRegistry.registerItem(ModItems.enhancedTelepositionFocus, "enhancedTelepositionFocus"); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrystal.java b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrystal.java new file mode 100644 index 00000000..ea95d12e --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrystal.java @@ -0,0 +1,81 @@ +package WayofTime.alchemicalWizardry.common.block; + +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.ModBlocks; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +import java.util.List; + +public class BlockCrystal extends Block +{ + //private Icon bloodRuneIcon; + private IIcon fullIcon; + private IIcon brickIcon; + + + public BlockCrystal() + { + super(Material.iron); + this.setBlockName("crystalBlock"); + setCreativeTab(AlchemicalWizardry.tabBloodMagic); + setHardness(2.0F); + setResistance(5.0F); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) + { + this.blockIcon = iconRegister.registerIcon("AlchemicalWizardry:BlankRune"); + this.fullIcon = iconRegister.registerIcon("AlchemicalWizardry:ShardCluster"); + this.brickIcon = iconRegister.registerIcon("AlchemicalWizardry:ShardClusterBrick"); + } + + @SideOnly(Side.CLIENT) + + /** + * returns a list of items with the same ID, but different meta (eg: dye returns 16 items) + */ + public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) + { + if (this.equals(ModBlocks.blockCrystal)) + { + par3List.add(new ItemStack(par1, 1, 0)); + par3List.add(new ItemStack(par1, 1, 1)); + } else + { + super.getSubBlocks(par1, par2CreativeTabs, par3List); + } + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) + { + switch (meta) + { + case 0: + return fullIcon; + + case 1: + return brickIcon; + + default: + return blockIcon; + } + } + + @Override + public int damageDropped(int metadata) + { + return metadata; + } +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java b/src/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java index 43926eb2..ad8839b2 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/bloodAltarUpgrade/UpgradedAltars.java @@ -15,7 +15,8 @@ public class UpgradedAltars public static List thirdTierAltar = new ArrayList(); public static List fourthTierAltar = new ArrayList(); public static List fifthTierAltar = new ArrayList(); - public static int highestAltar = 5; + public static List sixthTierAltar = new ArrayList(); + public static int highestAltar = 6; public static int isAltarValid(World world, int x, int y, int z) { @@ -136,6 +137,31 @@ public class UpgradedAltars } return true; + + case 6: + for (AltarComponent ac : sixthTierAltar) + { + if (ac.isBloodRune()) + { + Block testBlock = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); + + if (!(testBlock instanceof BloodRune)) + { + return false; + } + } else + { + Block block = world.getBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()); + int metadata = world.getBlockMetadata(x + ac.getX(), y + ac.getY(), z + ac.getZ()); + + if (((ac.getBlock() != block) || (ac.getMetadata() != metadata)) && !(ac.getBlock() == Blocks.stonebrick && !world.isAirBlock(x + ac.getX(), y + ac.getY(), z + ac.getZ()))) + { + return false; + } + } + } + + return true; default: return false; @@ -279,6 +305,29 @@ public class UpgradedAltars fifthTierAltar.add(new AltarComponent(i, -4, 8, ModBlocks.bloodRune, 0, true, true)); fifthTierAltar.add(new AltarComponent(i, -4, -8, ModBlocks.bloodRune, 0, true, true)); } + + sixthTierAltar.addAll(fifthTierAltar); + + for(int i = -4; i <= 2; i++) + { + sixthTierAltar.add(new AltarComponent(11, i, 11, Blocks.stonebrick, 0, false, false)); + sixthTierAltar.add(new AltarComponent(-11, i, -11, Blocks.stonebrick, 0, false, false)); + sixthTierAltar.add(new AltarComponent(11, i, -11, Blocks.stonebrick, 0, false, false)); + sixthTierAltar.add(new AltarComponent(-11, i, 11, Blocks.stonebrick, 0, false, false)); + } + + sixthTierAltar.add(new AltarComponent(11, 3, 11, ModBlocks.blockCrystal, 0, false, false)); + sixthTierAltar.add(new AltarComponent(-11, 3, -11, ModBlocks.blockCrystal, 0, false, false)); + sixthTierAltar.add(new AltarComponent(11, 3, -11, ModBlocks.blockCrystal, 0, false, false)); + sixthTierAltar.add(new AltarComponent(-11, 3, 11, ModBlocks.blockCrystal, 0, false, false)); + + for (int i = -9; i <= 9; i++) + { + sixthTierAltar.add(new AltarComponent(11, -5, i, ModBlocks.bloodRune, 0, true, true)); + sixthTierAltar.add(new AltarComponent(-11, -5, i, ModBlocks.bloodRune, 0, true, true)); + sixthTierAltar.add(new AltarComponent(i, -5, 11, ModBlocks.bloodRune, 0, true, true)); + sixthTierAltar.add(new AltarComponent(i, -5, -11, ModBlocks.bloodRune, 0, true, true)); + } } public static List getAltarUpgradeListForTier(int tier) @@ -296,6 +345,9 @@ public class UpgradedAltars case 5: return fifthTierAltar; + + case 6: + return sixthTierAltar; } return null; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java index 49b74f2f..24b04cee 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java @@ -97,6 +97,34 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan } } + @Override + protected void dropFewItems(boolean par1, int par2) + { + if(!this.getDoesDropCrystal()) + { + ItemStack lifeShardStack = new ItemStack(ModItems.baseItems, 1, 28); + ItemStack soulShardStack = new ItemStack(ModItems.baseItems, 1, 29); + + int dropAmount = 0; + + for(int i=0; i<=par2; i++) + { + dropAmount += this.worldObj.rand.nextFloat() < 0.6f ? 1 : 0; + } + + ItemStack drop = this.worldObj.rand.nextBoolean() ? lifeShardStack : soulShardStack; + drop.stackSize = dropAmount; + + if(dropAmount > 0) + { + this.entityDropItem(drop, 0.0f); + } + }else + { + super.dropFewItems(par1, par2); + } + } + @Override public void setPortalLocation(Int3 position) { diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java b/src/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java index b2ecdba1..5aa8394f 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/entity/mob/EntityDemon.java @@ -61,6 +61,7 @@ public class EntityDemon extends EntityTameable implements IDemon return null; } + @Override protected void dropFewItems(boolean par1, int par2) { if(this.getDoesDropCrystal()) diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java index 146f3502..e47a3782 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemComponents.java @@ -16,7 +16,7 @@ import java.util.List; public class ItemComponents extends Item { - private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore", "MeleeCore", "ParadigmBackPlate", "OutputCable", "FlameCore", "IcyCore", "GustCore", "EarthenCore", "InputCable", "CrackedRunicPlate", "RunicPlate", "ScribedRunicPlate", "DefaultCore", "OffensiveCore", "DefensiveCore", "EnvironmentalCore", "PowerCore", "CostCore", "PotencyCore", "ObsidianBrace", "ToolCore", "EtherealSlate"}; + private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore", "MeleeCore", "ParadigmBackPlate", "OutputCable", "FlameCore", "IcyCore", "GustCore", "EarthenCore", "InputCable", "CrackedRunicPlate", "RunicPlate", "ScribedRunicPlate", "DefaultCore", "OffensiveCore", "DefensiveCore", "EnvironmentalCore", "PowerCore", "CostCore", "PotencyCore", "ObsidianBrace", "ToolCore", "EtherealSlate", "LifeShard", "SoulShard", "SoulRunicPlate", "LifeBrace"}; @SideOnly(Side.CLIENT) private IIcon[] icons; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemCrystalBlock.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemCrystalBlock.java new file mode 100644 index 00000000..d063cdde --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemCrystalBlock.java @@ -0,0 +1,48 @@ +package WayofTime.alchemicalWizardry.common.items; + +import net.minecraft.block.Block; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemCrystalBlock extends ItemBlock + +{ + public ItemCrystalBlock(Block par1) + { + super(par1); + setHasSubtypes(true); + + } + + public String getUnlocalizedName(ItemStack itemstack) + + { + String name = ""; + + switch (itemstack.getItemDamage()) + { + case 0: + { + name = "fullCrystal"; + break; + } + + case 1: + { + name = "crystalBrick"; + break; + } + + default: + name = "broken"; + } + + return getUnlocalizedName() + "." + name; + } + + public int getMetadata(int par1) + + { + return par1; + } +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/TranscendentBloodOrb.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/TranscendentBloodOrb.java new file mode 100644 index 00000000..ecab2b21 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/TranscendentBloodOrb.java @@ -0,0 +1,21 @@ +package WayofTime.alchemicalWizardry.common.items; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; + +public class TranscendentBloodOrb extends EnergyBattery +{ + public TranscendentBloodOrb(int damage) + { + super(damage); + orbLevel = 6; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconRegister) + { + this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:TranscendentBloodOrb"); + } +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java index 91a78d42..0fbd6e01 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/renderer/block/itemRender/TESpellEnhancementBlockItemRenderer.java @@ -85,24 +85,30 @@ public class TESpellEnhancementBlockItemRenderer implements IItemRenderer { switch (meta) { - case 0: - return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; - case 1: - return "alchemicalwizardry:textures/models/SpellEnhancementPower2.png"; - case 2: - return "alchemicalwizardry:textures/models/SpellEnhancementPower3.png"; - case 5: - return "alchemicalwizardry:textures/models/SpellEnhancementCost1.png"; - case 6: - return "alchemicalwizardry:textures/models/SpellEnhancementCost2.png"; - case 7: - return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; - case 10: - return "alchemicalwizardry:textures/models/SpellEnhancementPotency1.png"; - case 11: - return "alchemicalwizardry:textures/models/SpellEnhancementPotency2.png"; - case 12: - return "alchemicalwizardry:textures/models/SpellEnhancementPotency3.png"; + case 0: + return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; + case 1: + return "alchemicalwizardry:textures/models/SpellEnhancementPower2.png"; + case 2: + return "alchemicalwizardry:textures/models/SpellEnhancementPower3.png"; + case 3: + return "alchemicalwizardry:textures/models/SpellEnhancementPower4.png"; + case 5: + return "alchemicalwizardry:textures/models/SpellEnhancementCost1.png"; + case 6: + return "alchemicalwizardry:textures/models/SpellEnhancementCost2.png"; + case 7: + return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; + case 8: + return "alchemicalwizardry:textures/models/SpellEnhancementCost4.png"; + case 10: + return "alchemicalwizardry:textures/models/SpellEnhancementPotency1.png"; + case 11: + return "alchemicalwizardry:textures/models/SpellEnhancementPotency2.png"; + case 12: + return "alchemicalwizardry:textures/models/SpellEnhancementPotency3.png"; + case 13: + return "alchemicalwizardry:textures/models/SpellEnhancementPotency4.png"; } return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java index 576b1c52..2682d67b 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TESpellEnhancementBlock.java @@ -144,18 +144,24 @@ public class TESpellEnhancementBlock extends TESpellBlock return "alchemicalwizardry:textures/models/SpellEnhancementPower2.png"; case 2: return "alchemicalwizardry:textures/models/SpellEnhancementPower3.png"; + case 3: + return "alchemicalwizardry:textures/models/SpellEnhancementPower4.png"; case 5: return "alchemicalwizardry:textures/models/SpellEnhancementCost1.png"; case 6: return "alchemicalwizardry:textures/models/SpellEnhancementCost2.png"; case 7: - return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; + return "alchemicalwizardry:textures/models/SpellEnhancementCost3.png"; + case 8: + return "alchemicalwizardry:textures/models/SpellEnhancementCost4.png"; case 10: return "alchemicalwizardry:textures/models/SpellEnhancementPotency1.png"; case 11: return "alchemicalwizardry:textures/models/SpellEnhancementPotency2.png"; case 12: return "alchemicalwizardry:textures/models/SpellEnhancementPotency3.png"; + case 13: + return "alchemicalwizardry:textures/models/SpellEnhancementPotency4.png"; } return "alchemicalwizardry:textures/models/SpellEnhancementPower1.png"; diff --git a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang index 1bc12184..b89be434 100644 --- a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -55,6 +55,8 @@ tile.alchemicCalcinator.name=Alchemic Calcinator tile.crystalBelljar.name=Crystal Belljar tile.blockReagentConduit.name=Alchemy Relay tile.lifeEssenceFluidBlock.name=Life Essence +tile.crystalBlock.fullCrystal.name=Crystal Cluster +tile.crystalBlock.crystalBrick.name=Crystal Cluster Brick #Item Localization item.weakBloodOrb.name=Weak Blood Orb @@ -165,6 +167,8 @@ item.bloodMagicBaseItem.CostCore.name=Reduction Core item.bloodMagicBaseItem.PotencyCore.name=Potency Core item.bloodMagicBaseItem.ObsidianBrace.name=Obsidian Brace item.bloodMagicBaseItem.EtherealSlate.name=Ethereal Slate +item.bloodMagicBaseItem.LifeShard.name=Life Shard +item.bloodMagicBaseItem.SoulShard.name=Soul Shard item.bloodMagicAlchemyItem.Offensa.name=Offensa item.bloodMagicAlchemyItem.Praesidium.name=Praesidium item.bloodMagicAlchemyItem.OrbisTerrae.name=Orbis Terrae @@ -190,6 +194,7 @@ item.creativeDagger.name=Creative Sacrificial Knife item.itemBloodPack.name=Blood Letter's Pack item.itemHarvestSigil.name=Harvest Goddess Sigil item.itemCompressionSigil.name=Sigil of Compression +item.transcendentBloodOrb.name=Transcendent Blood Orb #Creative Tab itemGroup.tabBloodMagic=Blood Magic diff --git a/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardCluster.png b/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardCluster.png new file mode 100644 index 00000000..0eeaaf47 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardCluster.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardClusterBrick.png b/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardClusterBrick.png new file mode 100644 index 00000000..c2d3e27f Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/blocks/ShardClusterBrick.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/TranscendentBloodOrb.png b/src/main/resources/assets/alchemicalwizardry/textures/items/TranscendentBloodOrb.png new file mode 100644 index 00000000..5066e683 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/TranscendentBloodOrb.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeBrace.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeBrace.png new file mode 100644 index 00000000..578790ef Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeBrace.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeShard.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeShard.png new file mode 100644 index 00000000..14e5237d Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemLifeShard.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png index 81a8df86..3b9891e0 100644 Binary files a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemScribedRunicPlate.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulRunicPlate.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulRunicPlate.png new file mode 100644 index 00000000..d92eb06d Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulRunicPlate.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulShard.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulShard.png new file mode 100644 index 00000000..13420bd1 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseItemSoulShard.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost4.png b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost4.png new file mode 100644 index 00000000..8e4327bd Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementCost4.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency4.png b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency4.png new file mode 100644 index 00000000..99448544 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPotency4.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower4.png b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower4.png new file mode 100644 index 00000000..492e505e Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/models/SpellEnhancementPower4.png differ