From c5bffd887e5b8c67efd0edda4ed3f7a5be48dccd Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 7 Feb 2022 16:09:15 -0500 Subject: [PATCH] Bugfixes --- core/src/mindustry/ai/types/SuicideAI.java | 5 ++++- core/src/mindustry/content/Blocks.java | 2 +- core/src/mindustry/entities/Units.java | 2 +- core/src/mindustry/entities/units/AIController.java | 8 ++++++++ core/src/mindustry/world/blocks/units/UnitAssembler.java | 5 +++-- 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/core/src/mindustry/ai/types/SuicideAI.java b/core/src/mindustry/ai/types/SuicideAI.java index aefc0c296b..e17cd5d121 100644 --- a/core/src/mindustry/ai/types/SuicideAI.java +++ b/core/src/mindustry/ai/types/SuicideAI.java @@ -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; diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index def46136c6..5ce71142ef 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -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"){{ diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 551b724ea4..e51c95b13e 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -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; } } diff --git a/core/src/mindustry/entities/units/AIController.java b/core/src/mindustry/entities/units/AIController.java index ec0c768405..a6833b70c2 100644 --- a/core/src/mindustry/entities/units/AIController.java +++ b/core/src/mindustry/entities/units/AIController.java @@ -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; } diff --git a/core/src/mindustry/world/blocks/units/UnitAssembler.java b/core/src/mindustry/world/blocks/units/UnitAssembler.java index 6fa832defe..882c4f93c6 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssembler.java +++ b/core/src/mindustry/world/blocks/units/UnitAssembler.java @@ -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 */