Fix Explosion Damage code.
This commit is contained in:
parent
698da2eb25
commit
f60ca84d7f
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…
x
Reference in New Issue
Block a user