From 40d459b1b610e251c5d7d378b6c5ae5ed74a8513 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 24 Jul 2025 18:40:31 -0400 Subject: [PATCH] Hint for upgrading units --- core/assets/bundles/bundle.properties | 1 + core/src/mindustry/game/EventType.java | 1 + core/src/mindustry/ui/fragments/HintsFragment.java | 3 +++ core/src/mindustry/world/blocks/units/Reconstructor.java | 1 + 4 files changed, 6 insertions(+) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 9987556245..41def41e4f 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -2061,6 +2061,7 @@ hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatical hint.generator = :combustion-generator: [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with :power-node: [accent]Power Nodes[]. hint.guardian = [accent]Guardian[] units are armored. Weak ammo such as [accent]Copper[] and [accent]Lead[] is [scarlet]not effective[].\n\nUse higher tier turrets or :graphite: [accent]Graphite[] :duo:Duo/:salvo:Salvo ammunition to take Guardians down. hint.coreUpgrade = Cores can be upgraded by [accent]placing higher-tier cores over them[].\n\nPlace a :core-foundation: [accent]Foundation[] core over the :core-shard: [accent]Shard[] core. Make sure it is free from nearby obstructions. +hint.cannotUpgrade = A [red]:tree:[] icon over a payload unit indicates that its upgraded version is not researched yet.\n\nUnit upgrades must be researched in the [accent]:tree: tech tree[] before they can be produced in reconstructors. hint.presetLaunch = Gray [accent]landing zone sectors[], such as [accent]Frozen Forest[], can be launched to from anywhere. They do not require capture of nearby territory.\n\n[accent]Numbered sectors[], such as this one, are [accent]optional[]. hint.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation. hint.coreIncinerate = After the core is filled to capacity with an item, any extra items of that type it receives will be [accent]incinerated[]. diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index e9f58c038c..a5e48b8dc7 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -17,6 +17,7 @@ public class EventType{ //events that occur very often public enum Trigger{ shock, + cannotUpgrade, openConsole, blastFreeze, impactPower, diff --git a/core/src/mindustry/ui/fragments/HintsFragment.java b/core/src/mindustry/ui/fragments/HintsFragment.java index fc9ba62988..5cc86f87df 100644 --- a/core/src/mindustry/ui/fragments/HintsFragment.java +++ b/core/src/mindustry/ui/fragments/HintsFragment.java @@ -81,6 +81,8 @@ public class HintsFragment{ } }); + Events.run(Trigger.cannotUpgrade, () -> events.add("cannotupgrade")); + Events.on(ResetEvent.class, e -> { placedBlocks.clear(); events.clear(); @@ -186,6 +188,7 @@ public class HintsFragment{ generator(() -> control.input.block == Blocks.combustionGenerator, () -> ui.hints.placedBlocks.contains(Blocks.combustionGenerator)), rebuildSelect(() -> state.rules.defaultTeam.data().plans.size >= 10, () -> control.input.isRebuildSelecting()), guardian(() -> state.boss() != null && isSerpulo() && state.boss().armor >= 4, () -> state.boss() == null), + cannotUpgrade(() -> ui.hints.events.contains("cannotupgrade"), () -> false), factoryControl(() -> !(state.isCampaign() && state.rules.sector.preset == SectorPresets.onset) && state.rules.defaultTeam.data().getBuildings(Blocks.tankFabricator).size + state.rules.defaultTeam.data().getBuildings(Blocks.groundFactory).size > 0, () -> ui.hints.events.contains("factorycontrol")), coreUpgrade(() -> state.isCampaign() && state.rules.sector.planet == Planets.serpulo && Blocks.coreFoundation.unlocked() diff --git a/core/src/mindustry/world/blocks/units/Reconstructor.java b/core/src/mindustry/world/blocks/units/Reconstructor.java index c87a05d828..b406048a32 100644 --- a/core/src/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/mindustry/world/blocks/units/Reconstructor.java @@ -223,6 +223,7 @@ public class Reconstructor extends UnitBlock{ if(!upgrade.unlockedNowHost() && !team.isAI()){ //flash "not researched" pay.showOverlay(Icon.tree); + Events.fire(Trigger.cannotUpgrade); } if(upgrade.isBanned()){