From 4a52392ce9eeb9575a4739afe2f86082da5acec4 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 23 Nov 2020 13:09:42 -0500 Subject: [PATCH] Added hint about guards & armor --- core/assets/bundles/bundle.properties | 2 +- core/assets/maps/ruinousShores.msav | Bin 18170 -> 18259 bytes core/src/mindustry/Vars.java | 2 +- core/src/mindustry/content/TechTree.java | 6 +++--- core/src/mindustry/core/GameState.java | 3 +-- core/src/mindustry/game/Teams.java | 6 ++++++ core/src/mindustry/game/Universe.java | 2 +- core/src/mindustry/game/Waves.java | 2 +- .../mindustry/ui/fragments/HintsFragment.java | 3 ++- 9 files changed, 16 insertions(+), 10 deletions(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 72f241b9b4..33ab9b2778 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -22,7 +22,6 @@ gameover.pvp = The[accent] {0}[] team is victorious! gameover.waiting = [accent]Waiting for next map... highscore = [accent]New highscore! copied = Copied. -indev.popup = [accent]v6[] is currently in [accent]beta[].\n[lightgray]This means:[]\n[scarlet]- The campaign is unfinished[]\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. indev.notready = This part of the game isn't ready yet indev.campaign = [accent]You've reached the end of the campaign![]\n\nThis is as far as the content goes. Interplanetary travel will be added in future updates. @@ -1270,6 +1269,7 @@ hint.payloadDrop = Press [accent]][] to drop a payload. hint.payloadDrop.mobile = [accent]Tap and hold[] an empty location to drop a payload there. hint.waveFire = [accent]Wave[] turrets with water as ammunition will automatically put out nearby fires. hint.generator = \uf879 [accent]Combustion Generators[] burn coal and transmit power to adjacent blocks.\n\nPower transmission range can be extended with \uf87f [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 \uf835 [accent]Graphite[] \uf861Duo/\uf859Salvo ammunition to take Guardians down. item.copper.description = Used in all types of construction and ammunition. item.copper.details = Copper. Abnormally abundant metal on Serpulo. Structurally weak unless reinforced. diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 41e957c0ff971cf11abb1aa10a4daa920edde6cf..48727feae4abb2077b544c010429afe70082b79a 100644 GIT binary patch delta 18187 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 delta 18053 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 { - + node(illuminator, () -> { + + }); }); }); diff --git a/core/src/mindustry/core/GameState.java b/core/src/mindustry/core/GameState.java index 3eed5e0164..de7cf6f60c 100644 --- a/core/src/mindustry/core/GameState.java +++ b/core/src/mindustry/core/GameState.java @@ -33,9 +33,8 @@ public class GameState{ /** Current game state. */ private State state = State.menu; - //TODO optimize public Unit boss(){ - return Groups.unit.find(u -> u.isBoss() && u.team == rules.waveTeam); + return teams.boss; } public void set(State astate){ diff --git a/core/src/mindustry/game/Teams.java b/core/src/mindustry/game/Teams.java index da5edfd0db..1c06372731 100644 --- a/core/src/mindustry/game/Teams.java +++ b/core/src/mindustry/game/Teams.java @@ -26,6 +26,8 @@ public class Teams{ public Seq active = new Seq<>(); /** Teams with block or unit presence. */ public Seq present = new Seq<>(TeamData.class); + /** Current boss unit. */ + public @Nullable Unit boss; public Teams(){ active.add(get(Team.crux)); @@ -178,6 +180,10 @@ public class Teams{ data.units.add(unit); data.presentFlag = true; + if(unit.team == state.rules.waveTeam && unit.isBoss()){ + boss = unit; + } + if(data.unitsByType == null || data.unitsByType.length <= unit.type.id){ data.unitsByType = new Seq[content.units().size]; } diff --git a/core/src/mindustry/game/Universe.java b/core/src/mindustry/game/Universe.java index 1b0b1fc10b..b8f27b5f73 100644 --- a/core/src/mindustry/game/Universe.java +++ b/core/src/mindustry/game/Universe.java @@ -216,7 +216,7 @@ public class Universe{ if(!sector.isAttacked() && turn > invasionGracePeriod && sector.info.hasSpawns){ //invasion chance depends on # of nearby bases if(Mathf.chance(baseInvasionChance * Math.min(sector.near().count(Sector::hasEnemyBase), 1))){ - int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : sector.info.wave + sector.info.wavesPassed) + Mathf.random(2, 5) * 5; + int waveMax = Math.max(sector.info.winWave, sector.isBeingPlayed() ? state.wave : sector.info.wave + sector.info.wavesPassed) + Mathf.random(2, 4) * 5; //assign invasion-related things if(sector.isBeingPlayed()){ diff --git a/core/src/mindustry/game/Waves.java b/core/src/mindustry/game/Waves.java index 8e65a0b1b9..21adaac37c 100644 --- a/core/src/mindustry/game/Waves.java +++ b/core/src/mindustry/game/Waves.java @@ -298,7 +298,7 @@ public class Waves{ begin = f; end = f + next >= cap ? never : f + next; max = 13; - unitScaling = (difficulty < 0.4f ? rand.random(2.5f, 5f) : rand.random(1f, 4f)) * scaling[ctier]; + unitScaling = (difficulty < 0.4f ? rand.random(2.5f, 4f) : rand.random(1f, 4f)) * scaling[ctier]; shields = shieldAmount; shieldScaling = shieldsPerWave; spacing = space; diff --git a/core/src/mindustry/ui/fragments/HintsFragment.java b/core/src/mindustry/ui/fragments/HintsFragment.java index eb029789fe..f967518cb4 100644 --- a/core/src/mindustry/ui/fragments/HintsFragment.java +++ b/core/src/mindustry/ui/fragments/HintsFragment.java @@ -150,7 +150,7 @@ public class HintsFragment extends Fragment{ depositItems(() -> player.unit().hasItem(), () -> !player.unit().hasItem()), desktopPause(visibleDesktop, () -> isTutorial.get() && !Vars.net.active(), () -> Core.input.keyTap(Binding.pause)), research(isTutorial, () -> ui.research.isShown()), - unitControl(() -> state.rules.defaultTeam.data().units.size > 1 && !net.active(), () -> !player.dead() && !player.unit().spawnedByCore), + unitControl(() -> state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), () -> !player.dead() && !player.unit().spawnedByCore), respawn(visibleMobile, () -> !player.dead() && !player.unit().spawnedByCore, () -> !player.dead() && player.unit().spawnedByCore), launch(() -> isTutorial.get() && state.rules.sector.isCaptured(), () -> ui.planet.isShown()), schematicSelect(visibleDesktop, () -> ui.hints.placedBlocks.contains(Blocks.router), () -> Core.input.keyRelease(Binding.schematic_select) || Core.input.keyTap(Binding.pick)), @@ -161,6 +161,7 @@ public class HintsFragment extends Fragment{ payloadDrop(() -> !player.unit().dead && player.unit() instanceof Payloadc p && p.payloads().any(), () -> player.unit() instanceof Payloadc p && p.payloads().isEmpty()), waveFire(() -> Groups.fire.size() > 0 && Blocks.wave.unlockedNow(), () -> indexer.getAllied(state.rules.defaultTeam, BlockFlag.extinguisher).size() > 0), generator(() -> control.input.block == Blocks.combustionGenerator, () -> ui.hints.placedBlocks.contains(Blocks.combustionGenerator)), + guardian(() -> state.boss() != null && state.boss().armor >= 4, () -> state.boss() == null), ; @Nullable