use of me.deecaad.weaponmechanics.weapon.damage.DamageDropoff in project MechanicsMain by WeaponMechanics.
the class WeaponDamageEntityEvent method getFinalDamage.
public double getFinalDamage() {
if (Double.isNaN(finalDamage)) {
Configuration config = WeaponMechanics.getConfigurations();
// Calculate the final damage and save its value
// Final damage value is reset if set point, damage
// critical or backstab methods are used
double damage = this.baseDamage;
if (point != null) {
damage += config.getDouble(weaponTitle + ".Damage." + point.getReadable() + ".Bonus_Damage");
}
// Damage changes based on how far the projectile travelled
DamageDropoff dropoff = config.getObject(weaponTitle + ".Damage.Dropoff", DamageDropoff.class);
if (dropoff != null) {
damage += dropoff.getDamage(distanceTravelled);
}
// Critical Hit chance
if (isCritical) {
damage += config.getDouble(weaponTitle + ".Damage.Critical_Hit.Bonus_Damage");
}
// Backstab damage
if (isBackstab) {
damage += config.getDouble(weaponTitle + ".Damage.Backstab.Bonus_Damage");
}
if (damage < 0) {
damage = 0;
}
return finalDamage = DamageUtil.calculateFinalDamage(getShooter(), victim, damage, point, isBackstab);
}
return finalDamage;
}
Aggregations