From 1b9089aa3096151c3ac3c9c992163254c7381da5 Mon Sep 17 00:00:00 2001 From: ErrorInCode <43973418+Error-In-Code@users.noreply.github.com> Date: Wed, 8 Jun 2022 09:03:37 -0400 Subject: [PATCH] Stats for New Blocks (#6913) * Stats added * Fix bug + add WallCrafter speed * Add more stats * Update contributors --- core/assets/contributors | 1 + .../world/blocks/payloads/PayloadMassDriver.java | 1 + core/src/mindustry/world/blocks/power/BeamNode.java | 7 +++++++ .../src/mindustry/world/blocks/production/BeamDrill.java | 6 ++++++ .../mindustry/world/blocks/production/WallCrafter.java | 1 + core/src/mindustry/world/blocks/units/RepairTower.java | 9 +++++++++ core/src/mindustry/world/meta/StatValues.java | 2 +- 7 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/assets/contributors b/core/assets/contributors index deb7ac7335..c84d992f91 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -138,3 +138,4 @@ Jerzy Paciorkiewicz YozoZChomutova Qendolin Goobrr +[Error_27] diff --git a/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java b/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java index 0fd4110ce7..151d35f01e 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadMassDriver.java @@ -80,6 +80,7 @@ public class PayloadMassDriver extends PayloadBlock{ stats.add(Stat.payloadCapacity, StatValues.squared(maxPayloadSize, StatUnit.blocksSquared)); stats.add(Stat.reload, 60f / (chargeTime + reload), StatUnit.seconds); + stats.add(Stat.shootRange, range / tilesize, StatUnit.blocks); } @Override diff --git a/core/src/mindustry/world/blocks/power/BeamNode.java b/core/src/mindustry/world/blocks/power/BeamNode.java index 7a4a4afcaa..206deec0c4 100644 --- a/core/src/mindustry/world/blocks/power/BeamNode.java +++ b/core/src/mindustry/world/blocks/power/BeamNode.java @@ -48,6 +48,13 @@ public class BeamNode extends PowerBlock{ addBar("batteries", PowerNode.makeBatteryBalance()); } + @Override + public void setStats(){ + super.setStats(); + + stats.add(Stat.powerRange, range, StatUnit.blocks); + } + @Override public void init(){ super.init(); diff --git a/core/src/mindustry/world/blocks/production/BeamDrill.java b/core/src/mindustry/world/blocks/production/BeamDrill.java index 468641fe7c..97b0f8201c 100644 --- a/core/src/mindustry/world/blocks/production/BeamDrill.java +++ b/core/src/mindustry/world/blocks/production/BeamDrill.java @@ -5,9 +5,11 @@ import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; import arc.util.io.*; import mindustry.annotations.Annotations.*; +import mindustry.content.*; import mindustry.entities.units.*; import mindustry.game.*; import mindustry.gen.*; @@ -15,6 +17,7 @@ import mindustry.graphics.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; +import mindustry.world.blocks.environment.*; import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -102,6 +105,9 @@ public class BeamDrill extends Block{ public void setStats(){ super.setStats(); + stats.add(Stat.drillTier, StatValues.blocks(b -> (b instanceof Floor f && f.wallOre && f.itemDrop != null && f.itemDrop.hardness <= tier) || (b instanceof StaticWall w && w.itemDrop != null && w.itemDrop.hardness <= tier))); + + stats.add(Stat.drillSpeed, 60f / drillTime * size, StatUnit.itemsSecond); if(optionalBoostIntensity != 1){ stats.add(Stat.boostEffect, optionalBoostIntensity, StatUnit.timesSpeed); } diff --git a/core/src/mindustry/world/blocks/production/WallCrafter.java b/core/src/mindustry/world/blocks/production/WallCrafter.java index 15af0b629f..0f43bf7e8a 100644 --- a/core/src/mindustry/world/blocks/production/WallCrafter.java +++ b/core/src/mindustry/world/blocks/production/WallCrafter.java @@ -64,6 +64,7 @@ public class WallCrafter extends Block{ stats.add(Stat.output, output); stats.add(Stat.tiles, StatValues.blocks(attribute, floating, 1f, true, false)); + stats.add(Stat.drillSpeed, 60f / drillTime * size); } @Override diff --git a/core/src/mindustry/world/blocks/units/RepairTower.java b/core/src/mindustry/world/blocks/units/RepairTower.java index bf3a58b20b..60ed0c4152 100644 --- a/core/src/mindustry/world/blocks/units/RepairTower.java +++ b/core/src/mindustry/world/blocks/units/RepairTower.java @@ -11,6 +11,7 @@ import mindustry.gen.*; import mindustry.graphics.*; import mindustry.logic.*; import mindustry.world.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -29,6 +30,14 @@ public class RepairTower extends Block{ solid = true; } + @Override + public void setStats(){ + super.setStats(); + + stats.add(Stat.range, range, StatUnit.blocks); + stats.add(Stat.repairSpeed, healAmount * 60f, StatUnit.perSecond); + } + @Override public void drawPlace(int x, int y, int rotation, boolean valid){ super.drawPlace(x, y, rotation, valid); diff --git a/core/src/mindustry/world/meta/StatValues.java b/core/src/mindustry/world/meta/StatValues.java index b1962f232a..7e3551eb10 100644 --- a/core/src/mindustry/world/meta/StatValues.java +++ b/core/src/mindustry/world/meta/StatValues.java @@ -204,7 +204,7 @@ public class StatValues{ for(int i = 0; i < list.size; i++){ var item = list.get(i); - if(item instanceof Block block && block.itemDrop != null && !block.itemDrop.unlocked()) continue; + if(item instanceof Block block && block.itemDrop != null && !block.itemDrop.unlockedNow()) continue; if(item.uiIcon.found()) l.image(item.uiIcon).size(iconSmall).padRight(2).padLeft(2).padTop(3).padBottom(3); l.add(item.localizedName).left().padLeft(1).padRight(4).colspan(item.uiIcon.found() ? 1 : 2);