mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-06-27 19:24:44 +02:00
Fix issues with double damage, double death messages, and other damage oddities.
Fixes #1450
This commit is contained in:
@ -71,9 +71,9 @@ public class ArcheryManager extends SkillManager {
|
||||
* @param defender The {@link Player} being affected by the ability
|
||||
* @param arrow The {@link Arrow} that was fired
|
||||
*/
|
||||
public void daze(Player defender, Arrow arrow) {
|
||||
public double daze(Player defender, Arrow arrow) {
|
||||
if (!SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Archery.dazeMaxBonus, Archery.dazeMaxBonusLevel)) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Location dazedLocation = defender.getLocation();
|
||||
@ -90,7 +90,7 @@ public class ArcheryManager extends SkillManager {
|
||||
getPlayer().sendMessage(LocaleLoader.getString("Combat.TargetDazed"));
|
||||
}
|
||||
|
||||
CombatUtils.dealDamage(defender, Archery.dazeModifier, DamageCause.PROJECTILE, arrow, mcMMOPlayer, SkillType.ARCHERY);
|
||||
return CombatUtils.callFakeDamageEvent(arrow, defender, DamageCause.PROJECTILE, Archery.dazeModifier);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -100,10 +100,10 @@ public class ArcheryManager extends SkillManager {
|
||||
* @param damage The amount of damage initially dealt by the event
|
||||
* @param arrow The {@link Arrow} that was fired
|
||||
*/
|
||||
public void skillShot(LivingEntity target, double damage, Arrow arrow) {
|
||||
public double skillShot(LivingEntity target, double damage, Arrow arrow) {
|
||||
double damageBonusPercent = Math.min(((getSkillLevel() / Archery.skillShotIncreaseLevel) * Archery.skillShotIncreasePercentage), Archery.skillShotMaxBonusPercentage);
|
||||
double archeryBonus = Math.min(damage * damageBonusPercent, Archery.skillShotMaxBonusDamage);
|
||||
|
||||
CombatUtils.dealDamage(target, archeryBonus, DamageCause.PROJECTILE, arrow, mcMMOPlayer, SkillType.ARCHERY);
|
||||
return CombatUtils.callFakeDamageEvent(arrow, target, DamageCause.PROJECTILE, archeryBonus);
|
||||
}
|
||||
}
|
||||
|
@ -54,10 +54,10 @@ public class AxesManager extends SkillManager {
|
||||
*
|
||||
* @param target The {@link LivingEntity} being affected by the ability
|
||||
*/
|
||||
public void axeMastery(LivingEntity target) {
|
||||
public double axeMastery(LivingEntity target) {
|
||||
double axeBonus = Math.min(getSkillLevel() / (Axes.bonusDamageMaxBonusLevel / Axes.bonusDamageMaxBonus), Axes.bonusDamageMaxBonus);
|
||||
|
||||
CombatUtils.dealDamage(target, axeBonus, getPlayer(), mcMMOPlayer, SkillType.AXES);
|
||||
return CombatUtils.callFakeDamageEvent(getPlayer(), target, axeBonus);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -66,9 +66,9 @@ public class AxesManager extends SkillManager {
|
||||
* @param target The {@link LivingEntity} being affected by the ability
|
||||
* @param damage The amount of damage initially dealt by the event
|
||||
*/
|
||||
public void criticalHit(LivingEntity target, double damage) {
|
||||
public double criticalHit(LivingEntity target, double damage) {
|
||||
if (!SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Axes.criticalHitMaxChance, Axes.criticalHitMaxBonusLevel)) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Player player = getPlayer();
|
||||
@ -84,7 +84,7 @@ public class AxesManager extends SkillManager {
|
||||
damage = (damage * Axes.criticalHitPVEModifier) - damage;
|
||||
}
|
||||
|
||||
CombatUtils.dealDamage(target, damage, player, mcMMOPlayer, SkillType.AXES);
|
||||
return CombatUtils.callFakeDamageEvent(player, target, damage);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -112,9 +112,9 @@ public class AxesManager extends SkillManager {
|
||||
*
|
||||
* @param target The {@link LivingEntity} being affected by the ability
|
||||
*/
|
||||
public void greaterImpact(LivingEntity target) {
|
||||
public double greaterImpact(LivingEntity target) {
|
||||
if (!(Axes.greaterImpactChance > Misc.getRandom().nextInt(getActivationChance()))) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Player player = getPlayer();
|
||||
@ -134,7 +134,7 @@ public class AxesManager extends SkillManager {
|
||||
}
|
||||
}
|
||||
|
||||
CombatUtils.dealDamage(target, Axes.greaterImpactBonusDamage, player, mcMMOPlayer, SkillType.AXES);
|
||||
return CombatUtils.callFakeDamageEvent(player, target, Axes.greaterImpactBonusDamage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -109,9 +109,9 @@ public class TamingManager extends SkillManager {
|
||||
* @param damage The initial damage
|
||||
* @param wolf The wolf using the ability
|
||||
*/
|
||||
public void gore(LivingEntity target, double damage, Wolf wolf) {
|
||||
public double gore(LivingEntity target, double damage, Wolf wolf) {
|
||||
if (!SkillUtils.activationSuccessful(getSkillLevel(), getActivationChance(), Taming.goreMaxChance, Taming.goreMaxBonusLevel)) {
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
BleedTimerTask.add(target, Taming.goreBleedTicks);
|
||||
@ -123,11 +123,11 @@ public class TamingManager extends SkillManager {
|
||||
getPlayer().sendMessage(LocaleLoader.getString("Combat.Gore"));
|
||||
|
||||
damage = (damage * Taming.goreModifier) - damage;
|
||||
CombatUtils.dealDamage(target, damage, wolf, mcMMOPlayer, SkillType.TAMING);
|
||||
return CombatUtils.callFakeDamageEvent(wolf, target, damage);
|
||||
}
|
||||
|
||||
public void sharpenedClaws(LivingEntity target, Wolf wolf) {
|
||||
CombatUtils.dealDamage(target, Taming.sharpenedClawsBonusDamage, wolf, mcMMOPlayer, SkillType.TAMING);
|
||||
public double sharpenedClaws(LivingEntity target, Wolf wolf) {
|
||||
return CombatUtils.callFakeDamageEvent(wolf, target, Taming.sharpenedClawsBonusDamage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -113,10 +113,10 @@ public class UnarmedManager extends SkillManager {
|
||||
* @param target The {@link LivingEntity} being affected by the ability
|
||||
* @param damage The amount of damage initially dealt by the event
|
||||
*/
|
||||
public void berserkDamage(LivingEntity target, double damage) {
|
||||
public double berserkDamage(LivingEntity target, double damage) {
|
||||
damage = (damage * Unarmed.berserkDamageModifier) - damage;
|
||||
|
||||
CombatUtils.dealDamage(target, damage, getPlayer(), mcMMOPlayer, SkillType.UNARMED);
|
||||
return CombatUtils.callFakeDamageEvent(getPlayer(), target, damage);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -124,10 +124,10 @@ public class UnarmedManager extends SkillManager {
|
||||
*
|
||||
* @param target The {@link LivingEntity} being affected by the ability
|
||||
*/
|
||||
public void ironArm(LivingEntity target) {
|
||||
public double ironArm(LivingEntity target) {
|
||||
int unarmedBonus = Math.min(Unarmed.ironArmMinBonusDamage + (getSkillLevel() / Unarmed.ironArmIncreaseLevel), Unarmed.ironArmMaxBonusDamage);
|
||||
|
||||
CombatUtils.dealDamage(target, unarmedBonus, getPlayer(), mcMMOPlayer, SkillType.UNARMED);
|
||||
return CombatUtils.callFakeDamageEvent(getPlayer(), target, unarmedBonus);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user