From 9a8ae81af2cc412b3bb94d9ed11c38a0b0693182 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 5 Feb 2025 20:22:19 -0500 Subject: [PATCH] Allow landing pad config in more situations / Small power node build time increase --- core/src/mindustry/content/Blocks.java | 6 ++++-- .../world/blocks/campaign/LandingPad.java | 14 ++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index b59347fb54..1b01ccb2e7 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2286,9 +2286,10 @@ public class Blocks{ //region power powerNode = new PowerNode("power-node"){{ - requirements(Category.power, with(Items.copper, 1, Items.lead, 3)); + requirements(Category.power, with(Items.copper, 2, Items.lead, 5)); maxNodes = 10; laserRange = 6; + buildCostMultiplier = 2f; }}; powerNodeLarge = new PowerNode("power-node-large"){{ @@ -2451,12 +2452,13 @@ public class Blocks{ //erekir beamNode = new BeamNode("beam-node"){{ - requirements(Category.power, with(Items.beryllium, 8)); + requirements(Category.power, with(Items.beryllium, 10)); consumesPower = outputsPower = true; health = 90; range = 10; fogRadius = 1; researchCost = with(Items.beryllium, 5); + buildCostMultiplier = 2f; consumePowerBuffered(1000f); }}; diff --git a/core/src/mindustry/world/blocks/campaign/LandingPad.java b/core/src/mindustry/world/blocks/campaign/LandingPad.java index 7435f6ebd5..2fc630fc4a 100644 --- a/core/src/mindustry/world/blocks/campaign/LandingPad.java +++ b/core/src/mindustry/world/blocks/campaign/LandingPad.java @@ -13,6 +13,7 @@ import arc.util.io.*; import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.entities.*; +import mindustry.game.*; import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -65,12 +66,12 @@ public class LandingPad extends Block{ lightRadius = 90f; config(Item.class, (LandingPadBuild build, Item item) -> { - if(!accessible()) return; + if(!build.accessible()) return; build.config = item; }); configClear((LandingPadBuild build) -> { - if(!accessible()) return; + if(!build.accessible()) return; build.config = null; }); @@ -119,10 +120,6 @@ public class LandingPad extends Block{ build.handleLanding(); } - public boolean accessible(){ - return state.rules.editor || state.rules.allowEditWorldProcessors || state.isCampaign(); - } - public class LandingPadBuild extends Building{ public @Nullable Item config; //priority collisions are possible, but should be extremely rare @@ -146,6 +143,11 @@ public class LandingPad extends Block{ } } + public boolean accessible(){ + //In custom games, this block can be configured by anyone except the player team; this allows for enemy builder AI to use it + return state.rules.editor || state.rules.allowEditWorldProcessors || state.isCampaign() || state.rules.infiniteResources || (team != state.rules.defaultTeam && !state.rules.pvp && team != Team.derelict); + } + public void updateTimers(){ if(state.isCampaign() && lastUpdateId != state.updateId){ lastUpdateId = state.updateId;