Fix more things that hit non-hittable units (#7408)

* hittable check for EMP

* hittable check for Damage#status

* why push if don't get hit
This commit is contained in:
MEEPofFaith 2022-08-21 14:09:47 -07:00 committed by GitHub
parent dde9f895cf
commit 11e3f85242
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 3 deletions

View File

@ -440,7 +440,7 @@ public class Damage{
/** Applies a status effect to all enemy units in a range. */
public static void status(Team team, float x, float y, float radius, StatusEffect effect, float duration, boolean air, boolean ground){
Cons<Unit> cons = entity -> {
if(entity.team == team || !entity.within(x, y, radius) || (entity.isFlying() && !air) || (entity.isGrounded() && !ground)){
if(entity.team == team || !entity.checkTarget(air, ground) || !entity.hittable() || !entity.within(x, y, radius)){
return;
}

View File

@ -48,7 +48,7 @@ public class EmpBulletType extends BasicBulletType{
if(hitUnits){
Units.nearbyEnemies(b.team, x, y, radius, other -> {
if(other.team != b.team){
if(other.team != b.team && other.hittable()){
var absorber = Damage.findAbsorber(b.team, x, y, other.x, other.y);
if(absorber != null){
return;

View File

@ -470,7 +470,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
drag = type.drag * (isGrounded() ? (floorOn().dragMultiplier) : 1f) * dragMultiplier * state.rules.dragMultiplier;
//apply knockback based on spawns
if(team != state.rules.waveTeam && state.hasSpawns() && (!net.client() || isLocal())){
if(team != state.rules.waveTeam && state.hasSpawns() && (!net.client() || isLocal()) && hittable()){
float relativeSize = state.rules.dropZoneRadius + hitSize/2f + 1f;
for(Tile spawn : spawner.getSpawns()){
if(within(spawn.worldx(), spawn.worldy(), relativeSize)){