AxeManager.java 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package com.gmail.nossr50.skills.axes;
  2. import org.bukkit.entity.LivingEntity;
  3. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  4. import com.gmail.nossr50.datatypes.McMMOPlayer;
  5. import com.gmail.nossr50.skills.SkillManager;
  6. import com.gmail.nossr50.skills.utilities.SkillType;
  7. import com.gmail.nossr50.util.Misc;
  8. public class AxeManager extends SkillManager {
  9. public AxeManager(McMMOPlayer mcMMOPlayer) {
  10. super(mcMMOPlayer, SkillType.AXES);
  11. }
  12. /**
  13. * Apply bonus to damage done by axes.
  14. *
  15. * @param event The event to modify
  16. */
  17. public void bonusDamage(EntityDamageByEntityEvent event) {
  18. AxeBonusDamageEventHandler eventHandler = new AxeBonusDamageEventHandler(this, event);
  19. eventHandler.calculateDamageBonus();
  20. eventHandler.modifyEventDamage();
  21. }
  22. /**
  23. * Check for critical chances on axe damage.
  24. *
  25. * @param event The event to modify
  26. */
  27. public void criticalHitCheck(EntityDamageByEntityEvent event, LivingEntity target) {
  28. CriticalHitEventHandler eventHandler = new CriticalHitEventHandler(this, event, target);
  29. double chance = (Axes.criticalHitMaxChance / Axes.criticalHitMaxBonusLevel) * eventHandler.skillModifier;
  30. if (chance > Misc.getRandom().nextInt(activationChance)) {
  31. eventHandler.modifyEventDamage();
  32. eventHandler.sendAbilityMessages();
  33. }
  34. }
  35. /**
  36. * Check for Impact ability.
  37. *
  38. * @param event The event to modify
  39. */
  40. public void impact(EntityDamageByEntityEvent event, LivingEntity target) {
  41. ImpactEventHandler eventHandler = new ImpactEventHandler(this, event, target);
  42. if (!eventHandler.applyImpact()) {
  43. eventHandler.applyGreaterImpact();
  44. }
  45. }
  46. /**
  47. * Check for Skull Splitter ability.
  48. *
  49. * @param target The entity hit by Skull Splitter
  50. * @param damage The base damage to deal
  51. */
  52. public void skullSplitter(LivingEntity target, int damage) {
  53. SkullSplitterEventHandler eventHandler = new SkullSplitterEventHandler(mcMMOPlayer.getPlayer(), damage, target);
  54. eventHandler.applyAbilityEffects();
  55. }
  56. }