Fix Damage Calculations.

dev
sigonasr2 9 years ago
parent a2e6449ab7
commit 66bbf5e587
  1. BIN
      TwosideKeeper.jar
  2. 8
      src/sig/plugin/TwosideKeeper/TwosideKeeper.java

Binary file not shown.

@ -3591,8 +3591,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
,1);
}
if (ev.getCause()==DamageCause.ENTITY_EXPLOSION ||
ev.getCause()==DamageCause.BLOCK_EXPLOSION) {
if (ev.getCause()==DamageCause.BLOCK_EXPLOSION) {
//Calculate new damage based on armor worn.
//Remove all other damage modifiers since we will calculate it manually.
ev.setDamage(DamageModifier.BLOCKING,0);
@ -3612,6 +3611,7 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
}
}
ev.setDamage(DamageModifier.BASE,NewCombat.CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT*((100-protectionlevel)*0.01),p,null));
ev.setDamage(NewCombat.CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT*((100-protectionlevel)*0.01),p,null));
log("Explosion Damage is "+ev.getDamage(),2);
//ev.setDamage(CalculateDamageReduction(ev.getDamage()*EXPLOSION_DMG_MULT,p,null));
@ -3925,14 +3925,14 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
if (ev.getEntity() instanceof LivingEntity) {
((LivingEntity)ev.getEntity()).setNoDamageTicks(10);
final double oldhp=((LivingEntity)ev.getEntity()).getHealth();
ev.setDamage(DamageModifier.BASE,dmg);
ev.setDamage(dmg);
if (NewCombat.getDamagerEntity(ev.getDamager()) instanceof Player) {
if (ev.getDamager() instanceof Projectile) {
ev.getDamager().remove();
}
GenericFunctions.subtractHealth((LivingEntity)ev.getEntity(), NewCombat.getDamagerEntity(ev.getDamager()), dmg);
ev.setCancelled(true);
} else {
ev.setDamage(dmg);
}
Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
public void run() {

Loading…
Cancel
Save