From 6d7f8a1123692380005054d26ad049102b3d8872 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 19 Apr 2022 19:00:22 -0400 Subject: [PATCH] Added map objective button --- core/assets/bundles/bundle.properties | 2 + core/src/mindustry/content/SectorPresets.java | 38 +++++++++---------- core/src/mindustry/core/UI.java | 2 + .../mindustry/ui/dialogs/FullTextDialog.java | 21 ++++++++++ .../mindustry/ui/dialogs/PausedDialog.java | 6 +++ 5 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 core/src/mindustry/ui/dialogs/FullTextDialog.java diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 978907be1d..706bb577e4 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -310,6 +310,7 @@ openlink = Open Link copylink = Copy Link back = Back max = Max +objective = Map Objective crash.export = Export Crash Logs crash.none = No crash logs found. crash.exported = Crash logs exported. @@ -700,6 +701,7 @@ sector.impact0078.description = Here lie remnants of the interstellar transport sector.planetaryTerminal.description = The final target.\n\nThis coastal base contains a structure capable of launching Cores to local planets. It is extremely well guarded.\n\nProduce naval units. Eliminate the enemy as quickly as possible. Research the launch structure. sector.onset.name = The Onset +sector.onset.description = The tutorial sector. This objective has not been created yet. Await further information. status.burning.name = Burning status.freezing.name = Freezing diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index d10124d68a..479a723bce 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -159,23 +159,23 @@ public class SectorPresets{ new TextMarker("Hold [accent]shift[] to enter [accent]command mode[].\n[accent]Left-click and drag[] to select units.\n[accent]Right-click[] to order selected units to move or attack.", 258f * 8f, 116f * 8f) ), new BuildCountObjective(Blocks.breach, 1).withMarkers( - new TextMarker("Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\n Place a [accent]Breach[] turret.\nTurrets require [accent]ammo[].", 258f * 8f, 114f * 8f) + new TextMarker("Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\n Place a [accent]Breach[] turret.\nTurrets require [accent]ammo[].", 258f * 8f, 114f * 8f) ), new BuildCountObjective(Blocks.berylliumWall, 6).withMarkers( - new TextMarker("[accent]Walls[] can prevent oncoming damage from reaching buildings\nPlace some [accent]beryllium walls[] around the turret.", 276f * 8f, 133f * 8f) + new TextMarker("[accent]Walls[] can prevent oncoming damage from reaching buildings\nPlace some [accent]beryllium walls[] around the turret.", 276f * 8f, 133f * 8f) ), new TimerObjective("@objective.enemiesapproaching",30 * 60).withMarkers( - new TextMarker("Enemy incoming, prepare to defend.", 276f * 8f, 133f * 8f) + new TextMarker("Enemy incoming, prepare to defend.", 276f * 8f, 133f * 8f) ).withFlags("defStart"), new DestroyUnitsObjective(2).withFlags("defDone"), new DestroyBlockObjective(Blocks.coreBastion , 288, 198, Team.malis).withMarkers( - new TextMarker("The enemy is vulnerable. Counter-attack.", 276f * 8f, 133f * 8f) + new TextMarker("The enemy is vulnerable. Counter-attack.", 276f * 8f, 133f * 8f) ), new BuildCountObjective(Blocks.coreBastion, 1).withMarkers( - new ShapeTextMarker("New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a core.", 287.5f * 8f, 197.5f * 8f, 9f * 2.6f, 0f, 12f) + new ShapeTextMarker("New cores can be placed on [accent]core tiles[].\nNew cores function as forward bases and share a resource inventory with other cores.\nPlace a core.", 287.5f * 8f, 197.5f * 8f, 9f * 2.6f, 0f, 12f) ), new TimerObjective("Set up defenses", 120 * 60).withMarkers( - new TextMarker("The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.", 288f * 8f, 202f * 8f) + new TextMarker("The enemy will be able to detect you in 2 minutes.\nSet up defenses, mining, and production.", 288f * 8f, 202f * 8f) ).withFlags("openMap") ); }; @@ -186,19 +186,19 @@ public class SectorPresets{ rules = r -> { r.objectives.addAll( - new UnitCountObjective(UnitTypes.stell, 2).withMarkers( - new TextMarker("The enemy will attack soon.\n Build units to defend your core.", 276f * 8f, 133f * 8f) - ), - new BuildCountObjective(Blocks.breach, 1).withMarkers( - new TextMarker("Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\n Place a [accent]Breach[] turret.\nTurrets require [accent]ammo[].", 276f * 8f, 133f * 8f) - ).withFlags("defDone"), - new BuildCountObjective(Blocks.berylliumWall, 6).withMarkers( - new TextMarker("[accent]Walls[] can prevent oncoming damage from reaching your buildings\nPlace some [accent]beryllium walls[] around the turret.", 276f * 8f, 133f * 8f) - ), - new BuildCountObjective(Blocks.coreBastion, 1).withMarkers( - new TextMarker("You must expand.\nBuild more units and go on the offensive", 276f * 8f, 133f * 8f), - new TextMarker("Cores can only be placed in special zone tiles.", 287 * 8f, 201 * 8f) - ).withFlags("def2Done") + new UnitCountObjective(UnitTypes.stell, 2).withMarkers( + new TextMarker("The enemy will attack soon.\n Build units to defend your core.", 276f * 8f, 133f * 8f) + ), + new BuildCountObjective(Blocks.breach, 1).withMarkers( + new TextMarker("Units are effective, but [accent]turrets[] provide better defensive capabilities if used effectively.\n Place a [accent]Breach[] turret.\nTurrets require [accent]ammo[].", 276f * 8f, 133f * 8f) + ).withFlags("defDone"), + new BuildCountObjective(Blocks.berylliumWall, 6).withMarkers( + new TextMarker("[accent]Walls[] can prevent oncoming damage from reaching your buildings\nPlace some [accent]beryllium walls[] around the turret.", 276f * 8f, 133f * 8f) + ), + new BuildCountObjective(Blocks.coreBastion, 1).withMarkers( + new TextMarker("You must expand.\nBuild more units and go on the offensive", 276f * 8f, 133f * 8f), + new TextMarker("Cores can only be placed in special zone tiles.", 287 * 8f, 201 * 8f) + ).withFlags("def2Done") ); }; }}; diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index 9e3d6cc6d7..73edf56f00 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -72,6 +72,7 @@ public class UI implements ApplicationListener, Loadable{ public ModsDialog mods; public ColorPicker picker; public LogicDialog logic; + public FullTextDialog fullText; public Cursor drillCursor, unloadCursor, targetCursor; @@ -197,6 +198,7 @@ public class UI implements ApplicationListener, Loadable{ mods = new ModsDialog(); schematics = new SchematicsDialog(); logic = new LogicDialog(); + fullText = new FullTextDialog(); Group group = Core.scene.root; diff --git a/core/src/mindustry/ui/dialogs/FullTextDialog.java b/core/src/mindustry/ui/dialogs/FullTextDialog.java new file mode 100644 index 0000000000..b0eed68f54 --- /dev/null +++ b/core/src/mindustry/ui/dialogs/FullTextDialog.java @@ -0,0 +1,21 @@ +package mindustry.ui.dialogs; + +import arc.util.*; + +public class FullTextDialog extends BaseDialog{ + + public FullTextDialog(){ + super(""); + shouldPause = true; + addCloseButton(); + } + + public void show(String titleText, String text){ + title.setText(titleText); + cont.clear(); + cont.add(text).grow().wrap().labelAlign(Align.center); + + super.show(); + } + +} diff --git a/core/src/mindustry/ui/dialogs/PausedDialog.java b/core/src/mindustry/ui/dialogs/PausedDialog.java index c26ee4f1ef..1d7712b8ac 100644 --- a/core/src/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/mindustry/ui/dialogs/PausedDialog.java @@ -32,6 +32,12 @@ public class PausedDialog extends BaseDialog{ float dw = 220f; cont.defaults().width(dw).height(55).pad(5f); + cont.button("@objective", Icon.info, () -> { + //TODO pause game, better dialog. + ui.fullText.show("@objective", state.rules.sector.preset.description); + }).padTop(-60f).colspan(2) + .visible(() -> state.rules.sector != null && state.rules.sector.preset != null && state.rules.sector.preset.description != null).row(); + cont.button("@back", Icon.left, this::hide).name("back"); cont.button("@settings", Icon.settings, ui.settings::show).name("settings");