package nl.sugcube.crystalquest.items;
import nl.sugcube.crystalquest.Broadcast;
import nl.sugcube.crystalquest.CrystalQuest;
import nl.sugcube.crystalquest.game.CrystalQuestTeam;
import nl.sugcube.crystalquest.game.Teams;
import nl.sugcube.crystalquest.economy.Multipliers;
import nl.sugcube.crystalquest.game.Arena;
import org.bukkit.EntityEffect;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
/**
* @author SugarCaney
*/
public class Wither extends ItemExecutor {
private static final int WITHER_DURATION = 120;
public Wither() {
super(Material.SKULL_ITEM, (short)1);
}
@Override
boolean execute(CrystalQuest plugin, Player player, ItemStack itemStack) {
// Determine target
Arena arena = plugin.getArenaManager().getArena(player.getUniqueId());
CrystalQuestTeam targetTeam = Teams.getRandomTeamToHit(player);
if (arena.getPlayers().size() <= 1) {
return true;
}
// Determine duration.
double multiplier = Multipliers.getMultiplier(
"debuff",
plugin.economy.getLevel(player, "debuff", "upgrade"),
false
);
int duration = (int)(WITHER_DURATION * multiplier);
// Sound & sacrifice of 2 hearts.
player.playSound(player.getLocation(), Sound.ENTITY_WITHER_HURT, 10L, 10);
player.setHealth(player.getHealth() - 4 < 0 ? 0 : player.getHealth() - 4);
// Curse a team.
for (Player target : Teams.getPlayersFromTeam(arena, targetTeam)) {
target.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, duration, 2));
target.playEffect(EntityEffect.WOLF_SMOKE);
target.playSound(target.getLocation(), Sound.ENTITY_WITHER_HURT, 10L, 10L);
}
player.playSound(player.getLocation(), Sound.ENTITY_WITHER_HURT, 12F, 12F);
// Send confirmation message
player.sendMessage(Broadcast.get("item-use.wither")
.replace("%team%", targetTeam.toString()));
return true;
}
}