This commit is contained in:
Anuken
2022-02-07 16:09:15 -05:00
parent 77410ce106
commit c5bffd887e
5 changed files with 17 additions and 5 deletions

View File

@@ -19,7 +19,10 @@ public class SuicideAI extends GroundAI{
@Override @Override
public void updateUnit(){ public void updateUnit(){
if(disabled()) return; if(disabled()){
stopShooting();
return;
}
if(Units.invalidateTarget(target, unit.team, unit.x, unit.y, Float.MAX_VALUE)){ if(Units.invalidateTarget(target, unit.team, unit.x, unit.y, Float.MAX_VALUE)){
target = null; target = null;

View File

@@ -2131,7 +2131,7 @@ public class Blocks{
laserRange = 1000f; laserRange = 1000f;
autolink = false; autolink = false;
laserColor2 = Color.valueOf("ffd9c2"); laserColor2 = Color.valueOf("ffd9c2");
laserScale = 0.65f; laserScale = 0.8f;
}}; }};
combustionGenerator = new BurnerGenerator("combustion-generator"){{ combustionGenerator = new BurnerGenerator("combustion-generator"){{

View File

@@ -181,7 +181,7 @@ public class Units{
if(check.get(unit)){ if(check.get(unit)){
unit.hitboxTile(hitrect); unit.hitboxTile(hitrect);
if(hitrect.overlaps(aeX, aeY, aeW, aeH)){ if(hitrect.overlaps(x, y, width, height)){
boolResult = true; boolResult = true;
} }
} }

View File

@@ -34,6 +34,7 @@ public class AIController implements UnitController{
@Override @Override
public void updateUnit(){ public void updateUnit(){
if(disabled()){ if(disabled()){
stopShooting();
return; return;
} }
@@ -49,6 +50,13 @@ public class AIController implements UnitController{
updateMovement(); 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(){ public boolean disabled(){
return !unit.team.isAI() && !unit.type.defaultAI; return !unit.team.isAI() && !unit.type.defaultAI;
} }

View File

@@ -447,8 +447,9 @@ public class UnitAssembler extends PayloadBlock{
public boolean checkSolid(Vec2 v, boolean same){ public boolean checkSolid(Vec2 v, boolean same){
var output = unit(); var output = unit();
float hsize = output.hitSize * 1.4f; float hsize = output.hitSize * 1.4f;
return !output.flying && (collisions.overlapsTile(Tmp.r1.setCentered(v.x, v.y, output.hitSize), EntityCollisions::solid) || 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()))); 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 */ /** @return true if this block is ready to produce units, e.g. requirements met */