package com.iBaby.abilities;
import net.minecraft.server.ItemStack;
import org.bukkit.Material;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
/**
* The additional damage a golem deals through weapons
* @author steffengy
*
*/
public class DamageAbility extends Ability {
private int damage;
public DamageAbility(int d) {
this.damage = d;
}
@Override
public int getAdditionalDamage() {
return this.damage;
}
/**
* Matches the itemstack
* @param itemstack
* @return Either the ability or null
*/
public static Ability matches(ItemStack itemstack) {
Ability handle = null;
CraftItemStack stack = new CraftItemStack(itemstack);
/* WOOD */
if(stack.getType() == Material.WOOD_SWORD) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.WOOD_AXE) {
handle = new DamageAbility(1);
}
else if(stack.getType() == Material.WOOD_PICKAXE) {
handle = new DamageAbility(1);
}
/* GOLD */
else if(stack.getType() == Material.GOLD_SWORD) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.GOLD_AXE) {
handle = new DamageAbility(1);
}
else if(stack.getType() == Material.GOLD_PICKAXE) {
handle = new DamageAbility(1);
}
/* STONE */
else if(stack.getType() == Material.STONE_SWORD) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.STONE_AXE) {
handle = new DamageAbility(1);
}
else if(stack.getType() == Material.STONE_PICKAXE) {
handle = new DamageAbility(1);
}
else if(stack.getType() == Material.STONE_SPADE) {
handle = new DamageAbility(1);
}
/* IRON */
else if(stack.getType() == Material.IRON_SWORD) {
handle = new DamageAbility(3);
}
else if(stack.getType() == Material.IRON_AXE) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.IRON_PICKAXE) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.IRON_SPADE) {
handle = new DamageAbility(1);
}
/* DIAMOND */
else if(stack.getType() == Material.DIAMOND_SWORD) {
handle = new DamageAbility(4);
}
else if(stack.getType() == Material.DIAMOND_AXE) {
handle = new DamageAbility(3);
}
else if(stack.getType() == Material.DIAMOND_PICKAXE) {
handle = new DamageAbility(2);
}
else if(stack.getType() == Material.DIAMOND_SPADE) {
handle = new DamageAbility(2);
}
return handle;
}
}