package tc.oc.pgm.kits;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import tc.oc.pgm.match.MatchPlayer;
public class PotionKit extends Kit.Impl {
protected final PotionEffect effect;
public PotionKit(PotionEffect effect) {
this.effect = effect;
}
private void applyEffect(MatchPlayer player, boolean force) {
if(effect.getType().equals(PotionEffectType.HEALTH_BOOST)) {
// Convert negative HB to max-health kit
if(effect.getAmplifier() == -1 || effect.getDuration() == 0) {
// Level 0 or zero-duration HB resets max health
player.getBukkit().setMaxHealth(20);
return;
} else if(effect.getAmplifier() < -1 && effect.getDuration() == Integer.MAX_VALUE) {
// Level < 0 HB with inf duration converts to a MH kit
player.getBukkit().setMaxHealth(20 + (effect.getAmplifier() + 1) * 4);
return;
}
}
player.getBukkit().addPotionEffect(effect, force);
}
@Override
public void apply(MatchPlayer player, boolean force, ItemKitApplicator items) {
applyEffect(player, force);
// No swirls by default, KitNode can re-enable them if it so desires
player.getBukkit().setPotionParticles(false);
}
@Override
public boolean isRemovable() {
return true;
}
@Override
public void remove(MatchPlayer player) {
player.getBukkit().removePotionEffect(effect.getType());
}
}