underBullet for ducts and related blocks

This commit is contained in:
Anuken
2022-04-11 13:06:39 -04:00
parent 6fe71dfe9c
commit 12eddd131b
10 changed files with 52 additions and 10 deletions

View File

@@ -37,6 +37,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
@ReadOnly
private float rotation;
transient @Nullable Tile aimTile;
transient @Nullable Mover mover;
transient boolean absorbed, hit;
transient @Nullable Trail trail;
@@ -173,7 +174,11 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
}
}
if(build != null && isAdded() && build.collide(self()) && type.testCollision(self(), build)
if(build != null && isAdded() &&
//should underBullet detection be disabled for piercing bullets?
//|| type.pierceBuilding
(!build.block.underBullets || (aimTile != null && aimTile.build == build))
&& build.collide(self()) && type.testCollision(self(), build)
&& !build.dead() && (type.collidesTeam || build.team != team) && !(type.pierceBuilding && hasCollided(build.id))){
boolean remove = false;