A specified damage with a specified weapon will apply all weapon

modifiers with that specific damage value now.
This commit is contained in:
sigonasr2 2016-08-27 21:17:33 -05:00
parent 9b65d49131
commit 45e932650b
2 changed files with 19 additions and 7 deletions

Binary file not shown.

View File

@ -139,7 +139,7 @@ public class CustomDamage {
boolean preemptive=false;
if (shooter!=null && (shooter instanceof Player)) {
if (weapon!=null) {
dmg+=getBaseWeaponDamage(weapon, damager, target);
dmg+=getBaseWeaponDamage(damage, weapon, damager, target, reason);
if (weapon.getType()==Material.BOW) {
if ((damager instanceof Projectile)) {
dmg += addMultiplierToPlayerLogger(damager,target,"Ranger Mult",dmg * calculateRangerMultiplier(weapon,damager));
@ -217,6 +217,10 @@ public class CustomDamage {
}
}
public static double getBaseWeaponDamage(ItemStack weapon, Entity damager, LivingEntity target) {
return getBaseWeaponDamage(0,weapon,damager,target,"");
}
/**
* Returns how much damage comes from the WEAPON, and no other sources.
* @param damager Optional.
@ -224,18 +228,26 @@ public class CustomDamage {
* @param weapon
* @return
*/
public static double getBaseWeaponDamage(ItemStack weapon, Entity damager, LivingEntity target) {
public static double getBaseWeaponDamage(double damage, ItemStack weapon, Entity damager, LivingEntity target, String reason) {
double dmg = 0.0;
LivingEntity shooter = getDamagerEntity(damager);
if (weapon!=null) { //Calculate damage using the weapon.
if (weapon.getType()==Material.BOW) {
if ((damager instanceof Projectile)) {
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
if (damage == 0) {
if (weapon.getType()==Material.BOW) {
if ((damager instanceof Projectile)) {
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
} else {
dmg += addToPlayerLogger(damager, target, "Weapon", 1.0);
}
} else {
dmg += addToPlayerLogger(damager, target, "Weapon", 1.0);
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
}
} else {
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
if (reason!=null) {
dmg += addToPlayerLogger(damager, target, reason, damage);
} else {
dmg += addToPlayerLogger(damager, target, ChatColor.GRAY+"Unknown", damage);
}
}
dmg += calculateEnchantmentDamageIncrease(weapon,damager,target);
dmg += addToPlayerLogger(damager,target,"Strike",GenericFunctions.getAbilityValue(ArtifactAbility.DAMAGE, weapon));