diff --git a/core/assets-raw/sprites/blocks/drills/large-plasma-bore-glow.png b/core/assets-raw/sprites/blocks/drills/large-plasma-bore-glow.png index c44e9c7910..b17b63b0e1 100644 Binary files a/core/assets-raw/sprites/blocks/drills/large-plasma-bore-glow.png and b/core/assets-raw/sprites/blocks/drills/large-plasma-bore-glow.png differ diff --git a/core/assets-raw/sprites/blocks/drills/large-plasma-bore-top.png b/core/assets-raw/sprites/blocks/drills/large-plasma-bore-top.png index 7c1cd7d919..787040b968 100644 Binary files a/core/assets-raw/sprites/blocks/drills/large-plasma-bore-top.png and b/core/assets-raw/sprites/blocks/drills/large-plasma-bore-top.png differ diff --git a/core/assets-raw/sprites/blocks/drills/large-plasma-bore.png b/core/assets-raw/sprites/blocks/drills/large-plasma-bore.png index 7fb0859b71..9221578a2d 100644 Binary files a/core/assets-raw/sprites/blocks/drills/large-plasma-bore.png and b/core/assets-raw/sprites/blocks/drills/large-plasma-bore.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 130e1a6cba..98e2c5f17b 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2298,11 +2298,12 @@ public class Blocks{ //TODO requirements requirements(Category.production, with(Items.graphite, 30, Items.oxide, 30, Items.beryllium, 20, Items.carbide, 30)); consumes.power(0.8f); - drillTime = 100f; + drillTime = 120f; tier = 5; size = 3; range = 6; laserWidth = 0.7f; + itemCapacity = 20; consumes.liquid(Liquids.hydrogen, 0.5f / 60f).boost(); }}; @@ -2317,6 +2318,8 @@ public class Blocks{ drillEffect = new MultiEffect(Fx.mineImpact, Fx.drillSteam, Fx.mineImpactWave.wrap(Pal.redLight, 40f)); shake = 4f; itemCapacity = 40; + //can't mine thorium for balance reasons, needs better drill + blockedItem = Items.thorium; consumes.power(3f); consumes.liquid(Liquids.water, 0.2f); diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 355e962995..9c9911fb15 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -103,10 +103,8 @@ public class Planets{ }); //define launch candidates after all planets initialize - serpulo.launchCandidates.add(gier); - - //TODO WHAT IF THERE'S NO TRANSITION?? - gier.launchCandidates.add(erekir); + //TODO how will it use the nucleus??? + serpulo.launchCandidates.add(erekir); } private static Planet makeAsteroid(String name, Planet parent, Block base, Block tint, float tintThresh, int pieces, float scale, Cons cgen){ diff --git a/core/src/mindustry/maps/planet/AsteroidGenerator.java b/core/src/mindustry/maps/planet/AsteroidGenerator.java index 3c1b7b5866..15d683a471 100644 --- a/core/src/mindustry/maps/planet/AsteroidGenerator.java +++ b/core/src/mindustry/maps/planet/AsteroidGenerator.java @@ -147,6 +147,9 @@ public class AsteroidGenerator extends BlankPlanetGenerator{ state.rules.borderDarkness = false; state.rules.environment = Env.space; state.rules.waves = true; + + //TODO ??? + //state.rules.hiddenBuildItems.addAll(Items.plastanium, Items.surgeAlloy); //TODO maybe make this on by default everywhere state.rules.showSpawns = true; //TODO better wavegen, do it by hand even diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java index 1624cbd611..1a4d543e14 100644 --- a/core/src/mindustry/world/blocks/production/Drill.java +++ b/core/src/mindustry/world/blocks/production/Drill.java @@ -37,6 +37,8 @@ public class Drill extends Block{ public float liquidBoostIntensity = 1.6f; /** Speed at which the drill speeds up. */ public float warmupSpeed = 0.015f; + /** Special exemption item that this drill can't mine. */ + public @Nullable Item blockedItem; //return variables for countOre protected @Nullable Item returnItem; @@ -146,7 +148,7 @@ public class Drill extends Block{ Draw.color(); } }else{ - Tile to = tile.getLinkedTilesAs(this, tempTiles).find(t -> t.drop() != null && t.drop().hardness > tier); + Tile to = tile.getLinkedTilesAs(this, tempTiles).find(t -> t.drop() != null && t.drop().hardness > tier && t.drop() != blockedItem); Item item = to == null ? null : to.drop(); if(item != null){ drawPlaceText(Core.bundle.get("bar.drilltierreq"), x, y, valid); @@ -158,7 +160,7 @@ public class Drill extends Block{ public void setStats(){ super.setStats(); - stats.add(Stat.drillTier, StatValues.blocks(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= tier)); + stats.add(Stat.drillTier, StatValues.blocks(b -> b instanceof Floor f && f.itemDrop != null && f.itemDrop.hardness <= tier && f.itemDrop != blockedItem)); stats.add(Stat.drillSpeed, 60f / drillTime * size * size, StatUnit.itemsSecond); if(liquidBoostIntensity != 1){ @@ -207,7 +209,7 @@ public class Drill extends Block{ public boolean canMine(Tile tile){ if(tile == null || tile.block().isStatic()) return false; Item drops = tile.drop(); - return drops != null && drops.hardness <= tier; + return drops != null && drops.hardness <= tier && drops != blockedItem; } public class DrillBuild extends Building{