From 8162e13f040b289af7643645249751a103747053 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 6 Aug 2019 18:05:17 -0400 Subject: [PATCH] Balancing, fixes, general improvements --- core/assets/maps/saltFlats.msav | Bin 17864 -> 17830 bytes core/assets/zones/nomap.png | Bin 0 -> 7924 bytes .../io/anuke/mindustry/content/Blocks.java | 7 +++--- .../io/anuke/mindustry/content/Bullets.java | 5 ++++ .../io/anuke/mindustry/content/UnitTypes.java | 6 +++-- .../src/io/anuke/mindustry/content/Zones.java | 17 +++++++------- .../mindustry/entities/effect/Decal.java | 2 +- .../entities/effect/RubbleDecal.java | 5 ++++ .../entities/effect/ScorchDecal.java | 2 +- core/src/io/anuke/mindustry/type/Zone.java | 20 ++++++++++++++++ .../mindustry/ui/dialogs/DeployDialog.java | 19 ++++++++------- .../mindustry/ui/dialogs/MinimapDialog.java | 1 + .../mindustry/ui/dialogs/ZoneInfoDialog.java | 22 +----------------- core/src/io/anuke/mindustry/world/Block.java | 2 +- core/src/io/anuke/mindustry/world/Tile.java | 2 +- .../world/blocks/power/PowerNode.java | 2 +- 16 files changed, 63 insertions(+), 49 deletions(-) create mode 100644 core/assets/zones/nomap.png diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/saltFlats.msav index 6c2ae62d6552c9095e588fb291c5e302c49521f6..5a8285f910e7a322b47448e5e604af895cb3d086 100644 GIT binary patch delta 17601 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 delta 17597 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 Tewyv0XX&pO{~5n_p4R~YkZlk? diff --git a/core/assets/zones/nomap.png b/core/assets/zones/nomap.png new file mode 100644 index 0000000000000000000000000000000000000000..00241f7666276a89337ae95004c40ad1d669c5c9 GIT binary patch literal 7924 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 nodes = new ObjectSet<>(); private ZoneInfoDialog info = new ZoneInfoDialog(); private Rectangle bounds = new Rectangle(); + private Texture nomap = new Texture("zones/nomap.png"); public DeployDialog(){ super("", "fulldialog"); + Events.on(DisposeEvent.class, e -> nomap.dispose()); + ZoneNode root = new ZoneNode(Zones.groundZero, null); TreeLayout layout = new TreeLayout(); @@ -173,9 +178,10 @@ public class DeployDialog extends FloatingDialog{ if(zone.unlocked() && !hidden(zone)){ button.labelWrap(zone.localizedName()).style("outline").width(140).growX().get().setAlignment(Align.center); }else{ - button.addImage("icon-locked"); + Consumer flasher = zone.canUnlock() && !hidden(zone) ? e -> e.update(() -> e.getColor().set(Color.WHITE).lerp(Pal.accent, Mathf.absin(3f, 1f))) : e -> {}; + flasher.accept(button.addImage("icon-locked").get()); button.row(); - button.add("$locked"); + flasher.accept(button.add("$locked").get()); } } @@ -193,13 +199,7 @@ public class DeployDialog extends FloatingDialog{ } stack.setSize(Tmp.v1.x, Tmp.v1.y); - if(node.zone.unlocked() && node.zone.preview != null){ - stack.add(new Table(t -> t.margin(4f).add(new Image(node.zone.preview) - .setScaling(Scaling.stretch)).color(Color.DARK_GRAY).grow())); - }else{ - stack.add(new Table(t -> t.margin(4f).add(new Image("whiteui", Color.BLACK).setScaling(Scaling.stretch)).grow())); - } - + stack.add(new Table(t -> t.margin(4f).add(new Image(node.zone.preview != null ? node.zone.preview : nomap).setScaling(Scaling.stretch)).color(node.zone.unlocked() ? Color.DARK_GRAY : Color.fromGray(0.2f)).grow())); stack.update(() -> stack.setPosition(node.x + panX + width / 2f, node.y + panY + height / 2f, Align.center)); Button button = new Button("square"); @@ -235,6 +235,7 @@ public class DeployDialog extends FloatingDialog{ for(ZoneNode node : nodes){ for(ZoneNode child : node.allChildren){ Lines.stroke(UnitScl.dp.scl(4f), node.zone.locked() || child.zone.locked() ? Pal.gray : Pal.gray); + Draw.alpha(parentAlpha); Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY); } } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MinimapDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MinimapDialog.java index 83c0ca4f2c..41790548a8 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MinimapDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MinimapDialog.java @@ -30,6 +30,7 @@ public class MinimapDialog extends FloatingDialog{ t.addRect((x, y, width, height) -> { if(renderer.minimap.getRegion() == null) return; Draw.color(Color.WHITE); + Draw.alpha(parentAlpha); Draw.rect(renderer.minimap.getRegion(), x + width / 2f, y + height / 2f, width, height); if(renderer.minimap.getTexture() != null){ diff --git a/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java index 1ff99705c4..a3d0ce2c9a 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java @@ -151,29 +151,9 @@ public class ZoneInfoDialog extends FloatingDialog{ hide(); control.playZone(zone); } - }).minWidth(150f).margin(13f).padTop(5).disabled(b -> zone.locked() ? !canUnlock(zone) : !data.hasItems(zone.getLaunchCost())).uniformY().get(); + }).minWidth(150f).margin(13f).padTop(5).disabled(b -> zone.locked() ? !zone.canUnlock() : !data.hasItems(zone.getLaunchCost())).uniformY().get(); button.row(); button.add(iteminfo); } - - private boolean canUnlock(Zone zone){ - if(data.isUnlocked(zone)){ - return true; - } - - for(ZoneRequirement other : zone.zoneRequirements){ - if(other.zone.bestWave() < other.wave){ - return false; - } - } - - for(Block other : zone.blockRequirements){ - if(!data.isUnlocked(other)){ - return false; - } - } - - return true; - } } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 0079062142..61fc8230c5 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -280,7 +280,7 @@ public class Block extends BlockStorage{ Geometry.circle(tile.x, tile.y, range, (x, y) -> { Tile other = world.ltile(x, y); if(other != null && other.block instanceof PowerNode && ((PowerNode)other.block).linkValid(other, tile) && !other.entity.proximity().contains(tile) && - !tile.entity.proximity().contains(p -> p.entity != null && p.entity.power != null && p.entity.power.graph == other.entity.power.graph)){ + !(outputsPower && tile.entity.proximity().contains(p -> p.entity != null && p.entity.power != null && p.entity.power.graph == other.entity.power.graph))){ tempTiles.add(other); } }); diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index b0738925c3..05e0f6c1ac 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -220,7 +220,7 @@ public class Tile implements Position, TargetTrait{ } public boolean isEnemyCheat(){ - return getTeam() == waveTeam && !state.rules.pvp; + return getTeam() == waveTeam && state.rules.enemyCheat; } public boolean isLinked(){ diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java index f3816f9a15..a32572b893 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java @@ -235,7 +235,7 @@ public class PowerNode extends PowerBlock{ } public boolean linkValid(Tile tile, Tile link, boolean checkMaxNodes){ - if(tile == link || link == null || !link.block().hasPower || tile.getTeam() != link.getTeam()) return false; + if(tile == link || link == null || link.entity == null || tile.entity == null || !link.block().hasPower || tile.getTeam() != link.getTeam()) return false; if(overlaps(tile, link, laserRange * tilesize) || (link.block() instanceof PowerNode && overlaps(link, tile, link.cblock().laserRange * tilesize))){ if(checkMaxNodes && link.block() instanceof PowerNode){