Fix Explosion Damage code.

dev
sigonasr2 9 years ago
parent 698da2eb25
commit f60ca84d7f
  1. BIN
      TwosideKeeper.jar
  2. 32
      src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java
  3. 4
      src/sig/plugin/TwosideKeeper/TwosideKeeper.java
  4. 2
      src/sig/plugin/TwosideKeeper/TwosideKeeperAPI.java

Binary file not shown.

@ -3289,28 +3289,24 @@ public class GenericFunctions {
public static void DealExplosionDamageToEntities(Location l, double basedmg, double range) {
List<Entity> nearbyentities = new ArrayList<Entity>();
nearbyentities.addAll(l.getWorld().getNearbyEntities(l, range, range, range));
for (int i=0;i<nearbyentities.size();i++) {
Entity ent = nearbyentities.get(i);
if (!(ent instanceof LivingEntity)) {
nearbyentities.remove(i);
i--;
//nearbyentities.addAll();
for (Entity ent: l.getWorld().getNearbyEntities(l, range, range, range)) {
if (ent instanceof LivingEntity) {
//double damage_mult = 2.0d/(l.distance(nearbyentities.get(i).getLocation())+1.0);
double dmg;
double rangeSquared=range*range;
double damage_mult=Math.max(0d, 1 - l.distanceSquared(ent.getLocation())/rangeSquared);
damage_mult*=TwosideKeeper.EXPLOSION_DMG_MULT;
damage_mult*=CalculateBlastResistance((LivingEntity)ent);
TwosideKeeper.log("dmg mult is "+damage_mult,2);
dmg = basedmg * damage_mult;
if (ent instanceof Player) {TwosideKeeper.log("Damage is "+dmg, 2);}
CustomDamage.ApplyDamage(dmg, null, (LivingEntity)ent, null, "Explosion", CustomDamage.NONE);
//subtractHealth((LivingEntity)nearbyentities.get(i),null,NewCombat.CalculateDamageReduction(dmg, (LivingEntity)nearbyentities.get(i), null));
}
}
TwosideKeeper.log("In here", 5);
//We cleared the non-living entities, deal damage to the rest.
for (int i=0;i<nearbyentities.size();i++) {
//double damage_mult = 2.0d/(l.distance(nearbyentities.get(i).getLocation())+1.0);
double dmg = basedmg * Math.max(0d, 1 - l.distanceSquared(nearbyentities.get(i).getLocation())/range);
double damage_mult=1.0d;
damage_mult*=TwosideKeeper.EXPLOSION_DMG_MULT;
damage_mult*=CalculateBlastResistance((LivingEntity)nearbyentities.get(i));
TwosideKeeper.log("dmg mult is "+damage_mult,5);
dmg = basedmg * damage_mult;
if (nearbyentities.get(i) instanceof Player) {TwosideKeeper.log("Damage is "+dmg, 5);}
CustomDamage.ApplyDamage(dmg, null, (LivingEntity)nearbyentities.get(i), null, "Explosion", CustomDamage.NONE);
//subtractHealth((LivingEntity)nearbyentities.get(i),null,NewCombat.CalculateDamageReduction(dmg, (LivingEntity)nearbyentities.get(i), null));
}
}
private static double CalculateBlastResistance(LivingEntity l) {

@ -6502,10 +6502,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
String MonsterName = pd2.target.getType().toString().toLowerCase();
if (pd2.target.getCustomName()!=null) {
MonsterName = pd2.target.getCustomName();
if (MonsterName.contains(ChatColor.DARK_RED+"Hellfire") &&
pd2.target.getType()!=EntityType.ENDERMAN) {
pd2.target.setFireTicks(99999);
}
if (pd2.target.getCustomName()!=null &&
!pd2.target.getCustomName().contains("Leader") &&
MonsterController.isZombieLeader(pd2.target)) {

@ -314,7 +314,7 @@ public final class TwosideKeeperAPI {
}
public static void setItemTier(ItemStack item,int tier) {
ItemSet.SetTier(item, tier);
}
}
public static boolean isUpgradeShard(ItemStack item) {
return GenericFunctions.isUpgradeShard(item);
}

Loading…
Cancel
Save