Bugfixes
This commit is contained in:
@@ -19,7 +19,10 @@ public class SuicideAI extends GroundAI{
|
||||
|
||||
@Override
|
||||
public void updateUnit(){
|
||||
if(disabled()) return;
|
||||
if(disabled()){
|
||||
stopShooting();
|
||||
return;
|
||||
}
|
||||
|
||||
if(Units.invalidateTarget(target, unit.team, unit.x, unit.y, Float.MAX_VALUE)){
|
||||
target = null;
|
||||
|
||||
@@ -2131,7 +2131,7 @@ public class Blocks{
|
||||
laserRange = 1000f;
|
||||
autolink = false;
|
||||
laserColor2 = Color.valueOf("ffd9c2");
|
||||
laserScale = 0.65f;
|
||||
laserScale = 0.8f;
|
||||
}};
|
||||
|
||||
combustionGenerator = new BurnerGenerator("combustion-generator"){{
|
||||
|
||||
@@ -181,7 +181,7 @@ public class Units{
|
||||
if(check.get(unit)){
|
||||
unit.hitboxTile(hitrect);
|
||||
|
||||
if(hitrect.overlaps(aeX, aeY, aeW, aeH)){
|
||||
if(hitrect.overlaps(x, y, width, height)){
|
||||
boolResult = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ public class AIController implements UnitController{
|
||||
@Override
|
||||
public void updateUnit(){
|
||||
if(disabled()){
|
||||
stopShooting();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -49,6 +50,13 @@ public class AIController implements UnitController{
|
||||
updateMovement();
|
||||
}
|
||||
|
||||
public void stopShooting(){
|
||||
for(var mount : unit.mounts){
|
||||
//ignore mount controllable stats too, they should not shoot either
|
||||
mount.shoot = false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean disabled(){
|
||||
return !unit.team.isAI() && !unit.type.defaultAI;
|
||||
}
|
||||
|
||||
@@ -447,8 +447,9 @@ public class UnitAssembler extends PayloadBlock{
|
||||
public boolean checkSolid(Vec2 v, boolean same){
|
||||
var output = unit();
|
||||
float hsize = output.hitSize * 1.4f;
|
||||
return !output.flying && (collisions.overlapsTile(Tmp.r1.setCentered(v.x, v.y, output.hitSize), EntityCollisions::solid) ||
|
||||
(!same ? Units.anyEntities(v.x, v.y, hsize) : Units.anyEntities(v.x - hsize/2f, v.y - hsize/2f, hsize, hsize, u -> u.type != output && u.isGrounded())));
|
||||
return ((!output.flying && collisions.overlapsTile(Tmp.r1.setCentered(v.x, v.y, output.hitSize), EntityCollisions::solid)) ||
|
||||
Units.anyEntities(v.x - hsize/2f, v.y - hsize/2f, hsize, hsize, u -> (!same || u.type != output) &&
|
||||
((u.type.allowLegStep && output.allowLegStep) || (output.flying && u.isFlying()) || (!output.flying && u.isGrounded()))));
|
||||
}
|
||||
|
||||
/** @return true if this block is ready to produce units, e.g. requirements met */
|
||||
|
||||
Reference in New Issue
Block a user