Added new tier for energy items.

And more config options. Again.
This commit is contained in:
OneEyeMaker committed 2016-06-27 07:33:56 +03:00
1 parent 60bb114322
commit 605cd95ceb
7 files changed
+207 -56

No files matched your search

@@ -317,28 +317,44 @@ public class AlchemicalWizardry
public static HashMap<Class<?>, 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<Class> wellBlacklist;
public static Logger logger = LogManager.getLogger("BloodMagic");
@@ -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)
{
@@ -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");
@@ -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();
@@ -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"));
@@ -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"));
@@ -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