From dfda83004ebf1189c95a71fb909e505801bcc6f8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 13 Jan 2018 15:01:52 -0500 Subject: [PATCH] More minor bugfixes --- core/src/io/anuke/mindustry/core/Control.java | 2 +- core/src/io/anuke/mindustry/core/NetClient.java | 11 +++++++++-- core/src/io/anuke/mindustry/entities/Player.java | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 3db1097c65..5e0928ad9f 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -409,7 +409,7 @@ public class Control extends Module{ Timers.run(60, () -> { ui.restart.show(); - netServer.handleGameOver(); + if(Net.active() && Net.server()) netServer.handleGameOver(); }); } diff --git a/core/src/io/anuke/mindustry/core/NetClient.java b/core/src/io/anuke/mindustry/core/NetClient.java index b0416c9ef0..6debb981b3 100644 --- a/core/src/io/anuke/mindustry/core/NetClient.java +++ b/core/src/io/anuke/mindustry/core/NetClient.java @@ -43,6 +43,7 @@ public class NetClient extends Module { boolean gotData = false; boolean kicked = false; IntSet requests = new IntSet(); + IntSet recieved = new IntSet(); float playerSyncTime = 2; float dataTimeout = 60*10; @@ -51,6 +52,7 @@ public class NetClient extends Module { Net.handle(Connect.class, packet -> { Net.setClientLoaded(false); requests.clear(); + recieved.clear(); connecting = true; gotData = false; kicked = false; @@ -168,7 +170,10 @@ public class NetClient extends Module { Net.handle(EnemySpawnPacket.class, spawn -> { Gdx.app.postRunnable(() -> { //duplicates. - if(Vars.control.enemyGroup.getByID(spawn.id) != null) return; + if(Vars.control.enemyGroup.getByID(spawn.id) != null || + recieved.contains(spawn.id)) return; + + recieved.add(spawn.id); Enemy enemy = new Enemy(EnemyType.getByID(spawn.type)); enemy.set(spawn.x, spawn.y); @@ -257,7 +262,9 @@ public class NetClient extends Module { Net.handle(Player.class, player -> { Gdx.app.postRunnable(() -> { //duplicates. - if(Vars.control.enemyGroup.getByID(player.id) != null) return; + if(Vars.control.enemyGroup.getByID(player.id) != null || + recieved.contains(player.id)) return; + recieved.add(player.id); player.getInterpolator().last.set(player.x, player.y); player.getInterpolator().target.set(player.x, player.y); diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 485c7d5507..b631bcf70e 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -39,7 +39,7 @@ public class Player extends DestructibleEntity implements Syncable{ hitbox.setSize(5); hitboxTile.setSize(4f); - maxhealth = 150; + maxhealth = 200; heal(); }