diff --git a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index ebe5c9f0..34c15d09 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -317,28 +317,44 @@ public class AlchemicalWizardry public static HashMap, Integer> lpPerSactificeCustom; public static int energyBlastDamage = 12; - public static int energyBlastSecondTierDamage = 12; public static int energyBlastLPPerShot = 150; - public static int energyBlastSecondTierLPPerShot = 150; public static int energyBlastMaxDelay = 15; public static int energyBlastMaxDelayAfterActivation = 100; + public static int energyBlastLPPerActivation = 50; + + public static int energyBlastSecondTierDamage = 12; + public static int energyBlastSecondTierLPPerShot = 150; public static int energyBlastSecondTierMaxDelay = 15; public static int energyBlastSecondTierMaxDelayAfterActivation = 100; - public static int energyBlastLPPerActivation = 50; public static int energyBlastSecondTierLPPerActivation = 50; + + public static int energyBlastThirdTierDamage = 12; + public static int energyBlastThirdTierLPPerShot = 150; + public static int energyBlastThirdTierMaxDelay = 15; + public static int energyBlastThirdTierMaxDelayAfterActivation = 100; + public static int energyBlastThirdTierLPPerActivation = 50; + public static int energyBazookaDamage = 12; - public static int energyBazookaSecondTierDamage = 12; public static int energyBazookaSecondaryDamage = 15; - public static int energyBazookaSecondTierSecondaryDamage = 15; public static int energyBazookaLPPerShot = 20000; - public static int energyBazookaSecondTierLPPerShot = 20000; public static int energyBazookaMaxDelay = 150; public static int energyBazookaMaxDelayAfterActivation = 100; + public static int energyBazookaLPPerActivation = 50; + + public static int energyBazookaSecondTierDamage = 12; + public static int energyBazookaSecondTierSecondaryDamage = 15; + public static int energyBazookaSecondTierLPPerShot = 20000; public static int energyBazookaSecondTierMaxDelay = 150; public static int energyBazookaSecondTierMaxDelayAfterActivation = 100; - public static int energyBazookaLPPerActivation = 50; public static int energyBazookaSecondTierLPPerActivation = 50; + public static int energyBazookaThirdTierDamage = 12; + public static int energyBazookaThirdTierSecondaryDamage = 15; + public static int energyBazookaThirdTierLPPerShot = 20000; + public static int energyBazookaThirdTierMaxDelay = 150; + public static int energyBazookaThirdTierMaxDelayAfterActivation = 100; + public static int energyBazookaThirdTierLPPerActivation = 50; + public static List wellBlacklist; public static Logger logger = LogManager.getLogger("BloodMagic"); diff --git a/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java index 31261801..02c57709 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java +++ b/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java @@ -290,28 +290,44 @@ public class BloodMagicConfiguration AlchemicalWizardry.lpPerSacrificeIncense = config.get("sacrifice", "LP per (self-)sacrifice with incense", AlchemicalWizardry.lpPerSacrificeIncense).getDouble(AlchemicalWizardry.lpPerSacrificeIncense); AlchemicalWizardry.energyBlastDamage = config.get("energy items", "Energy Blast damage", AlchemicalWizardry.energyBlastDamage).getInt(AlchemicalWizardry.energyBlastDamage); - AlchemicalWizardry.energyBlastSecondTierDamage = config.get("energy items", "Energy Blast Tier II damage", AlchemicalWizardry.energyBlastSecondTierDamage).getInt(AlchemicalWizardry.energyBlastSecondTierDamage); AlchemicalWizardry.energyBlastLPPerShot = config.get("energy items", "Energy Blast LP per shot", AlchemicalWizardry.energyBlastLPPerShot).getInt(AlchemicalWizardry.energyBlastLPPerShot); - AlchemicalWizardry.energyBlastSecondTierLPPerShot = config.get("energy items", "Energy Blast Tier II LP per shot", AlchemicalWizardry.energyBlastSecondTierLPPerShot).getInt(AlchemicalWizardry.energyBlastSecondTierLPPerShot); AlchemicalWizardry.energyBlastMaxDelay = config.get("energy items", "Energy Blast maximum delay", AlchemicalWizardry.energyBlastMaxDelay).getInt(AlchemicalWizardry.energyBlastMaxDelay); AlchemicalWizardry.energyBlastMaxDelayAfterActivation = config.get("energy items", "Energy Blast maximum delay after (re-)activation", AlchemicalWizardry.energyBlastMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBlastMaxDelayAfterActivation); + AlchemicalWizardry.energyBlastLPPerActivation = config.get("energy items", "Energy Blast LP per activation", AlchemicalWizardry.energyBlastLPPerActivation).getInt(AlchemicalWizardry.energyBlastLPPerActivation); + + AlchemicalWizardry.energyBlastSecondTierDamage = config.get("energy items", "Energy Blast Tier II damage", AlchemicalWizardry.energyBlastSecondTierDamage).getInt(AlchemicalWizardry.energyBlastSecondTierDamage); + AlchemicalWizardry.energyBlastSecondTierLPPerShot = config.get("energy items", "Energy Blast Tier II LP per shot", AlchemicalWizardry.energyBlastSecondTierLPPerShot).getInt(AlchemicalWizardry.energyBlastSecondTierLPPerShot); AlchemicalWizardry.energyBlastSecondTierMaxDelay = config.get("energy items", "Energy Blast Tier II maximum delay", AlchemicalWizardry.energyBlastSecondTierMaxDelay).getInt(AlchemicalWizardry.energyBlastSecondTierMaxDelay); AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation = config.get("energy items", "Energy Blast Tier II maximum delay after (re-)activation", AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation); - AlchemicalWizardry.energyBlastLPPerActivation = config.get("energy items", "Energy Blast LP per activation", AlchemicalWizardry.energyBlastLPPerActivation).getInt(AlchemicalWizardry.energyBlastLPPerActivation); AlchemicalWizardry.energyBlastSecondTierLPPerActivation = config.get("energy items", "Energy Blast Tier II LP per activation", AlchemicalWizardry.energyBlastSecondTierLPPerActivation).getInt(AlchemicalWizardry.energyBlastSecondTierLPPerActivation); + + AlchemicalWizardry.energyBlastThirdTierDamage = config.get("energy items", "Energy Blast Tier III damage", AlchemicalWizardry.energyBlastThirdTierDamage).getInt(AlchemicalWizardry.energyBlastThirdTierDamage); + AlchemicalWizardry.energyBlastThirdTierLPPerShot = config.get("energy items", "Energy Blast Tier III LP per shot", AlchemicalWizardry.energyBlastThirdTierLPPerShot).getInt(AlchemicalWizardry.energyBlastThirdTierLPPerShot); + AlchemicalWizardry.energyBlastThirdTierMaxDelay = config.get("energy items", "Energy Blast Tier III maximum delay", AlchemicalWizardry.energyBlastThirdTierMaxDelay).getInt(AlchemicalWizardry.energyBlastThirdTierMaxDelay); + AlchemicalWizardry.energyBlastThirdTierMaxDelayAfterActivation = config.get("energy items", "Energy Blast Tier III maximum delay after (re-)activation", AlchemicalWizardry.energyBlastThirdTierMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBlastThirdTierMaxDelayAfterActivation); + AlchemicalWizardry.energyBlastThirdTierLPPerActivation = config.get("energy items", "Energy Blast Tier III LP per activation", AlchemicalWizardry.energyBlastThirdTierLPPerActivation).getInt(AlchemicalWizardry.energyBlastThirdTierLPPerActivation); + AlchemicalWizardry.energyBazookaDamage = config.get("energy items", "Energy Bazooka damage", AlchemicalWizardry.energyBazookaDamage).getInt(AlchemicalWizardry.energyBazookaDamage); AlchemicalWizardry.energyBazookaSecondaryDamage = config.get("energy items", "Energy Bazooka secondary damage", AlchemicalWizardry.energyBazookaSecondaryDamage).getInt(AlchemicalWizardry.energyBazookaSecondaryDamage); - AlchemicalWizardry.energyBazookaSecondTierDamage = config.get("energy items", "Energy Bazooka Tier II damage", AlchemicalWizardry.energyBazookaSecondTierDamage).getInt(AlchemicalWizardry.energyBazookaSecondTierDamage); - AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage = config.get("energy items", "Energy Bazooka Tier II secondary damage", AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage).getInt(AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage); AlchemicalWizardry.energyBazookaLPPerShot = config.get("energy items", "Energy Bazooka LP per shot", AlchemicalWizardry.energyBazookaLPPerShot).getInt(AlchemicalWizardry.energyBazookaLPPerShot); - AlchemicalWizardry.energyBazookaSecondTierLPPerShot = config.get("energy items", "Energy Bazooka Tier II LP per shot", AlchemicalWizardry.energyBazookaSecondTierLPPerShot).getInt(AlchemicalWizardry.energyBazookaSecondTierLPPerShot); AlchemicalWizardry.energyBazookaMaxDelay = config.get("energy items", "Energy Bazooka maximum delay", AlchemicalWizardry.energyBazookaMaxDelay).getInt(AlchemicalWizardry.energyBazookaMaxDelay); AlchemicalWizardry.energyBazookaMaxDelayAfterActivation = config.get("energy items", "Energy Bazooka maximum delay after (re-)activation", AlchemicalWizardry.energyBazookaMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBazookaMaxDelayAfterActivation); + AlchemicalWizardry.energyBazookaLPPerActivation = config.get("energy items", "Energy Bazooka LP per activation", AlchemicalWizardry.energyBazookaLPPerActivation).getInt(AlchemicalWizardry.energyBazookaLPPerActivation); + + AlchemicalWizardry.energyBazookaSecondTierDamage = config.get("energy items", "Energy Bazooka Tier II damage", AlchemicalWizardry.energyBazookaSecondTierDamage).getInt(AlchemicalWizardry.energyBazookaSecondTierDamage); + AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage = config.get("energy items", "Energy Bazooka Tier II secondary damage", AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage).getInt(AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage); + AlchemicalWizardry.energyBazookaSecondTierLPPerShot = config.get("energy items", "Energy Bazooka Tier II LP per shot", AlchemicalWizardry.energyBazookaSecondTierLPPerShot).getInt(AlchemicalWizardry.energyBazookaSecondTierLPPerShot); AlchemicalWizardry.energyBazookaSecondTierMaxDelay = config.get("energy items", "Energy Bazooka Tier II maximum delay", AlchemicalWizardry.energyBazookaSecondTierMaxDelay).getInt(AlchemicalWizardry.energyBazookaSecondTierMaxDelay); AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation = config.get("energy items", "Energy Bazooka Tier II maximum delay after (re-)activation", AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation); - AlchemicalWizardry.energyBazookaLPPerActivation = config.get("energy items", "Energy Bazooka LP per activation", AlchemicalWizardry.energyBazookaLPPerActivation).getInt(AlchemicalWizardry.energyBazookaLPPerActivation); AlchemicalWizardry.energyBazookaSecondTierLPPerActivation = config.get("energy items", "Energy Bazooka Tier II LP per activation", AlchemicalWizardry.energyBazookaSecondTierLPPerActivation).getInt(AlchemicalWizardry.energyBazookaSecondTierLPPerActivation); + AlchemicalWizardry.energyBazookaThirdTierDamage = config.get("energy items", "Energy Bazooka Tier III damage", AlchemicalWizardry.energyBazookaThirdTierDamage).getInt(AlchemicalWizardry.energyBazookaThirdTierDamage); + AlchemicalWizardry.energyBazookaThirdTierSecondaryDamage = config.get("energy items", "Energy Bazooka Tier III secondary damage", AlchemicalWizardry.energyBazookaThirdTierSecondaryDamage).getInt(AlchemicalWizardry.energyBazookaThirdTierSecondaryDamage); + AlchemicalWizardry.energyBazookaThirdTierLPPerShot = config.get("energy items", "Energy Bazooka Tier III LP per shot", AlchemicalWizardry.energyBazookaThirdTierLPPerShot).getInt(AlchemicalWizardry.energyBazookaThirdTierLPPerShot); + AlchemicalWizardry.energyBazookaThirdTierMaxDelay = config.get("energy items", "Energy Bazooka Tier III maximum delay", AlchemicalWizardry.energyBazookaThirdTierMaxDelay).getInt(AlchemicalWizardry.energyBazookaThirdTierMaxDelay); + AlchemicalWizardry.energyBazookaThirdTierMaxDelayAfterActivation = config.get("energy items", "Energy Bazooka Tier III maximum delay after (re-)activation", AlchemicalWizardry.energyBazookaThirdTierMaxDelayAfterActivation).getInt(AlchemicalWizardry.energyBazookaThirdTierMaxDelayAfterActivation); + AlchemicalWizardry.energyBazookaThirdTierLPPerActivation = config.get("energy items", "Energy Bazooka Tier III LP per activation", AlchemicalWizardry.energyBazookaThirdTierLPPerActivation).getInt(AlchemicalWizardry.energyBazookaThirdTierLPPerActivation); + Side side = FMLCommonHandler.instance().getSide(); if (side == Side.CLIENT) { diff --git a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java index adb935c4..000469bd 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/ModItems.java +++ b/src/main/java/WayofTime/alchemicalWizardry/ModItems.java @@ -66,6 +66,7 @@ public class ModItems public static Item magicianBloodOrb; public static Item energyBlaster; public static Item energyBlasterSecondTier; + public static Item energyBlasterThirdTier; public static Item energySword; public static Item lavaCrystal; public static Item waterSigil; @@ -150,6 +151,7 @@ public class ModItems public static Item itemKeyOfDiablo; public static Item energyBazooka; public static Item energyBazookaSecondTier; + public static Item energyBazookaThirdTier; public static Item itemBloodLightSigil; public static Item itemComplexSpellCrystal; public static Item itemBloodFrame; @@ -215,6 +217,7 @@ public class ModItems transcendentBloodOrb = new TranscendentBloodOrb(30000000).setUnlocalizedName("transcendentBloodOrb"); energyBlaster = new EnergyBlast(1).setUnlocalizedName("energyBlast"); energyBlasterSecondTier = new EnergyBlast(2).setUnlocalizedName("energyBlastSecondTier"); + energyBlasterThirdTier = new EnergyBlast(3).setUnlocalizedName("energyBlastThirdTier"); energySword = new EnergySword().setUnlocalizedName("energySword"); lavaCrystal = new LavaCrystal().setUnlocalizedName("lavaCrystal"); waterSigil = new SigilWater().setUnlocalizedName("waterSigil"); @@ -286,6 +289,7 @@ public class ModItems itemKeyOfDiablo = new ItemDiabloKey().setUnlocalizedName("itemDiabloKey"); energyBazooka = new EnergyBazooka(1).setUnlocalizedName("energyBazooka"); energyBazookaSecondTier = new EnergyBazooka(2).setUnlocalizedName("energyBazookaSecondTier"); + energyBazookaThirdTier = new EnergyBazooka(3).setUnlocalizedName("energyBazookaThirdTier"); itemBloodLightSigil = new SigilBloodLight().setUnlocalizedName("bloodLightSigil"); itemComplexSpellCrystal = new ItemComplexSpellCrystal().setUnlocalizedName("itemComplexSpellCrystal"); bucketLife = new LifeBucket(ModBlocks.blockLifeEssence).setUnlocalizedName("bucketLife").setContainerItem(Items.bucket).setCreativeTab(CreativeTabs.tabMisc); @@ -346,7 +350,7 @@ public class ModItems GameRegistry.registerItem(ModItems.magicianBloodOrb, "magicianBloodOrb"); GameRegistry.registerItem(ModItems.energyBlaster, "energyBlaster"); GameRegistry.registerItem(ModItems.energyBlasterSecondTier, "energyBlasterSecondTier"); - + GameRegistry.registerItem(ModItems.energyBlasterThirdTier, "energyBlasterThirdTier"); GameRegistry.registerItem(ModItems.energySword, "energySword"); GameRegistry.registerItem(ModItems.lavaCrystal, "lavaCrystal"); GameRegistry.registerItem(ModItems.waterSigil, "waterSigil"); @@ -422,6 +426,7 @@ public class ModItems GameRegistry.registerItem(ModItems.itemKeyOfDiablo, "itemKeyOfDiablo"); GameRegistry.registerItem(ModItems.energyBazooka, "energyBazooka"); GameRegistry.registerItem(ModItems.energyBazookaSecondTier, "energyBazookaSecondTier"); + GameRegistry.registerItem(ModItems.energyBazookaThirdTier, "energyBazookaThirdTier"); GameRegistry.registerItem(ModItems.itemBloodLightSigil, "itemBloodLightSigil"); GameRegistry.registerItem(ModItems.itemComplexSpellCrystal, "itemComplexSpellCrystal"); GameRegistry.registerItem(ModItems.itemSigilOfSupression, "sigilOfSupression"); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java b/src/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java index 6c381816..b332c0a6 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/entity/projectile/EntityEnergyBazookaMainProjectile.java @@ -83,11 +83,22 @@ public class EntityEnergyBazookaMainProjectile extends EnergyBlastProjectile public void spawnSecondaryProjectiles() { + int secondaryDamage = 0; + if (this.projectileDamage == AlchemicalWizardry.energyBazookaDamage) + { + secondaryDamage = AlchemicalWizardry.energyBazookaSecondaryDamage; + } + if (this.projectileDamage == AlchemicalWizardry.energyBazookaSecondTierDamage) + { + secondaryDamage = AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage; + } + if (this.projectileDamage == AlchemicalWizardry.energyBazookaThirdTierDamage) + { + secondaryDamage = AlchemicalWizardry.energyBazookaThirdTierSecondaryDamage; + } for (int i = 0; i < 20; i++) { - EntityEnergyBazookaSecondaryProjectile secProj = new EntityEnergyBazookaSecondaryProjectile(worldObj, this.posX, this.posY, this.posZ, this.projectileDamage == AlchemicalWizardry.energyBazookaDamage ? - AlchemicalWizardry.energyBazookaSecondaryDamage : - AlchemicalWizardry.energyBazookaSecondTierSecondaryDamage); + EntityEnergyBazookaSecondaryProjectile secProj = new EntityEnergyBazookaSecondaryProjectile(worldObj, this.posX, this.posY, this.posZ, secondaryDamage); secProj.shootingEntity = this.shootingEntity; float xVel = rand.nextFloat() - rand.nextFloat(); float yVel = rand.nextFloat() - rand.nextFloat(); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java index 45c9a487..4739e166 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBazooka.java @@ -23,6 +23,8 @@ public class EnergyBazooka extends EnergyItems @SideOnly(Side.CLIENT) private IIcon activeIconTier2; @SideOnly(Side.CLIENT) + private IIcon activeIconTier3; + @SideOnly(Side.CLIENT) private IIcon passiveIcon; private int tier; private int damage; @@ -35,8 +37,21 @@ public class EnergyBazooka extends EnergyItems setFull3D(); setMaxDamage(250); this.tier = tier; - this.setEnergyUsed(tier == 1 ? AlchemicalWizardry.energyBazookaLPPerShot : AlchemicalWizardry.energyBazookaSecondTierLPPerShot); - this.damage = tier == 1 ? AlchemicalWizardry.energyBazookaDamage : AlchemicalWizardry.energyBazookaSecondTierDamage; + switch (this.tier) + { + case 1: + this.setEnergyUsed(AlchemicalWizardry.energyBazookaLPPerShot); + this.damage = AlchemicalWizardry.energyBazookaDamage; + break; + case 2: + this.setEnergyUsed(AlchemicalWizardry.energyBazookaSecondTierLPPerShot); + this.damage = AlchemicalWizardry.energyBazookaSecondTierDamage; + break; + case 3: + this.setEnergyUsed(AlchemicalWizardry.energyBazookaThirdTierLPPerShot); + this.damage = AlchemicalWizardry.energyBazookaThirdTierDamage; + break; + } } @Override @@ -46,6 +61,7 @@ public class EnergyBazooka extends EnergyItems this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); this.activeIconTier2 = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); + this.activeIconTier3 = iconRegister.registerIcon("AlchemicalWizardry:EnergyBazooka_activated"); this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); } @@ -61,7 +77,16 @@ public class EnergyBazooka extends EnergyItems if (tag.getBoolean("isActive")) { - return tier == 1 ? this.activeIcon : this.activeIconTier2; + switch (this.tier) + { + case 1: + return this.activeIcon; + case 2: + return this.activeIconTier2; + case 3: + return this.activeIconTier3; + } + return this.activeIcon; } else { @@ -72,15 +97,27 @@ public class EnergyBazooka extends EnergyItems @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { - final int maxDelay = tier == 1 ? AlchemicalWizardry.energyBazookaMaxDelay : AlchemicalWizardry.energyBazookaSecondTierMaxDelay; - + int maxDelay = 1; + int maxDelayAfterActivation = 1; + switch (this.tier) + { + case 1: + maxDelay = AlchemicalWizardry.energyBazookaMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaMaxDelayAfterActivation + 1; + break; + case 2: + maxDelay = AlchemicalWizardry.energyBazookaSecondTierMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation + 1; + break; + case 3: + maxDelay = AlchemicalWizardry.energyBazookaThirdTierMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaThirdTierMaxDelayAfterActivation + 1; + break; + } if (!EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer) || par3EntityPlayer.isSneaking()) { this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.getTagCompound().setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % - (tier == 1 ? - AlchemicalWizardry.energyBazookaMaxDelayAfterActivation + 1 : - AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation + 1)); + par1ItemStack.getTagCompound().setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % maxDelayAfterActivation); return par1ItemStack; } @@ -106,12 +143,12 @@ public class EnergyBazooka extends EnergyItems if (!par2World.isRemote) { - par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, damage)); + par2World.spawnEntityInWorld(new EntityEnergyBazookaMainProjectile(par2World, par3EntityPlayer, this.damage)); this.setDelay(par1ItemStack, maxDelay); } Vec3 vec = par3EntityPlayer.getLookVec(); - double wantedVelocity = 3.0f; + double wantedVelocity = (double) this.tier * 2.0D; par3EntityPlayer.motionX = -vec.xCoord * wantedVelocity; par3EntityPlayer.motionY = -vec.yCoord * wantedVelocity; par3EntityPlayer.motionZ = -vec.zCoord * wantedVelocity; @@ -140,15 +177,29 @@ public class EnergyBazooka extends EnergyItems { this.setDelay(par1ItemStack, delay - 1); } - - if (par2World.getWorldTime() % (tier == 1 ? - AlchemicalWizardry.energyBazookaMaxDelayAfterActivation + 1 : - AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation + 1) == par1ItemStack.getTagCompound().getInteger("worldTimeDelay") && + int lpPerActivation = 0; + int maxDelayAfterActivation = 1; + switch (this.tier) + { + case 1: + lpPerActivation = AlchemicalWizardry.energyBazookaLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaMaxDelayAfterActivation + 1; + break; + case 2: + lpPerActivation = AlchemicalWizardry.energyBazookaSecondTierLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaSecondTierMaxDelayAfterActivation + 1; + break; + case 3: + lpPerActivation = AlchemicalWizardry.energyBazookaThirdTierLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBazookaThirdTierMaxDelayAfterActivation + 1; + break; + } + if (par2World.getWorldTime() % maxDelayAfterActivation == par1ItemStack.getTagCompound().getInteger("worldTimeDelay") && par1ItemStack.getTagCompound().getBoolean("isActive")) { if (!par3EntityPlayer.capabilities.isCreativeMode) { - if(!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, tier == 1 ? AlchemicalWizardry.energyBazookaLPPerActivation : AlchemicalWizardry.energyBazookaSecondTierLPPerActivation)) + if(!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, lpPerActivation)) { this.setActivated(par1ItemStack, false); } @@ -164,17 +215,17 @@ public class EnergyBazooka extends EnergyItems public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { par3List.add(StatCollector.translateToLocal("tooltip.energybazooka.desc")); - + par3List.add(StatCollector.translateToLocal("tooltip.alchemy.damage") + " " + this.damage); if (!(par1ItemStack.getTagCompound() == null)) { if (par1ItemStack.getTagCompound().getBoolean("isActive")) { par3List.add(StatCollector.translateToLocal("tooltip.sigil.state.activated")); - } else + } + else { par3List.add(StatCollector.translateToLocal("tooltip.sigil.state.deactivated")); } - if (!par1ItemStack.getTagCompound().getString("ownerName").equals("")) { par3List.add(StatCollector.translateToLocal("tooltip.owner.currentowner") + " " + par1ItemStack.getTagCompound().getString("ownerName")); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java index 25150a48..1d776bac 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/EnergyBlast.java @@ -22,6 +22,8 @@ public class EnergyBlast extends EnergyItems @SideOnly(Side.CLIENT) private IIcon activeIconTier2; @SideOnly(Side.CLIENT) + private IIcon activeIconTier3; + @SideOnly(Side.CLIENT) private IIcon passiveIcon; private int tier; private int damage; @@ -35,8 +37,21 @@ public class EnergyBlast extends EnergyItems setFull3D(); setMaxDamage(250); this.tier = tier; - this.setEnergyUsed(this.tier == 1 ? AlchemicalWizardry.energyBlastLPPerShot : AlchemicalWizardry.energyBlastSecondTierLPPerShot); - this.damage = this.tier == 1 ? AlchemicalWizardry.energyBlastDamage : AlchemicalWizardry.energyBlastSecondTierDamage; + switch (this.tier) + { + case 1: + this.setEnergyUsed(AlchemicalWizardry.energyBlastLPPerShot); + this.damage = AlchemicalWizardry.energyBlastDamage; + break; + case 2: + this.setEnergyUsed(AlchemicalWizardry.energyBlastSecondTierLPPerShot); + this.damage = AlchemicalWizardry.energyBlastSecondTierDamage; + break; + case 3: + this.setEnergyUsed(AlchemicalWizardry.energyBlastThirdTierLPPerShot); + this.damage = AlchemicalWizardry.energyBlastThirdTierDamage; + break; + } } @Override @@ -46,6 +61,7 @@ public class EnergyBlast extends EnergyItems this.itemIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); this.activeIcon = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); this.activeIconTier2 = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); + this.activeIconTier3 = iconRegister.registerIcon("AlchemicalWizardry:EnergyBlaster_activated"); this.passiveIcon = iconRegister.registerIcon("AlchemicalWizardry:SheathedItem"); } @@ -62,7 +78,16 @@ public class EnergyBlast extends EnergyItems if (tag.getBoolean("isActive")) { - return this.tier == 1 ? this.activeIcon : this.activeIconTier2; + switch (this.tier) + { + case 1: + return this.activeIcon; + case 2: + return this.activeIconTier2; + case 3: + return this.activeIconTier3; + } + return this.activeIcon; } else { @@ -73,15 +98,27 @@ public class EnergyBlast extends EnergyItems @Override public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { - final int maxDelay = this.tier == 1 ? AlchemicalWizardry.energyBlastMaxDelay : AlchemicalWizardry.energyBlastSecondTierMaxDelay; - + int maxDelay = 1; + int maxDelayAfterActivation = 1; + switch (this.tier) + { + case 1: + maxDelay = AlchemicalWizardry.energyBlastMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastMaxDelayAfterActivation + 1; + break; + case 2: + maxDelay = AlchemicalWizardry.energyBlastSecondTierMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation + 1; + break; + case 3: + maxDelay = AlchemicalWizardry.energyBlastThirdTierMaxDelay; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastThirdTierMaxDelayAfterActivation + 1; + break; + } if (!EnergyItems.checkAndSetItemOwner(par1ItemStack, par3EntityPlayer) || par3EntityPlayer.isSneaking()) { this.setActivated(par1ItemStack, !getActivated(par1ItemStack)); - par1ItemStack.getTagCompound().setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % - (this.tier == 1 ? - AlchemicalWizardry.energyBlastMaxDelayAfterActivation + 1 : - AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation + 1)); + par1ItemStack.getTagCompound().setInteger("worldTimeDelay", (int) (par2World.getWorldTime() - 1) % maxDelayAfterActivation); return par1ItemStack; } @@ -107,7 +144,7 @@ public class EnergyBlast extends EnergyItems if (!par2World.isRemote) { - par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, damage)); + par2World.spawnEntityInWorld(new EnergyBlastProjectile(par2World, par3EntityPlayer, this.damage)); this.setDelay(par1ItemStack, maxDelay); } @@ -133,15 +170,29 @@ public class EnergyBlast extends EnergyItems { this.setDelay(par1ItemStack, delay - 1); } - - if (par2World.getWorldTime() % (this.tier == 1 ? - AlchemicalWizardry.energyBlastMaxDelayAfterActivation + 1 : - AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation + 1) == par1ItemStack.getTagCompound().getInteger("worldTimeDelay") && + int lpPerActivation = 0; + int maxDelayAfterActivation = 1; + switch (this.tier) + { + case 1: + lpPerActivation = AlchemicalWizardry.energyBlastLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastMaxDelayAfterActivation + 1; + break; + case 2: + lpPerActivation = AlchemicalWizardry.energyBlastSecondTierLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastSecondTierMaxDelayAfterActivation + 1; + break; + case 3: + lpPerActivation = AlchemicalWizardry.energyBlastThirdTierLPPerActivation; + maxDelayAfterActivation = AlchemicalWizardry.energyBlastThirdTierMaxDelayAfterActivation + 1; + break; + } + if (par2World.getWorldTime() % maxDelayAfterActivation == par1ItemStack.getTagCompound().getInteger("worldTimeDelay") && par1ItemStack.getTagCompound().getBoolean("isActive")) { if (!par3EntityPlayer.capabilities.isCreativeMode) { - if(!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, tier == 1 ? AlchemicalWizardry.energyBlastLPPerActivation : AlchemicalWizardry.energyBlastSecondTierLPPerActivation)) + if(!EnergyItems.syphonBatteries(par1ItemStack, par3EntityPlayer, lpPerActivation)) { this.setActivated(par1ItemStack, false); } @@ -158,18 +209,17 @@ public class EnergyBlast extends EnergyItems { par3List.add(StatCollector.translateToLocal("tooltip.energyblast.desc1")); par3List.add(StatCollector.translateToLocal("tooltip.energyblast.desc2")); - par3List.add(StatCollector.translateToLocal("tooltip.alchemy.damage") + " " + damage); - + par3List.add(StatCollector.translateToLocal("tooltip.alchemy.damage") + " " + this.damage); if (!(par1ItemStack.getTagCompound() == null)) { if (par1ItemStack.getTagCompound().getBoolean("isActive")) { par3List.add(StatCollector.translateToLocal("tooltip.sigil.state.activated")); - } else + } + else { par3List.add(StatCollector.translateToLocal("tooltip.sigil.state.deactivated")); } - if (!par1ItemStack.getTagCompound().getString("ownerName").equals("")) { par3List.add(StatCollector.translateToLocal("tooltip.owner.currentowner") + " " + par1ItemStack.getTagCompound().getString("ownerName")); diff --git a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang index b4a9e53b..d0eef760 100644 --- a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -77,6 +77,7 @@ item.masterBloodOrb.name=Master Blood Orb item.archmageBloodOrb.name=Archmage's Blood Orb item.energyBlast.name=Energy Blaster item.energyBlastSecondTier.name=Energy Blaster II +item.energyBlastThirdTier.name=Energy Blaster III item.energySword.name=Bound Blade item.lavaCrystal.name=Lava Crystal item.waterSigil.name=Water Sigil @@ -149,6 +150,7 @@ item.sigilOfMagnetism.name=Sigil of Magnetism item.itemDiabloKey.name=Key of Binding item.energyBazooka.name=Energy Bazooka item.energyBazookaSecondTier.name=Energy Bazooka II +item.energyBazookaThirdTier.name=Energy Bazooka III item.bloodLightSigil.name=Sigil of the Blood Lamp item.itemComplexSpellCrystal.name=Complex Spell Crystal item.itemSigilOfSupression.name=Sigil of Supression