package minefantasy.item.weapon;
import minefantasy.api.weapon.*;
import minefantasy.item.ToolMaterialMedieval;
import minefantasy.system.CombatManager;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
public class ItemGreatsword extends ItemSwordMF implements IWeaponMobility, IWeaponCustomSpeed
{
public ItemGreatsword(int id, EnumToolMaterial material)
{
super(id, material);
}
public ItemGreatsword(int id, EnumToolMaterial material, float dam, int uses)
{
this(id, material);
}
@Override
public float getExaustion()
{
return 0.15F;
}
@Override
public float getSpeedWhenEquipped()
{
float degrade = 0.10F;
if(this.getMaterial() == ToolMaterialMedieval.MITHRIL)
{
degrade /= 2;
}
return 1.0F - degrade;
}
public boolean canBlock()
{
return true;
}
@Override
public float getKnockback()
{
return 3F;
}
@Override
public float getDamageModifier()
{
return super.getDamageModifier() * 1.5F;
}
@Override
public int getHitTime(ItemStack weapon, EntityLivingBase target)
{
return super.getHitTime(null, target)*2 + 5;
}
@Override
public float getDurability()
{
return super.getDurability() * 1.5F;
}
@Override
public int getHandsUsed()
{
return 2;
}
@Override
public float getBalance()
{
return 0.8F;
}
@Override
public float getBlockFailureChance()
{
return 0.20F;
}
//SPECIAL EFFECT: On hit: "Push forward": chance to gain resistance, heal and speed only when in full plate.
@Override
protected void applyHeavyAttackBonus(EntityLivingBase attacker, EntityLivingBase target)
{
if(CombatManager.getAntisprintArmours(attacker) < 4)
{
return;
}
if(rand.nextInt(5) == 0)
{
attacker.addPotionEffect(new PotionEffect(Potion.resistance.id, 100, 0));
attacker.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 100, 0));
attacker.heal(1);
}
}
}