CriticalHitEventHandler.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.gmail.nossr50.skills.axes;
  2. import org.bukkit.entity.LivingEntity;
  3. import org.bukkit.entity.Player;
  4. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  5. import com.gmail.nossr50.locale.LocaleLoader;
  6. import com.gmail.nossr50.util.Misc;
  7. public class CriticalHitEventHandler {
  8. private AxeManager manager;
  9. private EntityDamageByEntityEvent event;
  10. private int damage;
  11. protected LivingEntity defender;
  12. protected int skillModifier;
  13. public CriticalHitEventHandler(AxeManager manager, EntityDamageByEntityEvent event, LivingEntity defender) {
  14. this.manager = manager;
  15. this.event = event;
  16. this.defender = defender;
  17. this.damage = event.getDamage();
  18. calculateSkillModifier();
  19. }
  20. protected void modifyEventDamage() {
  21. if (defender instanceof Player) {
  22. event.setDamage((int) (damage * Axes.criticalHitPVPModifier));
  23. }
  24. else {
  25. event.setDamage((int) (damage * Axes.criticalHitPVEModifier));
  26. }
  27. }
  28. protected void sendAbilityMessages() {
  29. manager.getMcMMOPlayer().getPlayer().sendMessage(LocaleLoader.getString("Axes.Combat.CriticalHit"));
  30. if (defender instanceof Player) {
  31. ((Player) defender).sendMessage(LocaleLoader.getString("Axes.Combat.CritStruck"));
  32. }
  33. }
  34. private void calculateSkillModifier() {
  35. this.skillModifier = Misc.skillCheck(manager.getSkillLevel(), Axes.criticalHitMaxBonusLevel);
  36. }
  37. }