diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index ffc8ea7edc..2b4da903c4 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1341,7 +1341,7 @@ public class Blocks implements ContentList{ unloader = new Unloader("unloader"){{ requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30)); - speed = 7f; + speed = 6f; }}; //endregion diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index cdb42c9864..ecdf57fc91 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -366,6 +366,9 @@ public class NetClient implements ApplicationListener{ @Remote public static void playerDisconnect(int playerid){ + if(netClient != null){ + netClient.addRemovedEntity(playerid); + } Groups.player.removeByID(playerid); } diff --git a/core/src/mindustry/entities/Units.java b/core/src/mindustry/entities/Units.java index 35143817c7..23e3c56db4 100644 --- a/core/src/mindustry/entities/Units.java +++ b/core/src/mindustry/entities/Units.java @@ -19,8 +19,17 @@ public class Units{ private static boolean boolResult; @Remote(called = Loc.server) - public static void unitDeath(Unit unit){ - unit.killed(); + public static void unitDeath(int uid){ + Unit unit = Groups.unit.getByID(uid); + + //if there's no unit don't add it later and get it stuck as a ghost + if(netClient != null){ + netClient.addRemovedEntity(uid); + } + + if(unit != null){ + unit.killed(); + } } @Remote(called = Loc.server) diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index 8ab082b8f0..0b04063970 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -31,6 +31,7 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I @Import float x, y, rotation, elevation, maxHealth, drag, armor, hitSize, health; @Import boolean dead; @Import Team team; + @Import int id; private UnitController controller; private UnitType type; @@ -389,6 +390,6 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I if(dead || net.client()) return; //deaths are synced; this calls killed() - Call.unitDeath(base()); + Call.unitDeath(id); } }