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) {
|
public static void DealExplosionDamageToEntities(Location l, double basedmg, double range) {
|
||||||
List<Entity> nearbyentities = new ArrayList<Entity>();
|
List<Entity> nearbyentities = new ArrayList<Entity>();
|
||||||
nearbyentities.addAll(l.getWorld().getNearbyEntities(l, range, range, range));
|
//nearbyentities.addAll();
|
||||||
for (int i=0;i<nearbyentities.size();i++) {
|
for (Entity ent: l.getWorld().getNearbyEntities(l, range, range, range)) {
|
||||||
Entity ent = nearbyentities.get(i);
|
if (ent instanceof LivingEntity) {
|
||||||
if (!(ent instanceof LivingEntity)) {
|
//double damage_mult = 2.0d/(l.distance(nearbyentities.get(i).getLocation())+1.0);
|
||||||
nearbyentities.remove(i);
|
double dmg;
|
||||||
i--;
|
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);
|
TwosideKeeper.log("In here", 5);
|
||||||
//We cleared the non-living entities, deal damage to the rest.
|
//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) {
|
private static double CalculateBlastResistance(LivingEntity l) {
|
||||||
|
@ -6502,10 +6502,6 @@ public class TwosideKeeper extends JavaPlugin implements Listener {
|
|||||||
String MonsterName = pd2.target.getType().toString().toLowerCase();
|
String MonsterName = pd2.target.getType().toString().toLowerCase();
|
||||||
if (pd2.target.getCustomName()!=null) {
|
if (pd2.target.getCustomName()!=null) {
|
||||||
MonsterName = pd2.target.getCustomName();
|
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 &&
|
if (pd2.target.getCustomName()!=null &&
|
||||||
!pd2.target.getCustomName().contains("Leader") &&
|
!pd2.target.getCustomName().contains("Leader") &&
|
||||||
MonsterController.isZombieLeader(pd2.target)) {
|
MonsterController.isZombieLeader(pd2.target)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user