diff --git a/src/main/java/tconstruct/armor/ArmorAbilities.java b/src/main/java/tconstruct/armor/ArmorAbilities.java index 0bd1ab34a79..b6a5661fd15 100644 --- a/src/main/java/tconstruct/armor/ArmorAbilities.java +++ b/src/main/java/tconstruct/armor/ArmorAbilities.java @@ -21,11 +21,6 @@ public class ArmorAbilities { - //Abilities - boolean morphed; - boolean morphLoaded = Loader.isModLoaded("Morph"); - boolean smartmoveLoaded = Loader.isModLoaded("SmartMoving"); - public static List stepBoostedPlayers = new ArrayList(); //ItemStack prevFeet; double prevMotionY; @@ -91,34 +86,6 @@ else if (stepBoosted && (feet == null || !(feet.getItem() instanceof TravelGear) { stack.getItem().onUpdate(stack, player.worldObj, player, 8, true); }*/ - - if (morphLoaded) - { - if (morph.api.Api.hasMorph(player.getCommandSenderName(), event.side.isClient())) - { - morphed = true; - } - } - - if (!player.isPlayerSleeping() && !smartmoveLoaded) - { - ItemStack chest = player.getCurrentArmor(2); - if (chest == null || !(chest.getItem() instanceof IModifyable)) - { - if (!(morphLoaded && morphed)) - PlayerAbilityHelper.setEntitySize(player, 0.6F, 1.8F); - } - else - { - NBTTagCompound tag = chest.getTagCompound().getCompoundTag(((IModifyable) chest.getItem()).getBaseTagName()); - int dodge = tag.getInteger("Perfect Dodge"); - if (dodge > 0) - { - if (!(morphLoaded && morphed)) - PlayerAbilityHelper.setEntitySize(player, Math.max(0.15F, 0.6F - (dodge * 0.09f)), 1.8F - (dodge * 0.04f)); - } - } - } } diff --git a/src/main/java/tconstruct/armor/TinkerArmorEvents.java b/src/main/java/tconstruct/armor/TinkerArmorEvents.java index 0ba03176044..eb9b47f961e 100644 --- a/src/main/java/tconstruct/armor/TinkerArmorEvents.java +++ b/src/main/java/tconstruct/armor/TinkerArmorEvents.java @@ -5,6 +5,7 @@ import net.minecraft.entity.boss.*; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.event.entity.living.*; @@ -103,4 +104,25 @@ public void slimefall (LivingFallEvent event) } } } + + @SubscribeEvent + public void perfectDodge(LivingAttackEvent event) + { + if(!event.source.isProjectile()) + return; + + // perfect dodge? + if(!(event.entityLiving instanceof EntityPlayer)) + return; + + EntityPlayer player = (EntityPlayer) event.entityLiving; + ItemStack chest = player.getCurrentArmor(2); + if(chest == null || !(chest.getItem() instanceof IModifyable) || !chest.hasTagCompound()) + return; + + NBTTagCompound tags = chest.getTagCompound().getCompoundTag(((IModifyable) chest.getItem()).getBaseTagName()); + int dodge = tags.getInteger("Perfect Dodge"); + if(dodge > TConstruct.random.nextInt(10)) + event.setCanceled(true); + } }