package com.taiter.ce.Enchantments.Global;
import org.bukkit.entity.Damageable;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.inventory.ItemStack;
import com.taiter.ce.EffectManager;
import com.taiter.ce.Enchantments.CEnchantment;
public class Vampire extends CEnchantment {
int damageHealFraction;
int cooldown;
public Vampire(Application app) {
super(app);
configEntries.put("DamageHealFraction", 2);
configEntries.put("Cooldown", 100);
triggers.add(Trigger.DAMAGE_GIVEN);
this.resetMaxLevel();
}
@Override
public void effect(Event e, ItemStack item, int level) {
EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
Player damager = (Player) event.getDamager();
if (!getHasCooldown(damager)) {
double heal = (((Damageable) damager).getHealth() + (event.getDamage() / damageHealFraction));
if ( heal < ((Damageable) damager).getMaxHealth())
damager.setHealth(heal);
else
damager.setHealth(((Damageable) damager).getMaxHealth());
int food = (int) (damager.getFoodLevel() + (event.getDamage() / damageHealFraction));
if ( food < 20)
damager.setFoodLevel(food);
else
damager.setFoodLevel(20);
EffectManager.playSound(damager.getLocation(), "ENTITY_PLAYER_BURP", 0.4f, 1f);
generateCooldown(damager, cooldown);
}
}
@Override
public void initConfigEntries() {
damageHealFraction = Integer.parseInt(getConfig().getString("Enchantments." + getOriginalName() + ".DamageHealFraction"));
cooldown = Integer.parseInt(getConfig().getString("Enchantments." + getOriginalName() + ".Cooldown"));
}
}