diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index c91129f290..da5d2ca45b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -450,6 +450,7 @@ blocks.boosteffect = Boost Effect blocks.maxunits = Max Active Units blocks.health = Health blocks.buildtime = Build Time +blocks.buildcost = Build Cost blocks.inaccuracy = Inaccuracy blocks.shots = Shots blocks.reload = Shots/Second diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index f68573b255..8c33e1fac5 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -1407,7 +1407,7 @@ public class Blocks implements ContentList{ arc = new PowerTurret("arc"){{ requirements(Category.turret, ItemStack.with(Items.copper, 35, Items.lead, 50)); shootType = Bullets.arc; - reload = 30f; + reload = 35f; shootCone = 40f; rotatespeed = 8f; powerUse = 1.5f; diff --git a/core/src/io/anuke/mindustry/ui/ItemDisplay.java b/core/src/io/anuke/mindustry/ui/ItemDisplay.java index 728d99a710..1efcd10919 100644 --- a/core/src/io/anuke/mindustry/ui/ItemDisplay.java +++ b/core/src/io/anuke/mindustry/ui/ItemDisplay.java @@ -13,11 +13,15 @@ public class ItemDisplay extends Table{ this(item, 0); } - public ItemDisplay(Item item, int amount){ - add(new ItemImage(new ItemStack(item, amount))).size(8 * 4); - add(item.localizedName()).padLeft(4); + public ItemDisplay(Item item, int amount, boolean showName){ + add(new ItemImage(new ItemStack(item, amount))).size(8 * 4).padRight(amount > 99 ? 12 : 0); + if(showName) add(item.localizedName()).padLeft(4 + amount > 99 ? 4 : 0); this.item = item; this.amount = amount; } + + public ItemDisplay(Item item, int amount){ + this(item, amount, true); + } } diff --git a/core/src/io/anuke/mindustry/ui/LiquidDisplay.java b/core/src/io/anuke/mindustry/ui/LiquidDisplay.java index 86f5323102..0faf138853 100644 --- a/core/src/io/anuke/mindustry/ui/LiquidDisplay.java +++ b/core/src/io/anuke/mindustry/ui/LiquidDisplay.java @@ -27,7 +27,7 @@ public class LiquidDisplay extends Table{ t.add(Strings.autoFixed(amount, 1)); add(t); } - }}).size(8 * 4).padRight(3); + }}).size(8 * 4).padRight(3 + (amount != 0 && Strings.autoFixed(amount, 1).length() > 2 ? 8 : 0)); if(perSecond){ add(StatUnit.perSecond.localized()).padLeft(2).padRight(5).color(Color.LIGHT_GRAY); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 7c29291c06..c07e0b4791 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -19,7 +19,6 @@ import io.anuke.arc.util.pooling.*; import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.bullet.*; import io.anuke.mindustry.entities.effect.*; -import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.gen.*; @@ -32,6 +31,7 @@ import io.anuke.mindustry.world.blocks.*; import io.anuke.mindustry.world.blocks.power.*; import io.anuke.mindustry.world.consumers.*; import io.anuke.mindustry.world.meta.*; +import io.anuke.mindustry.world.meta.values.*; import java.util.*; @@ -476,7 +476,10 @@ public class Block extends BlockStorage{ public void setStats(){ stats.add(BlockStat.size, "{0}x{0}", size); stats.add(BlockStat.health, health, StatUnit.none); - stats.add(BlockStat.buildTime, buildCost / 60, StatUnit.seconds); + if(isBuildable()){ + stats.add(BlockStat.buildTime, buildCost / 60, StatUnit.seconds); + stats.add(BlockStat.buildCost, new ItemListValue(false, buildRequirements)); + } consumes.display(stats); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java index b425dd689d..1e0f0a3d64 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java @@ -44,7 +44,7 @@ public class CooledTurret extends Turret{ TurretEntity entity = tile.entity(); Liquid liquid = entity.liquids.current(); - float used = Math.min(Math.min(entity.liquids.get(liquid), maxUsed * Time.delta()), Math.max(0, ((reload - entity.reload) / coolantMultiplier) / liquid.heatCapacity)); + float used = Math.min(Math.min(entity.liquids.get(liquid), maxUsed * Time.delta()), Math.max(0, ((reload - entity.reload) / coolantMultiplier) / liquid.heatCapacity)) * baseReloadSpeed(tile); entity.reload += (used * liquid.heatCapacity) / liquid.heatCapacity; entity.liquids.remove(liquid, used); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java index 3873f2177d..761f8d1c81 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java @@ -201,7 +201,7 @@ public abstract class Turret extends Block{ protected void turnToTarget(Tile tile, float targetRot){ TurretEntity entity = tile.entity(); - entity.rotation = Angles.moveToward(entity.rotation, targetRot, rotatespeed * entity.delta()); + entity.rotation = Angles.moveToward(entity.rotation, targetRot, rotatespeed * entity.delta() * baseReloadSpeed(tile)); } public boolean shouldTurn(Tile tile){ diff --git a/core/src/io/anuke/mindustry/world/meta/BlockStat.java b/core/src/io/anuke/mindustry/world/meta/BlockStat.java index 4845e4936e..b32fb7d192 100644 --- a/core/src/io/anuke/mindustry/world/meta/BlockStat.java +++ b/core/src/io/anuke/mindustry/world/meta/BlockStat.java @@ -9,6 +9,7 @@ public enum BlockStat{ health(StatCategory.general), size(StatCategory.general), buildTime(StatCategory.general), + buildCost(StatCategory.general), itemCapacity(StatCategory.items), itemsMoved(StatCategory.items), diff --git a/core/src/io/anuke/mindustry/world/meta/values/ItemListValue.java b/core/src/io/anuke/mindustry/world/meta/values/ItemListValue.java index 494be7285c..87d7732718 100644 --- a/core/src/io/anuke/mindustry/world/meta/values/ItemListValue.java +++ b/core/src/io/anuke/mindustry/world/meta/values/ItemListValue.java @@ -7,15 +7,21 @@ import io.anuke.mindustry.world.meta.StatValue; public class ItemListValue implements StatValue{ private final ItemStack[] stacks; + private final boolean displayName; public ItemListValue(ItemStack... stacks){ + this(true, stacks); + } + + public ItemListValue(boolean displayName, ItemStack... stacks){ this.stacks = stacks; + this.displayName = displayName; } @Override public void display(Table table){ for(ItemStack stack : stacks){ - table.add(new ItemDisplay(stack.item, stack.amount)).padRight(5); + table.add(new ItemDisplay(stack.item, stack.amount, displayName)).padRight(5); } } }