mcMMO/src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java

63 lines
1.9 KiB
Java
Raw Normal View History

2013-01-10 15:26:28 +01:00
package com.gmail.nossr50.skills.axes;
2013-01-11 04:39:08 +01:00
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
2013-01-11 04:39:08 +01:00
import org.bukkit.event.entity.EntityDamageByEntityEvent;
2013-01-10 15:26:28 +01:00
2013-01-11 04:39:08 +01:00
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
2013-01-11 04:39:08 +01:00
public class AxeManager extends SkillManager {
public AxeManager(Player player) {
super(player, SkillType.AXES);
}
/**
* Apply bonus to damage done by axes.
*
* @param event The event to modify
*/
public void bonusDamage(EntityDamageByEntityEvent event) {
if (Misc.isNPC(player) || !Permissions.axeBonus(player)) {
2013-01-11 04:39:08 +01:00
return;
}
AxeBonusDamageEventHandler eventHandler = new AxeBonusDamageEventHandler(this, event);
eventHandler.calculateDamageBonus();
eventHandler.modifyEventDamage();
}
/**
* Check for critical chances on axe damage.
*
* @param event The event to modify
*/
public void criticalHitCheck(EntityDamageByEntityEvent event) {
if (Misc.isNPC(player) || !Permissions.criticalHit(player)) {
return;
}
CriticalHitEventHandler eventHandler = new CriticalHitEventHandler(this, event);
if (eventHandler.defender instanceof Tameable && Misc.isFriendlyPet(player, (Tameable) eventHandler.defender)) {
return;
}
int randomChance = 100;
if (Permissions.luckyAxes(player)) {
randomChance = (int) (randomChance * 0.75);
}
double chance = (Axes.criticalHitMaxChance / Axes.criticalHitMaxBonusLevel) * eventHandler.skillModifier;
if (chance > Misc.getRandom().nextInt(randomChance) && !eventHandler.defender.isDead()) {
eventHandler.modifyEventDamage();
eventHandler.sendAbilityMessages();
}
}
2013-01-10 15:26:28 +01:00
}