diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index 66f34c5bdc..f40e21c2c2 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -76,7 +76,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ Effects.effect(ExplosionFx.explosion, unit); Effects.shake(2f, 2f, unit); - //must run afterwards so the unit's group is not null + //must run afterwards so the unit's group is not null when sending the removal packet threads.runDelay(unit::remove); } diff --git a/core/src/io/anuke/mindustry/entities/units/types/AlphaDrone.java b/core/src/io/anuke/mindustry/entities/units/types/AlphaDrone.java index 6f80b842c0..478854cfc0 100644 --- a/core/src/io/anuke/mindustry/entities/units/types/AlphaDrone.java +++ b/core/src/io/anuke/mindustry/entities/units/types/AlphaDrone.java @@ -22,8 +22,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -import static io.anuke.mindustry.Vars.headless; -import static io.anuke.mindustry.Vars.players; +import static io.anuke.mindustry.Vars.*; public class AlphaDrone extends FlyingUnit { static final float followDistance = 80f; @@ -62,7 +61,7 @@ public class AlphaDrone extends FlyingUnit { } } - if(!leader.isShooting && distanceTo(leader) < 8f){ + if(!leader.isShooting && distanceTo(leader) < 7f){ Call.onAlphaDroneFade(AlphaDrone.this); } } @@ -71,8 +70,9 @@ public class AlphaDrone extends FlyingUnit { @Remote(called = Loc.server) public static void onAlphaDroneFade(BaseUnit drone){ if(drone == null) return; - drone.remove(); Effects.effect(UnitFx.pickup, drone); + //must run afterwards so the unit's group is not null when sending the removal packet + threads.runDelay(drone::remove); } @Override diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 69fc108654..d6881fc58a 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -215,10 +215,10 @@ public class DesktopInput extends InputHandler{ }else if(selected != null){ //only begin shooting if there's no cursor event if (!tileTapped(selected) && !tryTapPlayer(Graphics.mouseWorld().x, Graphics.mouseWorld().y) && player.getPlaceQueue().size == 0 && !droppingItem && - !tryBeginMine(selected) && player.getMineTile() == null) { + !tryBeginMine(selected) && player.getMineTile() == null && !ui.chatfrag.chatOpen()) { player.isShooting = true; } - }else{ //if it's out of bounds, shooting is just fine + }else if(!ui.chatfrag.chatOpen()){ //if it's out of bounds, shooting is just fine player.isShooting = true; } }else if(Inputs.keyTap(section, "deselect") && (recipe != null || mode != none || player.isBuilding()) &&