Fungal pass expanded / Hint overlap fixes
This commit is contained in:
@@ -2130,7 +2130,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.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.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.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.serpuloCoreZone = Additional cores may be constructed on :core-zone: [accent]Core Zone[] tiles.
|
hint.serpuloCoreZone = Additional :core-shard: [accent]Cores[] may be constructed on :core-zone: [accent]Core Zone[] tiles.
|
||||||
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.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.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.presetDifficulty = This sector has a [scarlet]high enemy threat level[].\nLaunching to such sectors is [accent]not recommended[] without proper technology and preparation.
|
||||||
@@ -2159,6 +2159,9 @@ gz.zone2 = Anything built in the radius is destroyed when a wave starts.
|
|||||||
gz.zone3 = A wave will begin now.\nGet ready.
|
gz.zone3 = A wave will begin now.\nGet ready.
|
||||||
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
|
gz.finish = Build more turrets, mine more resources,\nand defend against all the waves to [accent]capture the sector[].
|
||||||
|
|
||||||
|
fungalpass.tutorial1 = Use [accent]units[] to defend buildings and attack the enemy.\nResearch and place a :ground-factory: [accent]ground factory[].
|
||||||
|
fungalpass.tutorial2 = Select :dagger: [accent]Dagger[] units in the factory.\nProduce 3 units.
|
||||||
|
|
||||||
atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[].
|
atolls.destroy1 = Destroy the 2 enemy [accent]foundation cores[] first.\n[accent]Gain access to thorium[].
|
||||||
atolls.destroy2 = The enemy base to the south is fragile to naval units. \nConstruct [accent]naval units[] to proceed.
|
atolls.destroy2 = The enemy base to the south is fragile to naval units. \nConstruct [accent]naval units[] to proceed.
|
||||||
atolls.destroy3 = The enemy base to the east is fragile to air units. \nConstruct [accent]air units[] to proceed.
|
atolls.destroy3 = The enemy base to the east is fragile to air units. \nConstruct [accent]air units[] to proceed.
|
||||||
@@ -2210,7 +2213,7 @@ aegis.tungsten = Tungsten can be mined using an [accent]impact drill[].\nThis st
|
|||||||
|
|
||||||
split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop)
|
split.pickup = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(Default keys are [[ and ] to pick up and drop)
|
||||||
split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
|
split.pickup.mobile = Some blocks can be picked up by the core unit.\nPick up this [accent]container[] and place it onto the [accent]payload loader[].\n(To pick up or drop something, long-press it.)
|
||||||
split.acquire = You must acquire some tungsten to build units.
|
split.acquire = Acquire some tungsten to build units.
|
||||||
split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other.
|
split.build = Units must be transported to the other side of the wall.\nPlace two [accent]Payload Mass Drivers[], one on each side of the wall.\nSet up the link by pressing one of them, then selecting the other.
|
||||||
split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base.
|
split.container = Similar to the container, units can also be transported using a [accent]Payload Mass Driver[].\nPlace a unit fabricator adjacent to a mass driver to load them, then send them across the wall to attack the enemy base.
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -167,48 +167,143 @@ public class HintsFragment{
|
|||||||
|
|
||||||
public enum DefaultHint implements Hint{
|
public enum DefaultHint implements Hint{
|
||||||
desktopMove(visibleDesktop, () -> Core.input.axis(Binding.moveX) != 0 || Core.input.axis(Binding.moveY) != 0),
|
desktopMove(visibleDesktop, () -> Core.input.axis(Binding.moveX) != 0 || Core.input.axis(Binding.moveY) != 0),
|
||||||
|
|
||||||
zoom(visibleDesktop, () -> Core.input.axis(KeyCode.scroll) != 0),
|
zoom(visibleDesktop, () -> Core.input.axis(KeyCode.scroll) != 0),
|
||||||
breaking(() -> isTutorial.get() && state.rules.defaultTeam.data().getCount(Blocks.conveyor) > 5, () -> ui.hints.events.contains("break")),
|
|
||||||
desktopShoot(visibleDesktop, () -> isSerpulo() && Vars.state.enemies > 0, () -> player.shooting),
|
breaking(
|
||||||
depositItems(() -> !player.dead() && player.unit().hasItem(), () -> !player.dead() && !player.unit().hasItem()),
|
() -> isTutorial.get() && state.rules.defaultTeam.data().getCount(Blocks.conveyor) > 5,
|
||||||
desktopPause(visibleDesktop, () -> isTutorial.get() && !Vars.net.active() && state.wave >= 2, () -> Core.input.keyTap(Binding.pause)),
|
() -> ui.hints.events.contains("break")
|
||||||
unitControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), () -> !player.dead() && !player.unit().spawnedByCore),
|
),
|
||||||
unitSelectControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead(),
|
|
||||||
() -> control.input.commandMode && control.input.selectedUnits.size > 0 && control.input.selectedUnits.first().controller() instanceof CommandAI ai && ai.targetPos != null),
|
desktopShoot(visibleDesktop,
|
||||||
respawn(visibleMobile, () -> !player.dead() && !player.unit().spawnedByCore, () -> !player.dead() && player.unit().spawnedByCore),
|
() -> isSerpulo() && Vars.state.enemies > 0,
|
||||||
launch(() -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(), () -> ui.planet.isShown()),
|
() -> player.shooting
|
||||||
schematicSelect(visibleDesktop, () -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter), () -> Core.input.keyRelease(Binding.schematicSelect) || Core.input.keyTap(Binding.pick)),
|
),
|
||||||
conveyorPathfind(() -> control.input.block == Blocks.titaniumConveyor, () -> Core.input.keyRelease(Binding.diagonalPlacement) || (mobile && Core.settings.getBool("swapdiagonal"))),
|
|
||||||
boost(visibleDesktop, () -> !player.dead() && player.unit().type.canBoost, () -> Core.input.keyDown(Binding.boost)),
|
depositItems(
|
||||||
blockInfo(() -> control.input.block == Blocks.graphitePress, () -> ui.content.isShown()),
|
() -> !player.dead() && player.unit().hasItem(),
|
||||||
derelict(() -> ui.hints.events.contains("derelictmouse") && !isTutorial.get(), () -> ui.hints.events.contains("derelictbreak")),
|
() -> !player.dead() && !player.unit().hasItem()
|
||||||
payloadPickup(() -> isSerpulo() && !player.dead() && player.unit() instanceof Payloadc p && p.payloads().isEmpty(), () -> player.unit() instanceof Payloadc p && p.payloads().any()),
|
),
|
||||||
payloadDrop(() -> !player.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.getFlagged(state.rules.defaultTeam, BlockFlag.extinguisher).size > 0),
|
desktopPause(visibleDesktop,
|
||||||
generator(() -> control.input.block == Blocks.combustionGenerator, () -> ui.hints.placedBlocks.contains(Blocks.combustionGenerator)),
|
() -> isTutorial.get() && !Vars.net.active() && state.wave >= 2,
|
||||||
rebuildSelect(() -> state.rules.defaultTeam.data().plans.size >= 10, () -> control.input.isRebuildSelecting()),
|
() -> Core.input.keyTap(Binding.pause)
|
||||||
guardian(() -> state.boss() != null && isSerpulo() && state.boss().armor >= 4, () -> state.boss() == null),
|
),
|
||||||
cannotUpgrade(() -> ui.hints.events.contains("cannotupgrade"), () -> false),
|
|
||||||
|
unitControl(
|
||||||
|
() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(),
|
||||||
|
() -> !player.dead() && !player.unit().spawnedByCore
|
||||||
|
),
|
||||||
|
|
||||||
|
unitSelectControl(
|
||||||
|
//if the player is on fungal pass or has *ever* played fungal pass, don't show this hint, it's redundant.
|
||||||
|
//in general, this should only be necessary if the player is doing a custom game or sequence-broke somehow
|
||||||
|
() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead() && state.getSector() != SectorPresets.fungalPass.sector && SectorPresets.fungalPass.sector.save == null,
|
||||||
|
() -> control.input.commandMode && control.input.selectedUnits.size > 0 && control.input.selectedUnits.first().controller() instanceof CommandAI ai && ai.targetPos != null
|
||||||
|
),
|
||||||
|
|
||||||
|
respawn(visibleMobile,
|
||||||
|
() -> !player.dead() && !player.unit().spawnedByCore,
|
||||||
|
() -> !player.dead() && player.unit().spawnedByCore
|
||||||
|
),
|
||||||
|
|
||||||
|
launch(
|
||||||
|
() -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(),
|
||||||
|
() -> ui.planet.isShown()
|
||||||
|
),
|
||||||
|
|
||||||
|
schematicSelect(visibleDesktop,
|
||||||
|
() -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter),
|
||||||
|
() -> Core.input.keyRelease(Binding.schematicSelect) || Core.input.keyTap(Binding.pick)
|
||||||
|
),
|
||||||
|
|
||||||
|
conveyorPathfind(
|
||||||
|
() -> control.input.block == Blocks.titaniumConveyor,
|
||||||
|
() -> Core.input.keyRelease(Binding.diagonalPlacement) || (mobile && Core.settings.getBool("swapdiagonal"))
|
||||||
|
),
|
||||||
|
|
||||||
|
boost(visibleDesktop,
|
||||||
|
() -> !player.dead() && player.unit().type.canBoost,
|
||||||
|
() -> Core.input.keyDown(Binding.boost)
|
||||||
|
),
|
||||||
|
|
||||||
|
blockInfo(
|
||||||
|
() -> control.input.block == Blocks.graphitePress,
|
||||||
|
() -> ui.content.isShown()
|
||||||
|
),
|
||||||
|
|
||||||
|
derelict(
|
||||||
|
() -> ui.hints.events.contains("derelictmouse") && !isTutorial.get(),
|
||||||
|
() -> ui.hints.events.contains("derelictbreak")
|
||||||
|
),
|
||||||
|
|
||||||
|
payloadPickup(
|
||||||
|
() -> isSerpulo() && !player.dead() && player.unit() instanceof Payloadc p && p.payloads().isEmpty(),
|
||||||
|
() -> player.unit() instanceof Payloadc p && p.payloads().any()
|
||||||
|
),
|
||||||
|
|
||||||
|
payloadDrop(
|
||||||
|
() -> !player.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.getFlagged(state.rules.defaultTeam, BlockFlag.extinguisher).size > 0
|
||||||
|
),
|
||||||
|
|
||||||
|
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) &&
|
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")),
|
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()
|
coreUpgrade(() -> state.isCampaign() && state.rules.sector.planet == Planets.serpulo && Blocks.coreFoundation.unlocked()
|
||||||
&& state.rules.defaultTeam.core() != null
|
&& state.rules.defaultTeam.core() != null
|
||||||
&& state.rules.defaultTeam.core().block == Blocks.coreShard
|
&& state.rules.defaultTeam.core().block == Blocks.coreShard
|
||||||
&& state.rules.defaultTeam.core().items.has(Blocks.coreFoundation.requirements),
|
&& state.rules.defaultTeam.core().items.has(Blocks.coreFoundation.requirements),
|
||||||
() -> ui.hints.placedBlocks.contains(Blocks.coreFoundation)),
|
() -> ui.hints.placedBlocks.contains(Blocks.coreFoundation)),
|
||||||
serpuloCoreZone(() -> state.isCampaign() && state.getPlanet() == Planets.serpulo && Vars.indexer.isBlockPresent(Blocks.coreZone) &&
|
|
||||||
(!state.rules.attackMode || state.stats.getDestroyed(Blocks.coreShard) + state.stats.getDestroyed(Blocks.coreFoundation) + state.stats.getDestroyed(Blocks.coreNucleus) > 0),
|
serpuloCoreZone(
|
||||||
|
() -> state.isCampaign() && state.getPlanet() == Planets.serpulo && Vars.indexer.isBlockPresent(Blocks.coreZone) &&
|
||||||
|
(!state.rules.attackMode || state.stats.getDestroyed(Blocks.coreShard) + state.stats.getDestroyed(Blocks.coreFoundation) + state.stats.getDestroyed(Blocks.coreNucleus) > 0),
|
||||||
() -> state.rules.defaultTeam.cores().size > 1),
|
() -> state.rules.defaultTeam.cores().size > 1),
|
||||||
|
|
||||||
presetLaunch(() -> state.isCampaign()
|
presetLaunch(
|
||||||
&& state.getSector().preset == null,
|
() -> state.isCampaign() && state.getSector().preset == null,
|
||||||
() -> state.isCampaign() && state.getSector().preset == SectorPresets.frozenForest),
|
() -> state.isCampaign() && state.getSector().preset == SectorPresets.frozenForest
|
||||||
|
),
|
||||||
|
|
||||||
presetDifficulty(() -> state.isCampaign()
|
presetDifficulty(() -> state.isCampaign()
|
||||||
&& state.getSector().preset == null
|
&& state.getSector().preset == null
|
||||||
&& state.getSector().threat >= 0.5f
|
&& state.getSector().threat >= 0.5f
|
||||||
&& !SectorPresets.tarFields.sector.isCaptured(), //appear only when the player hasn't progressed much in the game yet
|
&& !SectorPresets.tarFields.sector.isCaptured(), //appear only when the player hasn't progressed much in the game yet
|
||||||
() -> state.isCampaign() && state.getSector().preset != null),
|
() -> state.isCampaign() && state.getSector().preset != null
|
||||||
coreIncinerate(() -> state.isCampaign() && state.rules.defaultTeam.core() != null && state.rules.defaultTeam.core().items.get(Items.copper) >= state.rules.defaultTeam.core().storageCapacity - 10, () -> false)
|
),
|
||||||
|
|
||||||
|
coreIncinerate(
|
||||||
|
() -> state.isCampaign() && state.rules.defaultTeam.core() != null && state.rules.defaultTeam.core().items.get(Items.copper) >= state.rules.defaultTeam.core().storageCapacity - 10,
|
||||||
|
() -> false
|
||||||
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
Reference in New Issue
Block a user