diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeCrippledArm.java b/src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeCrippledArm.java new file mode 100644 index 00000000..0ce820e5 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeCrippledArm.java @@ -0,0 +1,58 @@ +package WayofTime.bloodmagic.livingArmour.downgrade; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.livingArmour.ILivingArmour; +import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; + +public class LivingArmourUpgradeCrippledArm extends LivingArmourUpgrade +{ + public static final int[] costs = new int[] { -50 }; + + public LivingArmourUpgradeCrippledArm(int level) + { + super(level); + } + + @Override + public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) + { + + } + + @Override + public String getUniqueIdentifier() + { + return Constants.Mod.MODID + ".upgrade.crippledArm"; + } + + @Override + public int getMaxTier() + { + return 1; + } + + @Override + public int getCostOfUpgrade() + { + return costs[this.level]; + } + + @Override + public void writeToNBT(NBTTagCompound tag) + { + } + + @Override + public void readFromNBT(NBTTagCompound tag) + { + } + + @Override + public String getUnlocalizedName() + { + return tooltipBase + "crippledArm"; + } +} \ No newline at end of file diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeSlowness.java b/src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeSlowness.java similarity index 96% rename from src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeSlowness.java rename to src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeSlowness.java index 1eb04563..14e41fe1 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeSlowness.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/downgrade/LivingArmourUpgradeSlowness.java @@ -1,4 +1,4 @@ -package WayofTime.bloodmagic.livingArmour.upgrade; +package WayofTime.bloodmagic.livingArmour.downgrade; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; diff --git a/src/main/java/WayofTime/bloodmagic/registry/ModArmourTrackers.java b/src/main/java/WayofTime/bloodmagic/registry/ModArmourTrackers.java index d2ff7ac6..b2e67e98 100644 --- a/src/main/java/WayofTime/bloodmagic/registry/ModArmourTrackers.java +++ b/src/main/java/WayofTime/bloodmagic/registry/ModArmourTrackers.java @@ -1,6 +1,8 @@ package WayofTime.bloodmagic.registry; import WayofTime.bloodmagic.api.livingArmour.LivingArmourHandler; +import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeCrippledArm; +import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeSlowness; import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerArrowShot; import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerCriticalStrike; import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerDigging; @@ -36,7 +38,6 @@ import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeMeleeDamage; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradePhysicalProtect; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradePoisonResist; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSelfSacrifice; -import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSlowness; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSolarPowered; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSpeed; import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSprintAttack; @@ -87,5 +88,6 @@ public class ModArmourTrackers LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeElytra(0)); LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeFireResist(0)); LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeSlowness(0)); + LivingArmourHandler.registerArmourUpgrade(new LivingArmourUpgradeCrippledArm(0)); } } diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java index cb17c346..0ebc1f43 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java @@ -1,15 +1,5 @@ package WayofTime.bloodmagic.util.handler.event; -import WayofTime.bloodmagic.annot.Handler; -import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; -import WayofTime.bloodmagic.item.armour.ItemLivingArmour; -import WayofTime.bloodmagic.livingArmour.LivingArmour; -import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerArrowShot; -import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerGrimReaperSprint; -import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerJump; -import WayofTime.bloodmagic.livingArmour.upgrade.*; -import WayofTime.bloodmagic.registry.ModPotions; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; @@ -18,17 +8,57 @@ import net.minecraft.init.Items; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemArrow; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; import net.minecraft.world.World; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.player.ArrowLooseEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import WayofTime.bloodmagic.annot.Handler; +import WayofTime.bloodmagic.api.Constants; +import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; +import WayofTime.bloodmagic.item.armour.ItemLivingArmour; +import WayofTime.bloodmagic.livingArmour.LivingArmour; +import WayofTime.bloodmagic.livingArmour.downgrade.LivingArmourUpgradeCrippledArm; +import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerArrowShot; +import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerGrimReaperSprint; +import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerJump; +import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeArrowShot; +import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeGrimReaperSprint; +import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeJump; +import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeSpeed; +import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeStepAssist; +import WayofTime.bloodmagic.registry.ModPotions; @Handler public class LivingArmourHandler { + @SubscribeEvent + public void onPlayerClick(PlayerInteractEvent event) + { + if (event.isCancelable() && event.getHand() == EnumHand.OFF_HAND) + { + EntityPlayer player = event.getEntityPlayer(); + + if (LivingArmour.hasFullSet(player)) + { + ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); + LivingArmour armour = ItemLivingArmour.getLivingArmour(chestStack); + if (armour != null) + { + LivingArmourUpgrade upgrade = ItemLivingArmour.getUpgrade(Constants.Mod.MODID + ".upgrade.crippledArm", chestStack); + + if (upgrade instanceof LivingArmourUpgradeCrippledArm) + { + event.setCanceled(true); + } + } + } + } + } // Applies: Grim Reaper @SubscribeEvent(priority = EventPriority.HIGHEST) diff --git a/src/main/resources/assets/bloodmagic/lang/en_US.lang b/src/main/resources/assets/bloodmagic/lang/en_US.lang index 07323055..deaf97e2 100644 --- a/src/main/resources/assets/bloodmagic/lang/en_US.lang +++ b/src/main/resources/assets/bloodmagic/lang/en_US.lang @@ -367,6 +367,7 @@ tooltip.BloodMagic.livingArmour.upgrade.sprintAttack=Charging Strike tooltip.BloodMagic.livingArmour.upgrade.criticalStrike=True Strike tooltip.BloodMagic.livingArmour.upgrade.elytra=Elytra tooltip.BloodMagic.livingArmour.upgrade.slowness=Limp Leg +tooltip.BloodMagic.livingArmour.upgrade.crippledArm=Crippled Arm tooltip.BloodMagic.livingArmour.upgrade.level=%s (Level %d) tooltip.BloodMagic.livingArmour.upgrade.points=&6Upgrade points: %s / %s