package minefantasy.mf2.item.weapon; import minefantasy.mf2.api.helpers.TacticalManager; import minefantasy.mf2.api.weapon.WeaponClass; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; /** * @author Anonymous Productions */ public class ItemWarhammerMF extends ItemHeavyWeaponMF { private float stunChance = 0.20F; /** * Warhammers are heavy counterparts to maces: They have more damage and knockback * * They can also strike heavy forces, being rather satisfying */ public ItemWarhammerMF(String name, ToolMaterial material, int rarity, float weight) { super(material, name, rarity, weight); this.setMaxDamage((int) (getMaxDamage()*2F)); } @Override protected int getParryDamage(float dam) { return (int)(dam*2F); } @Override public float getDigSpeed(ItemStack itemstack, Block block, int metadata) { return super.getDigSpeed(itemstack, block, metadata)*1.5F; } @Override public void onProperHit(EntityLivingBase user, ItemStack weapon, Entity hit, float dam) { if(!user.worldObj.isRemote && user.getRNG().nextInt(5) == 0) { hit.worldObj.createExplosion(user, hit.posX, hit.posY, hit.posZ, 0.0F, false); TacticalManager.knockbackEntity(hit, user, 2.0F, 1.5F); if(hit instanceof EntityLivingBase) { ((EntityLivingBase)hit).addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 10)); ((EntityLivingBase)hit).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200, 1)); } } super.onProperHit(user, weapon, hit, dam); } @Override public boolean playCustomParrySound(EntityLivingBase blocker, Entity attacker, ItemStack weapon) { blocker.worldObj.playSoundAtEntity(blocker, "minefantasy2:weapon.wood_parry", 1.0F, 0.75F); return true; } @Override protected float getKnockbackStrength() { return 2.0F; } @Override protected float getStaminaMod() { return heavyStaminaCost*maceStaminaCost; } @Override public int modifyHitTime(EntityLivingBase user, ItemStack item) { return super.modifyHitTime(user, item) + speedModMace; } @Override public float getDamageModifier() { return damageModMace; } @Override protected float[] getWeaponRatio(ItemStack implement) { return hammerRatio; } /** * gets the time after being hit your guard will be let down */ @Override public int getParryCooldown(DamageSource source, float dam, ItemStack weapon) { return maceParryTime + heavyParryTime; } @Override public int getParryModifier(ItemStack weapon, EntityLivingBase user, Entity target) { return 80; } @Override public WeaponClass getWeaponClass() { return WeaponClass.BLUNT; } @Override public boolean canCounter() { return false; } }