DazeEventHandler.java 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.gmail.nossr50.skills.archery;
  2. import org.bukkit.Location;
  3. import org.bukkit.entity.Player;
  4. import org.bukkit.event.entity.EntityDamageEvent;
  5. import com.gmail.nossr50.locale.LocaleLoader;
  6. import com.gmail.nossr50.util.Misc;
  7. public class DazeEventHandler {
  8. private ArcheryManager manager;
  9. private EntityDamageEvent event;
  10. private Player defender;
  11. private final static int DAZE_CHANCE = 50;
  12. protected int skillModifier;
  13. protected DazeEventHandler (ArcheryManager manager, EntityDamageEvent event, Player defender) {
  14. this.manager = manager;
  15. this.event = event;
  16. this.defender = defender;
  17. calculateSkillModifier();
  18. }
  19. protected void calculateSkillModifier() {
  20. this.skillModifier = Misc.skillCheck(manager.getSkillLevel(), Archery.dazeMaxBonusLevel);
  21. }
  22. protected void handleDazeEffect() {
  23. Location location = defender.getLocation();
  24. if (Misc.getRandom().nextInt(100) > DAZE_CHANCE) {
  25. location.setPitch(90);
  26. }
  27. else {
  28. location.setPitch(-90);
  29. }
  30. defender.teleport(location);
  31. event.setDamage(event.getDamage() + Archery.dazeModifier);
  32. }
  33. protected void sendAbilityMessages() {
  34. defender.sendMessage(LocaleLoader.getString("Combat.TouchedFuzzy"));
  35. manager.getMcMMOPlayer().getPlayer().sendMessage(LocaleLoader.getString("Combat.TargetDazed"));
  36. }
  37. }