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; boolean preemptive=false;
if (shooter!=null && (shooter instanceof Player)) { if (shooter!=null && (shooter instanceof Player)) {
if (weapon!=null) { if (weapon!=null) {
dmg+=getBaseWeaponDamage(weapon, damager, target); dmg+=getBaseWeaponDamage(damage, weapon, damager, target, reason);
if (weapon.getType()==Material.BOW) { if (weapon.getType()==Material.BOW) {
if ((damager instanceof Projectile)) { if ((damager instanceof Projectile)) {
dmg += addMultiplierToPlayerLogger(damager,target,"Ranger Mult",dmg * calculateRangerMultiplier(weapon,damager)); 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. * Returns how much damage comes from the WEAPON, and no other sources.
* @param damager Optional. * @param damager Optional.
@ -224,10 +228,11 @@ public class CustomDamage {
* @param weapon * @param weapon
* @return * @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; double dmg = 0.0;
LivingEntity shooter = getDamagerEntity(damager); LivingEntity shooter = getDamagerEntity(damager);
if (weapon!=null) { //Calculate damage using the weapon. if (weapon!=null) { //Calculate damage using the weapon.
if (damage == 0) {
if (weapon.getType()==Material.BOW) { if (weapon.getType()==Material.BOW) {
if ((damager instanceof Projectile)) { if ((damager instanceof Projectile)) {
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon)); dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
@ -237,6 +242,13 @@ public class CustomDamage {
} else { } else {
dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon)); dmg += addToPlayerLogger(damager, target, "Weapon", grabNaturalWeaponDamage(weapon));
} }
} else {
if (reason!=null) {
dmg += addToPlayerLogger(damager, target, reason, damage);
} else {
dmg += addToPlayerLogger(damager, target, ChatColor.GRAY+"Unknown", damage);
}
}
dmg += calculateEnchantmentDamageIncrease(weapon,damager,target); dmg += calculateEnchantmentDamageIncrease(weapon,damager,target);
dmg += addToPlayerLogger(damager,target,"Strike",GenericFunctions.getAbilityValue(ArtifactAbility.DAMAGE, weapon)); dmg += addToPlayerLogger(damager,target,"Strike",GenericFunctions.getAbilityValue(ArtifactAbility.DAMAGE, weapon));
dmg += addToPlayerLogger(damager,target,"Highwinder",calculateHighwinderDamage(weapon,damager)); dmg += addToPlayerLogger(damager,target,"Highwinder",calculateHighwinderDamage(weapon,damager));