From e4cdf20030f7c5bfda5e1d8c3f678041c3f8c770 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 31 Jul 2020 14:06:15 -0400 Subject: [PATCH] Preset capture waves / More tooltips --- core/assets/maps/frozenForest.msav | Bin 9574 -> 10160 bytes core/src/mindustry/content/SectorPresets.java | 58 ++++-------------- core/src/mindustry/core/UI.java | 1 + core/src/mindustry/game/Objectives.java | 43 +------------ core/src/mindustry/input/DesktopInput.java | 8 +-- core/src/mindustry/type/SectorPreset.java | 43 ++----------- .../src/mindustry/desktop/steam/SStats.java | 7 ++- 7 files changed, 26 insertions(+), 134 deletions(-) diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav index 431b4ce947d762520540c86f875949b50511c1ea..21e75e565bc251f3a4357ba1673e02778a13bec3 100644 GIT binary patch literal 10160 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 literal 9574 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 Q!T(QZ2`$w>0$Z5RgfHR3l>h($ diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 1cc50426ce..3b76795c1d 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -9,7 +9,7 @@ public class SectorPresets implements ContentList{ public static SectorPreset groundZero, craters, frozenForest, ruinousShores, stainedMountains, tarFields, fungalPass, - saltFlats, overgrowth, impact0078, crags, + saltFlats, overgrowth, desolateRift, nuclearComplex; @Override @@ -17,34 +17,27 @@ public class SectorPresets implements ContentList{ groundZero = new SectorPreset("groundZero", serpulo, 15){{ alwaysUnlocked = true; - conditionWave = 5; - launchPeriod = 5; - rules = r -> { - r.winWave = 10; - }; + captureWave = 10; }}; saltFlats = new SectorPreset("saltFlats", serpulo, 101){{ - conditionWave = 10; - launchPeriod = 5; + }}; frozenForest = new SectorPreset("frozenForest", serpulo, 86){{ - conditionWave = 10; + captureWave = 40; }}; craters = new SectorPreset("craters", serpulo, 18){{ - conditionWave = 10; + captureWave = 40; }}; ruinousShores = new SectorPreset("ruinousShores", serpulo, 19){{ - conditionWave = 20; - launchPeriod = 20; + captureWave = 40; }}; stainedMountains = new SectorPreset("stainedMountains", serpulo, 20){{ - conditionWave = 10; - launchPeriod = 10; + captureWave = 30; }}; fungalPass = new SectorPreset("fungalPass", serpulo, 21){{ @@ -52,49 +45,20 @@ public class SectorPresets implements ContentList{ }}; overgrowth = new SectorPreset("overgrowth", serpulo, 22){{ - conditionWave = 12; - launchPeriod = 4; + }}; tarFields = new SectorPreset("tarFields", serpulo, 23){{ - conditionWave = 15; - launchPeriod = 10; + captureWave = 40; }}; desolateRift = new SectorPreset("desolateRift", serpulo, 123){{ - conditionWave = 3; - launchPeriod = 2; + captureWave = 40; }}; nuclearComplex = new SectorPreset("nuclearComplex", serpulo, 130){{ - conditionWave = 30; - launchPeriod = 15; + captureWave = 60; }}; - - - /* - crags = new Zone("crags", new MapGenerator("crags").dist(2f)){{ - loadout = Loadouts.basicFoundation; - baseLaunchCost = ItemStack.with(); - startingItems = ItemStack.list(Items.copper, 2000, Items.lead, 2000, Items.graphite, 500, Items.titanium, 500, Items.silicon, 500); - conditionWave = 3; - launchPeriod = 2; - requirements = with(stainedMountains, 40); - blockRequirements = new Block[]{Blocks.thermalGenerator}; - resources = Array.with(Items.copper, Items.scrap, Items.lead, Items.coal, Items.sand}; - }}; - - - impact0078 = new SectorPreset("impact0078"){{ - loadout = Loadouts.basicNucleus; - baseLaunchCost = ItemStack.list(); - startingItems = ItemStack.list(Items.copper, 2000, Items.lead, 2000, Items.graphite, 500, Items.titanium, 500, Items.silicon, 500); - conditionWave = 3; - launchPeriod = 2; - //requirements = with(nuclearComplex, 40); - //blockRequirements = new Block[]{Blocks.thermalGenerator}; - //resources = Array.with(Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.thorium}; - }};*/ } } diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index 544a9c9229..d068d7d23e 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -99,6 +99,7 @@ public class UI implements ApplicationListener, Loadable{ Dialog.setHideAction(() -> sequence(fadeOut(0.1f))); Tooltips.getInstance().animations = false; + Tooltips.getInstance().textProvider = text -> new Tooltip(t -> t.background(Styles.black5).margin(4f).add(text)); Core.settings.setErrorHandler(e -> { e.printStackTrace(); diff --git a/core/src/mindustry/game/Objectives.java b/core/src/mindustry/game/Objectives.java index aaa2b7c1d5..ad66fb9219 100644 --- a/core/src/mindustry/game/Objectives.java +++ b/core/src/mindustry/game/Objectives.java @@ -29,27 +29,6 @@ public class Objectives{ } } - public static class SectorWave extends SectorObjective{ - public int wave; - - public SectorWave(SectorPreset zone, int wave){ - this.preset = zone; - this.wave = wave; - } - - protected SectorWave(){} - - @Override - public boolean complete(){ - return preset.bestWave() >= wave; - } - - @Override - public String display(){ - return Core.bundle.format("requirement.wave", wave, preset.localizedName); - } - } - public static class SectorComplete extends SectorObjective{ public SectorComplete(SectorPreset zone){ @@ -65,29 +44,11 @@ public class Objectives{ @Override public String display(){ - return Core.bundle.format("requirement.capture",preset.localizedName); - } - } - - public static class Launched extends SectorObjective{ - - public Launched(SectorPreset zone){ - this.preset = zone; - } - - protected Launched(){} - - @Override - public boolean complete(){ - return preset.hasLaunched(); - } - - @Override - public String display(){ - return Core.bundle.format("requirement.core", preset.localizedName); + return Core.bundle.format("requirement.capture", preset.localizedName); } } + //TODO merge public abstract static class SectorObjective implements Objective{ public @NonNull SectorPreset preset; } diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index f1804a40ce..808d965ff0 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -330,20 +330,20 @@ public class DesktopInput extends InputHandler{ table.button(Icon.paste, Styles.clearPartiali, () -> { ui.schematics.show(); - }); + }).tooltip("Schematics"); table.button(Icon.tree, Styles.clearPartiali, () -> { ui.research.show(); - }).visible(() -> state.isCampaign()); + }).visible(() -> state.isCampaign()).tooltip("Research"); table.button(Icon.map, Styles.clearPartiali, () -> { ui.planet.show(); - }).visible(() -> state.isCampaign()); + }).visible(() -> state.isCampaign()).tooltip("Planet Map"); table.button(Icon.up, Styles.clearPartiali, () -> { ui.planet.show(state.getSector(), player.team().core()); }).visible(() -> state.isCampaign()) - .disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)); + .disabled(b -> player.team().core() == null || !player.team().core().items.has(player.team().core().block.requirements)).tooltip("Launch Core"); } void pollInput(){ diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index 7e3fc1b286..6c441dfb4a 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -1,6 +1,5 @@ package mindustry.type; -import arc.*; import arc.func.*; import arc.graphics.g2d.*; import arc.scene.ui.layout.*; @@ -11,16 +10,15 @@ import mindustry.gen.*; import mindustry.maps.generators.*; import mindustry.ui.*; -import static mindustry.Vars.*; - public class SectorPreset extends UnlockableContent{ public @NonNull FileMapGenerator generator; public @NonNull Planet planet; public @NonNull Sector sector; - public Cons rules = rules -> {}; - public int conditionWave = Integer.MAX_VALUE; - public int launchPeriod = 10; + public int captureWave = 0; + public Cons rules = rules -> { + rules.winWave = captureWave; + }; public SectorPreset(String name, Planet planet, int sector){ super(name); @@ -31,39 +29,6 @@ public class SectorPreset extends UnlockableContent{ planet.preset(sector, this); } - public Rules getRules(){ - return generator.map.rules(); - } - - public boolean isLaunchWave(int wave){ - return metCondition() && wave % launchPeriod == 0; - } - - public boolean hasLaunched(){ - //TODO implement - return Core.settings.getBool(name + "-launched", false); - } - - public int bestWave(){ - //TODO implement - return Core.settings.getInt(name + "-wave", 0); - } - - /** @return whether initial conditions to launch are met. */ - public boolean isLaunchMet(){ - return bestWave() >= conditionWave; - } - - /** Whether this zone has met its condition; if true, the player can leave. */ - public boolean metCondition(){ - //players can't leave in attack mode. - return state.wave >= conditionWave && !state.rules.attackMode; - } - - public boolean canConfigure(){ - return true; - } - @Override public TextureRegion icon(Cicon c){ return Icon.terrain.getRegion(); diff --git a/desktop/src/mindustry/desktop/steam/SStats.java b/desktop/src/mindustry/desktop/steam/SStats.java index 60b85912b0..dcd51d6e87 100644 --- a/desktop/src/mindustry/desktop/steam/SStats.java +++ b/desktop/src/mindustry/desktop/steam/SStats.java @@ -86,10 +86,11 @@ public class SStats implements SteamUserStatsCallback{ } }); + //TODO achievement invalid Events.on(ZoneConfigureCompleteEvent.class, e -> { - if(!content.sectors().contains(z -> !z.canConfigure())){ - configAllZones.complete(); - } + //if(!content.sectors().contains(z -> !z.canConfigure())){ + // configAllZones.complete(); + //} }); Events.on(Trigger.newGame, () -> Core.app.post(() -> {