ArcheryManager.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.gmail.nossr50.skills.archery;
  2. import org.bukkit.entity.LivingEntity;
  3. import org.bukkit.entity.Player;
  4. import org.bukkit.event.entity.EntityDamageEvent;
  5. import com.gmail.nossr50.skills.SkillManager;
  6. import com.gmail.nossr50.skills.SkillType;
  7. import com.gmail.nossr50.util.Misc;
  8. import com.gmail.nossr50.util.Permissions;
  9. public class ArcheryManager extends SkillManager {
  10. public ArcheryManager (Player player) {
  11. super(player, SkillType.ARCHERY);
  12. }
  13. /**
  14. * Track arrows fired for later retrieval.
  15. *
  16. * @param livingEntity Entity damaged by the arrow
  17. */
  18. public void trackArrows(LivingEntity livingEntity) {
  19. ArrowTrackingEventHandler eventHandler = new ArrowTrackingEventHandler(this, livingEntity);
  20. double chance = (Archery.retrieveMaxChance / Archery.retrieveMaxBonusLevel) * eventHandler.skillModifier;
  21. if (chance > Misc.getRandom().nextInt(activationChance)) {
  22. eventHandler.addToTracker();
  23. }
  24. }
  25. /**
  26. * Check for Daze.
  27. *
  28. * @param defender Defending player
  29. * @param event The event to modify
  30. */
  31. public void dazeCheck(Player defender, EntityDamageEvent event) {
  32. DazeEventHandler eventHandler = new DazeEventHandler(this, event, defender);
  33. double chance = (Archery.dazeMaxBonus / Archery.dazeMaxBonusLevel) * eventHandler.skillModifier;
  34. if (chance > Misc.getRandom().nextInt(activationChance)) {
  35. eventHandler.handleDazeEffect();
  36. eventHandler.sendAbilityMessages();
  37. }
  38. }
  39. /**
  40. * Handle archery bonus damage.
  41. *
  42. * @param event The event to modify.
  43. */
  44. public void skillShot(EntityDamageEvent event) {
  45. if (skillLevel >= Archery.skillShotIncreaseLevel && Permissions.archeryBonus(player)) {
  46. SkillShotEventHandler eventHandler = new SkillShotEventHandler(this, event);
  47. eventHandler.calculateDamageBonus();
  48. eventHandler.modifyEventDamage();
  49. }
  50. }
  51. }