diff --git a/changelog.txt b/changelog.txt index 367b5cbc..a975b7ce 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,6 +6,7 @@ Version 2.1.0-66 - Added some more framework for the Living Armour Downgrades. - Modified the Grim Reaper's Sprint so it is better at later levels. - Added a Repairing Living Armour Upgrade (trained by damaging the chestplate of the Living Armour while you have a full set on - it repairs all of your armour pieces over time) +- Modified the Dwarven Might skill to better change the mining speed when mining. ------------------------------------------------------ Version 2.1.0-65 diff --git a/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java b/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java index 0d093b89..e41528d3 100644 --- a/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java +++ b/src/main/java/WayofTime/bloodmagic/api/livingArmour/LivingArmourUpgrade.java @@ -78,6 +78,11 @@ public abstract class LivingArmourUpgrade return HashMultimap.create(); } + public double getMiningSpeedModifier(EntityPlayer player) + { + return 1; + } + public abstract void writeToNBT(NBTTagCompound tag); public abstract void readFromNBT(NBTTagCompound tag); diff --git a/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeDigging.java b/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeDigging.java index 9c7b1fb7..0f66d0fa 100644 --- a/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeDigging.java +++ b/src/main/java/WayofTime/bloodmagic/livingArmour/upgrade/LivingArmourUpgradeDigging.java @@ -17,11 +17,11 @@ public class LivingArmourUpgradeDigging extends LivingArmourUpgrade public static HashMap changeMap = new HashMap(); public static final int[] costs = new int[] { 5, 10, 18, 35, 65, 100, 160 }; - public static final int[] digHasteTime = new int[] { 20, 40, 60, 100, 100, 100 }; - public static final int[] digHasteLevel = new int[] { 0, 0, 1, 1, 2, 2, 2 }; public static final int[] digSpeedTime = new int[] { 0, 60, 60, 100, 100, 100, 100 }; public static final int[] digSpeedLevel = new int[] { 0, 0, 0, 1, 1, 1, 1 }; + public static final double[] digSpeedModifier = new double[] { 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2, 2.2, 2.5 }; + public static void hasDug(LivingArmour armour) { changeMap.put(armour, true); @@ -32,6 +32,12 @@ public class LivingArmourUpgradeDigging extends LivingArmourUpgrade super(level); } + @Override + public double getMiningSpeedModifier(EntityPlayer player) + { + return digSpeedModifier[this.level]; + } + @Override public void onTick(World world, EntityPlayer player, ILivingArmour livingArmour) { @@ -39,10 +45,9 @@ public class LivingArmourUpgradeDigging extends LivingArmourUpgrade { changeMap.put(livingArmour, false); - player.addPotionEffect(new PotionEffect(MobEffects.HASTE, digHasteTime[this.level], digHasteLevel[this.level], false, false)); if (digSpeedTime[this.level] > 0) { - player.addPotionEffect(new PotionEffect(MobEffects.HASTE, digSpeedTime[this.level], digSpeedLevel[this.level], false, false)); + player.addPotionEffect(new PotionEffect(MobEffects.SPEED, digSpeedTime[this.level], digSpeedLevel[this.level], false, false)); } } } 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 e93f6756..56fe0c24 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/LivingArmourHandler.java @@ -15,6 +15,7 @@ import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.LivingEntityUseItemEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.player.ArrowLooseEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.Event; import net.minecraftforge.fml.common.eventhandler.EventPriority; @@ -40,6 +41,29 @@ import WayofTime.bloodmagic.registry.ModPotions; @Handler public class LivingArmourHandler { + @SubscribeEvent + public void onMiningSpeedCheck(PlayerEvent.BreakSpeed event) + { + EntityPlayer player = event.getEntityPlayer(); + if (LivingArmour.hasFullSet(player)) + { + ItemStack chestStack = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); + LivingArmour armour = ItemLivingArmour.getLivingArmour(chestStack); + if (armour != null) + { + double modifier = 1; + for (LivingArmourUpgrade upgrade : armour.upgradeMap.values()) + { + modifier *= upgrade.getMiningSpeedModifier(player); + } + + if (modifier != 1) + { + event.setNewSpeed((float) (event.getOriginalSpeed() * modifier)); + } + } + } + } @SubscribeEvent public void onFinishedItem(LivingEntityUseItemEvent.Finish event)