From 13c2eae1f478425f1c25c108f65acb79fbc6c56b Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 27 Feb 2019 19:48:00 -0500 Subject: [PATCH] Frozen forest rework / Reduced starter copper / Auto-deselect --- core/assets/maps/frozenForest.mmap | Bin 203286 -> 203262 bytes .../io/anuke/mindustry/content/Blocks.java | 14 +++++++------- .../io/anuke/mindustry/content/Loadouts.java | 16 +++++++++++++--- .../src/io/anuke/mindustry/content/Zones.java | 2 +- .../io/anuke/mindustry/game/GlobalData.java | 2 +- .../mindustry/ui/dialogs/DatabaseDialog.java | 3 ++- .../world/blocks/SelectionTrait.java | 2 +- 7 files changed, 25 insertions(+), 14 deletions(-) diff --git a/core/assets/maps/frozenForest.mmap b/core/assets/maps/frozenForest.mmap index 130da8e7a279fb9e1f68a6d9ab13c3244329b3d0..6b8bfc55f9dea4bf2ec1bb66a784c5cc854aef61 100644 GIT binary patch delta 10673 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 CpmwwX delta 9384 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 diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 4b9103edb5..3ca432a273 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -751,41 +751,41 @@ public class Blocks implements ContentList{ }}; conduit = new Conduit("conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.lead, 1)); + requirements(Category.liquid, ItemStack.with(Items.metaglass, 1)); health = 45; }}; pulseConduit = new Conduit("pulse-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.lead, 1)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.metaglass, 2)); liquidCapacity = 16f; liquidFlowFactor = 4.9f; health = 90; }}; liquidRouter = new LiquidRouter("liquid-router"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.lead, 4)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.metaglass, 4)); liquidCapacity = 20f; }}; liquidTank = new LiquidTank("liquid-tank"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 50, Items.lead, 50)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 50, Items.metaglass, 50)); size = 3; liquidCapacity = 1500f; health = 500; }}; liquidJunction = new LiquidJunction("liquid-junction"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.lead, 4)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.metaglass, 4)); }}; bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 8, Items.lead, 8)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 8, Items.metaglass, 8)); range = 4; hasPower = false; }}; phaseConduit = new LiquidBridge("phase-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.phasefabric, 10, Items.silicon, 15, Items.lead, 20, Items.titanium, 20)); + requirements(Category.liquid, ItemStack.with(Items.phasefabric, 10, Items.silicon, 15, Items.metaglass, 40, Items.titanium, 20)); range = 12; hasPower = true; consumes.power(0.30f); diff --git a/core/src/io/anuke/mindustry/content/Loadouts.java b/core/src/io/anuke/mindustry/content/Loadouts.java index f4c647f5b7..a9c7f5bc3f 100644 --- a/core/src/io/anuke/mindustry/content/Loadouts.java +++ b/core/src/io/anuke/mindustry/content/Loadouts.java @@ -6,6 +6,7 @@ import io.anuke.mindustry.type.Loadout; public class Loadouts implements ContentList{ public static Loadout basicShard, + advancedShard, basicFoundation, basicNucleus; @@ -20,14 +21,23 @@ public class Loadouts implements ContentList{ " C# C# " ); + advancedShard = new Loadout( + " ### ", + " #1# ", + "#######", + "C#^ ^C#", + " ## ## ", + " C# C# " + ); + basicFoundation = new Loadout( " #### ", " #### ", " #2## ", " #### ", - " ^ ^ ", - " ## ## ", - " C# C# " + " ^^^^ ", + " ###### ", + " C#C#C# " ); basicNucleus = new Loadout( diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index 55c57289bd..059f2261e9 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -115,7 +115,7 @@ public class Zones implements ContentList{ }}; }}; - frozenForest = new Zone("frozenForest", new MapGenerator("frozenForest", 2) + frozenForest = new Zone("frozenForest", new MapGenerator("frozenForest", 1) .decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.02))){{ loadout = Loadouts.basicFoundation; baseLaunchCost = ItemStack.with(Items.copper, 100); diff --git a/core/src/io/anuke/mindustry/game/GlobalData.java b/core/src/io/anuke/mindustry/game/GlobalData.java index ffbab24e7b..6726f6fd7f 100644 --- a/core/src/io/anuke/mindustry/game/GlobalData.java +++ b/core/src/io/anuke/mindustry/game/GlobalData.java @@ -116,7 +116,7 @@ public class GlobalData{ //set up default values if(!Core.settings.has("item-" + Items.copper.name)){ - addItem(Items.copper, 300); + addItem(Items.copper, 50); } } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/DatabaseDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/DatabaseDialog.java index bb794e667a..1a6e383dd3 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/DatabaseDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/DatabaseDialog.java @@ -8,6 +8,7 @@ import io.anuke.arc.scene.ui.Tooltip; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.arc.scene.utils.UIUtils; import io.anuke.mindustry.Vars; +import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.game.Content; import io.anuke.mindustry.game.UnlockableContent; import io.anuke.mindustry.graphics.Pal; @@ -77,6 +78,6 @@ public class DatabaseDialog extends FloatingDialog{ } boolean unlocked(UnlockableContent content){ - return !Vars.world.isZone() || content.unlocked(); + return (!Vars.world.isZone() && !Vars.state.is(State.menu)) || content.unlocked(); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java b/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java index 5b4c1a99a5..ef6d0d5c7c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java +++ b/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java @@ -28,7 +28,7 @@ public interface SelectionTrait{ for(Item item : items){ if(!data.isUnlocked(item) && world.isZone()) continue; - ImageButton button = cont.addImageButton("white", "clear-toggle", 24, () -> {}).group(group).get(); + ImageButton button = cont.addImageButton("white", "clear-toggle", 24, () -> control.input(0).frag.config.hideConfig()).group(group).get(); button.changed(() -> consumer.accept(button.isChecked() ? item : null)); button.getStyle().imageUp = new TextureRegionDrawable(item.icon(Icon.medium)); button.update(() -> button.setChecked(holder.get() == item));