package minefantasy.mf2.item.weapon; import mods.battlegear2.api.weapons.IExtendedReachWeapon; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; public abstract class ItemHeavyWeaponMF extends ItemWeaponMF implements IExtendedReachWeapon { /** * Heavy weapons are larger varients of their own counterparts(sword, waraxe, mace and spear). * These have 2x the durability, have a wider parry arc, and do 50% more damage. * * Heavy weapons weigh more and throw you off balance when used. */ public ItemHeavyWeaponMF(ToolMaterial material, String named, int rarity, float weight) { super(material, named, rarity, weight); setMaxDamage((int) (getMaxDamage()*1.5F)); } @Override public boolean sheatheOnBack(ItemStack item) { return true; } @Override public boolean isOffhandHandDual(ItemStack off) { return false; } @Override public boolean allowOffhand(ItemStack mainhand, ItemStack offhand) { return false; } public int getParryCooldown(EntityLivingBase user) { return 18; } /** * Gets the angle the weapon can parry */ @Override public float getParryAngleModifier(EntityLivingBase user) { return 1.0F; } @Override public float getBalance() { return 0.75F; } @Override protected float getKnockbackStrength() { return 1.5F; } @Override public float getDecayModifier(EntityLivingBase user, ItemStack item) { return 1.25F; } @Override protected boolean canAnyMobParry() { return false; } @Override public int modifyHitTime(EntityLivingBase user, ItemStack item) { return super.modifyHitTime(user, item) + speedModHeavy; } @Override protected float[] getWeaponRatio(ItemStack implement) { return heavyRatio; } @Override public float getParryStaminaDecay(DamageSource source, ItemStack weapon) { return heavyParryFatigue; } /** * gets the time after being hit your guard will be let down */ @Override public int getParryCooldown(DamageSource source, float dam, ItemStack weapon) { return heavyParryTime; } @Override public int getParryModifier(ItemStack weapon, EntityLivingBase user, Entity target) { return 50; } @Override protected float getStaminaMod() { return heavyStaminaCost; } @Override public float getReachModifierInBlocks(ItemStack stack) { return 2.0F; } @Override protected float getMeleeDamage(ItemStack item) { return super.getMeleeDamage(item)*1.5F; } }