From af1746932fed4c7866f3cab7b229db4e1c6c5b94 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 11 Jun 2019 08:47:16 -0400 Subject: [PATCH] Fixed incorrect scaling --- .../sprites/blocks/turrets/salvo.png | Bin 5732 -> 5697 bytes .../io/anuke/mindustry/core/NetServer.java | 2 +- .../mindustry/entities/type/BaseUnit.java | 4 ++ .../mindustry/entities/type/base/Drone.java | 35 ++++++++---------- .../io/anuke/mindustry/net/CrashSender.java | 3 +- .../src/io/anuke/mindustry/type/UnitType.java | 2 +- .../mindustry/ui/fragments/HudFragment.java | 7 +++- 7 files changed, 29 insertions(+), 24 deletions(-) diff --git a/core/assets-raw/sprites/blocks/turrets/salvo.png b/core/assets-raw/sprites/blocks/turrets/salvo.png index 2af563f8217c1fdaf565f2135684248bcf4de7ba..f43f7bbd47aa57ce7a965e67c27eeda67a236f50 100644 GIT binary patch delta 5236 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 HB{Ts5KS=n8 delta 5289 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 VTHF7fm4ShQ!PC{xWt~$(69B3nL#qG) diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index dbc09ca4c4..7da3a47a24 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -40,7 +40,7 @@ import static io.anuke.mindustry.Vars.*; public class NetServer implements ApplicationListener{ public final static int maxSnapshotSize = 430; - private final static float serverSyncTime = 20, kickDuration = 30 * 1000; + private final static float serverSyncTime = 15, kickDuration = 30 * 1000; private final static Vector2 vector = new Vector2(); private final static Rectangle viewport = new Rectangle(); /** If a player goes away of their server-side coordinates by this distance, they get teleported back. */ diff --git a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java index 334b21db3c..440cab7a2b 100644 --- a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java @@ -80,6 +80,10 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ return type.drag; } + public Tile getSpawner(){ + return world.tile(spawner); + } + /** Initialize the type and team of this unit. Only call once! */ public void init(UnitType type, Team team){ if(this.type != null) throw new RuntimeException("This unit is already initialized!"); diff --git a/core/src/io/anuke/mindustry/entities/type/base/Drone.java b/core/src/io/anuke/mindustry/entities/type/base/Drone.java index 6fd10ba022..bc34545637 100644 --- a/core/src/io/anuke/mindustry/entities/type/base/Drone.java +++ b/core/src/io/anuke/mindustry/entities/type/base/Drone.java @@ -25,8 +25,6 @@ import java.io.*; import static io.anuke.mindustry.Vars.*; public class Drone extends FlyingUnit implements BuilderTrait{ - - protected Item targetItem; protected Tile mineTile; protected Queue placeQueue = new Queue<>(); @@ -77,20 +75,14 @@ public class Drone extends FlyingUnit implements BuilderTrait{ public void update(){ - retarget(() -> { - target = Units.findDamagedTile(team, x, y); + retarget(() -> target = Units.findDamagedTile(team, x, y)); - if(target == null){ - setState(mine); + if(target != null){ + if(target.dst(Drone.this) > type.range){ + circle(type.range * 0.9f); + }else{ + getWeapon().update(Drone.this, target.getX(), target.getY()); } - }); - - if(target == null) return; - - if(target.dst(Drone.this) > type.range){ - circle(type.range * 0.9f); - }else{ - getWeapon().update(Drone.this, target.getX(), target.getY()); } } }, @@ -196,10 +188,14 @@ public class Drone extends FlyingUnit implements BuilderTrait{ if(health >= maxHealth()){ state.set(attack); }else if(!targetHasFlag(BlockFlag.repair)){ - if(timer.get(timerTarget, 20)){ - Tile target = Geometry.findClosest(x, y, world.indexer.getAllied(team, BlockFlag.repair)); - if(target != null) Drone.this.target = target.entity; - } + retarget(() -> { + Tile repairPoint = Geometry.findClosest(x, y, world.indexer.getAllied(team, BlockFlag.repair)); + if(repairPoint != null){ + target = repairPoint; + }else if(getSpawner() != null){ + target = getSpawner(); + } + }); }else{ circle(40f); } @@ -300,8 +296,7 @@ public class Drone extends FlyingUnit implements BuilderTrait{ @Override public void behavior(){ - if(health <= health * type.retreatPercent && - Geometry.findClosest(x, y, world.indexer.getAllied(team, BlockFlag.repair)) != null){ + if(health <= health * type.retreatPercent){ setState(retreat); } } diff --git a/core/src/io/anuke/mindustry/net/CrashSender.java b/core/src/io/anuke/mindustry/net/CrashSender.java index f771091b7a..c551cf8828 100644 --- a/core/src/io/anuke/mindustry/net/CrashSender.java +++ b/core/src/io/anuke/mindustry/net/CrashSender.java @@ -7,6 +7,7 @@ import io.anuke.arc.util.Log; import io.anuke.arc.util.OS; import io.anuke.arc.util.Strings; import io.anuke.arc.util.io.PropertiesUtils; +import io.anuke.arc.util.io.Streams; import io.anuke.arc.util.serialization.JsonValue; import io.anuke.arc.util.serialization.JsonValue.ValueType; import io.anuke.arc.util.serialization.JsonWriter.OutputType; @@ -66,7 +67,7 @@ public class CrashSender{ try{ File file = new File(OS.getAppDataDirectoryString(Vars.appName), "crashes/crash-report-" + DateTimeFormatter.ofPattern("MM_dd_yyyy_HH_mm_ss").format(LocalDateTime.now()) + ".txt"); new File(OS.getAppDataDirectoryString(Vars.appName)).mkdir(); - new BufferedOutputStream(new FileOutputStream(file), 2048).write(parseException(exception).getBytes()); + new BufferedOutputStream(new FileOutputStream(file), Streams.DEFAULT_BUFFER_SIZE).write(parseException(exception).getBytes()); Files.createDirectories(Paths.get(OS.getAppDataDirectoryString(Vars.appName), "crashes")); writeListener.accept(file); diff --git a/core/src/io/anuke/mindustry/type/UnitType.java b/core/src/io/anuke/mindustry/type/UnitType.java index d187380fb0..1500fb2738 100644 --- a/core/src/io/anuke/mindustry/type/UnitType.java +++ b/core/src/io/anuke/mindustry/type/UnitType.java @@ -28,7 +28,7 @@ public class UnitType extends UnlockableContent{ public boolean rotateWeapon = false; public float drag = 0.1f; public float maxVelocity = 5f; - public float retreatPercent = 0.2f; + public float retreatPercent = 0.6f; public int itemCapacity = 30; public ObjectSet toMine = ObjectSet.with(Items.lead, Items.copper); public float buildPower = 0.3f, minePower = 0.7f; diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index 4a044323c5..fe8672b53b 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -142,9 +142,14 @@ public class HudFragment extends Fragment{ }); Table wavesMain, editorMain; + boolean[] prev = {false}; cont.stack(wavesMain = new Table(), editorMain = new Table()).height(wavesMain.getPrefHeight()).update(s -> { - ((Table)s.getParent()).getCell(s).height(wavesMain.isVisible() ? wavesMain.getPrefHeight() : editorMain.getPrefHeight()); + ((Table)s.getParent()).getCell(s).height((wavesMain.isVisible() ? wavesMain.getPrefHeight() : editorMain.getPrefHeight()) / Unit.dp.scl(1f)); + if(prev[0] != wavesMain.isVisible()){ + s.getParent().pack(); + prev[0] = wavesMain.isVisible(); + } }); {