From 5594c3b704ef82c5909a0f4f3437a2b49942dd6a Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 20 Nov 2017 22:08:27 -0500 Subject: [PATCH] Added long descriptions for all blocks --- core/src/io/anuke/mindustry/Control.java | 4 + core/src/io/anuke/mindustry/Mindustry.java | 13 +- core/src/io/anuke/mindustry/UI.java | 8 +- core/src/io/anuke/mindustry/world/Block.java | 9 +- .../mindustry/world/blocks/DefenseBlocks.java | 18 ++- .../world/blocks/DistributionBlocks.java | 98 +++++++------ .../world/blocks/ProductionBlocks.java | 130 ++++++------------ .../mindustry/world/blocks/WeaponBlocks.java | 22 +++ .../world/blocks/types/LiquidBlock.java | 6 +- .../blocks/types/defense/LaserTurret.java | 4 +- .../blocks/types/defense/RepairTurret.java | 10 +- .../world/blocks/types/defense/Turret.java | 10 +- .../blocks/types/distribution/Conveyor.java | 5 - .../blocks/types/distribution/Junction.java | 5 - .../distribution/LiquidItemJunction.java | 5 - .../types/distribution/LiquidJunction.java | 5 - .../types/distribution/LiquidRouter.java | 5 - .../blocks/types/distribution/Router.java | 5 - .../blocks/types/distribution/Sorter.java | 5 - .../blocks/types/distribution/Teleporter.java | 5 - .../world/blocks/types/production/Drill.java | 5 - .../world/blocks/types/production/Pump.java | 5 - 22 files changed, 171 insertions(+), 211 deletions(-) diff --git a/core/src/io/anuke/mindustry/Control.java b/core/src/io/anuke/mindustry/Control.java index b09890604b..8971952089 100644 --- a/core/src/io/anuke/mindustry/Control.java +++ b/core/src/io/anuke/mindustry/Control.java @@ -56,6 +56,10 @@ public class Control extends Module{ UCore.log("Total blocks loaded: " + Block.getAllBlocks().size); + for(Block block : Block.getAllBlocks()){ + block.postInit(); + } + Draw.setCircleVertices(14); Gdx.input.setCatchBackKey(true); diff --git a/core/src/io/anuke/mindustry/Mindustry.java b/core/src/io/anuke/mindustry/Mindustry.java index 54a4e58308..a877786a25 100644 --- a/core/src/io/anuke/mindustry/Mindustry.java +++ b/core/src/io/anuke/mindustry/Mindustry.java @@ -10,6 +10,7 @@ import com.badlogic.gdx.utils.TimeUtils; import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.io.Formatter; +import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.*; import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Timers; @@ -31,12 +32,12 @@ public class Mindustry extends ModuleCore { }; //always initialize blocks in this order, otherwise there are ID errors - public Class[] blockClasses = new Class[]{ - Blocks.class, - DefenseBlocks.class, - DistributionBlocks.class, - ProductionBlocks.class, - WeaponBlocks.class + public Block[] blockClasses = { + Blocks.air, + DefenseBlocks.compositewall, + DistributionBlocks.conduit, + ProductionBlocks.coaldrill, + WeaponBlocks.chainturret }; @Override diff --git a/core/src/io/anuke/mindustry/UI.java b/core/src/io/anuke/mindustry/UI.java index 6de60ef5d2..5ef2b9b58f 100644 --- a/core/src/io/anuke/mindustry/UI.java +++ b/core/src/io/anuke/mindustry/UI.java @@ -679,7 +679,7 @@ public class UI extends SceneModule{ FloatingDialog d = new FloatingDialog("Block Info"); Table top = new Table(); top.left(); - top.add(new Image(region)).size(8*5).units(Unit.dp); + top.add(new Image(Draw.region(recipe.result.name))).size(8*5 * recipe.result.width).units(Unit.dp); top.add("[orange]"+recipe.result.formalName).padLeft(6f).units(Unit.dp); d.content().add(top).fill().left(); d.content().row(); @@ -689,7 +689,7 @@ public class UI extends SceneModule{ d.hide(); }).size(110, 50).pad(10f).units(Unit.dp); d.show(); - }).fillX().top().right().size(36f, 40f).units(Unit.dp); + }).expandX().padLeft(4).top().right().size(36f, 40f).units(Unit.dp); } @@ -722,8 +722,8 @@ public class UI extends SceneModule{ desctable.row(); - Label label = new Label("[health]health: " + recipe.result.health + (recipe.result.description() == null ? - "" : ("\n[]" + recipe.result.description()))); + Label label = new Label("[health]health: " + recipe.result.health + (recipe.result.description == null ? + "" : ("\n[]" + recipe.result.description))); label.setWrap(true); desctable.add(label).width(200).padTop(4).padBottom(2).units(Unit.dp); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 8bebbbe942..4805836680 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -57,8 +57,10 @@ public class Block{ public Liquid liquidDrop = null; /**multiblock width/height*/ public int width = 1, height = 1; + /**Brief block description. Should be short enough fit in the place menu.*/ + public String description; /**Detailed description of the block. Can be as long as necesary.*/ - public String fullDescription; //TODO show this + public String fullDescription; public Block(String name) { blocks.add(this); @@ -72,15 +74,12 @@ public class Block{ public void drawOver(Tile tile){} public void drawPixelOverlay(Tile tile){} public void drawPlace(int x, int y, boolean valid){} + public void postInit(){} public String name(){ return name; } - public String description(){ - return null; - } - public String errorMessage(Tile tile){ return null; } diff --git a/core/src/io/anuke/mindustry/world/blocks/DefenseBlocks.java b/core/src/io/anuke/mindustry/world/blocks/DefenseBlocks.java index 59a835fb06..2803b7eb4e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/DefenseBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/DefenseBlocks.java @@ -13,27 +13,30 @@ public class DefenseBlocks{ stonewall = new Wall("stonewall"){{ health = 50; formalName = "stone wall"; - fullDescription = - "A cheap defensive block. Useful for protecting the core and turrets in the first few waves."; + fullDescription = "A cheap defensive block. Useful for protecting the core and turrets in the first few waves."; }}, ironwall = new Wall("ironwall"){{ health = 80; formalName = "iron wall"; + fullDescription = "A basic defensive block. Provides protection from enemies."; }}, steelwall = new Wall("steelwall"){{ health = 110; formalName = "steel wall"; + fullDescription = "A standard defensive block. adequate protection from enemies."; }}, titaniumwall = new Wall("titaniumwall"){{ health = 150; formalName = "titanium wall"; + fullDescription = "A strong defensive block. Provides protection from enemies."; }}, diriumwall = new Wall("duriumwall"){{ health = 190; formalName = "dirium wall"; + fullDescription = "A very strong defensive block. Provides protection from enemies."; }}, compositewall = new Wall("compositewall"){{ health = 270; @@ -43,24 +46,31 @@ public class DefenseBlocks{ health = 110*4; formalName = "large steel wall"; width = height = 2; + fullDescription = "A standard defensive block. Spans multiple tiles."; }}, titaniumwalllarge = new Wall("titaniumwall-large"){{ health = 150*4; formalName = "large titanium wall"; width = height = 2; + fullDescription = "A strong defensive block. Spans multiple tiles."; }}, diriumwalllarge = new Wall("duriumwall-large"){{ health = 190*4; formalName = "large dirium wall"; width = height = 2; + fullDescription = "A very strong defensive block. Spans multiple tiles."; }}, titaniumshieldwall = new ShieldedWallBlock("titaniumshieldwall"){{ + fullDescription = "A strong defensive block, with an extra built-in shield. Requires power. " + + "Uses energy to absorb enemy bullets. It is recommended to use power boosters to provide energy to this block."; health = 150; formalName = "shielded wall"; }}, repairturret = new RepairTurret("repairturret"){ { + fullDescription = "Repairs nearby damaged blocks in range at a slow rate. " + + "Uses small amounts of power."; formalName = "heal turret"; range = 30; reload = 40f; @@ -70,6 +80,8 @@ public class DefenseBlocks{ megarepairturret = new RepairTurret("megarepairturret"){ { + fullDescription = "Repairs nearby damaged blocks in range at a decent rate. " + + "Uses power."; formalName = "heal turret II"; range = 44; reload = 20f; @@ -80,6 +92,8 @@ public class DefenseBlocks{ shieldgenerator = new ShieldBlock("shieldgenerator"){ { //TODO + fullDescription = "An advanced defensive block. Shields all the blocks in a radius from attack. Uses power at a slow rate when idle, " + + "but drains energy quickly on bullet contact."; formalName = "shield generator"; } }; diff --git a/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java index 306eabfc6b..59c3111e3b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/DistributionBlocks.java @@ -9,27 +9,36 @@ public class DistributionBlocks{ public static final Block conduit = new LiquidBlock("conduit"){{ + fullDescription = "Basic liquid transport block. Works like a conveyor, but with liquids. " + + "Best used with pumps or other conduits."; health = 45; }}, pulseconduit = new LiquidBlock("pulseconduit"){{ + fullDescription = "Advanced liquid transport block. Transports liquids faster and stores more than standard conduits."; liquidCapacity = 16f; flowfactor = 4.9f; health = 65; }}, liquidrouter = new LiquidRouter("liquidrouter"){{ + description = "Splits input liquid into 3 directions."; + fullDescription = "Works similarly to a router. Accepts liquid input from one side and outputs it to the other sides. " + + "Useful for splitting liquid from a single conduit into multiple other conduits."; formalName = "liquid router"; }}, conveyor = new Conveyor("conveyor"){{ - + description = "Moves items."; + fullDescription = "Basic item transport block. Moves items forward and automatically deposits them into turrets or crafters. " + + "Can be rotated."; }}, steelconveyor = new Conveyor("steelconveyor"){{ health = 55; speed = 0.04f; formalName = "steel conveyor"; + fullDescription = "Advanced item transport block. Moves items faster than standard conveyors."; }}, //TODO @@ -37,47 +46,56 @@ public class DistributionBlocks{ health = 90; speed = 0.09f; formalName = "pulse conveyor"; + fullDescription = "The ultimate item transport block. Moves items faster than steel conveyors."; }}, - router = new Router("router"){ - }, + router = new Router("router"){{ + description = "Split input materials into 3 directions."; + fullDescription = "Accepts items from one direction and outputs them to 3 other directions. Can also store a certain amount of items." + + "Useful for splitting the materials from one drill into multiple turrets."; + }}, - junction = new Junction("junction"){ + junction = new Junction("junction"){{ + description = "Serves as a conveyor junction."; + fullDescription = "Acts as a bridge for two crossing conveyor belts. Useful in situations with " + + "two different conveyors carrying different materials to different locations."; - }, - liquidjunction = new LiquidJunction("liquidjunction"){ - { - formalName = "liquid junction"; - } - }, - liquiditemjunction = new LiquidItemJunction("liquiditemjunction"){ - { - formalName = "liquid-item junction"; - } - }, - powerbooster = new PowerBooster("powerbooster"){ - { - formalName = "power booster"; - } - }, - powerlaser = new PowerLaser("powerlaser"){ - { - formalName = "power laser"; - } - }, - powerlaserrouter = new PowerLaserRouter("powerlaserrouter"){ - { - formalName = "laser router"; - } - }, - teleporter = new Teleporter("teleporter"){ - { - - } - }, - sorter = new Sorter("sorter"){ - { - - } - }; + }}, + liquidjunction = new LiquidJunction("liquidjunction"){{ + formalName = "liquid junction"; + description = "Serves as a liquid junction."; + fullDescription = "Acts as a bridge for two crossing conduits. Useful in situations with " + + "two different conduits carrying different liquids to different locations."; + }}, + liquiditemjunction = new LiquidItemJunction("liquiditemjunction"){{ + formalName = "liquid-item junction"; + description = "Serves as a junction for items and liquids."; + fullDescription = "Acts as a bridge for crossing conduits and conveyors."; + }}, + powerbooster = new PowerBooster("powerbooster"){{ + formalName = "power booster"; + powerRange = 4; + fullDescription = "Distributes power to all blocks within its radius. "; + }}, + powerlaser = new PowerLaser("powerlaser"){{ + formalName = "power laser"; + fullDescription = "Creates a laser that transmits power to the block in front of it. Does not generate any power itself. " + + "Best used with generators or other lasers."; + }}, + powerlaserrouter = new PowerLaserRouter("powerlaserrouter"){{ + formalName = "laser router"; + fullDescription = "Laser that distributes power to three directions at once. " + + "Useful in situations where it is required to power multiple blocks from one generator."; + }}, + teleporter = new Teleporter("teleporter"){{ + description = "[interact]Tap block to config[]\nTeleports items to others of the same color."; + fullDescription = "Advanced item transport block. Teleporters input items to other teleporters of the same color." + + " Does nothing if no teleporters of the same color exist. If multiple teleporters exist of the same color, a random one is selected." + + " Tap and click the arrows to change color."; + }}, + sorter = new Sorter("sorter"){{ + description = "[interact]Tap block to config[]\nSorts input items by type."; + fullDescription = "Sorts item by material type. Material to accept is indicated by the color in the block. " + + "All items that match the sort material are outputted forward, everything else is outputted to the left and right."; + }}; } diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index c288260fcc..4aed77f7d8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -39,11 +39,14 @@ public class ProductionBlocks{ }, pump = new Pump("pump"){{ - + description = "Pumps liquids into nearby conduits."; + fullDescription = "Pumps liquids from a source block- usually water, lava or oil. Outputs liquid into nearby conduits."; }}, fluxpump = new Pump("fluxpump"){{ pumpspeed = 3f; + description = "Pumps liquids into nearby conduits."; + fullDescription = "An advanced version of the pump. Stores more liquid and pumps liquid faster."; }}, smelter = new Crafter("smelter"){ @@ -51,11 +54,8 @@ public class ProductionBlocks{ health = 70; requirements = new Item[]{Item.coal, Item.iron}; result = Item.steel; - } - - @Override - public String description(){ - return "Converts coal + iron to steel."; + description = "Converts coal + iron to steel."; + fullDescription = "The essential crafting block. When inputted 1x iron and 1x iron, outputs one steel."; } }, @@ -64,11 +64,8 @@ public class ProductionBlocks{ health = 90; requirements = new Item[]{Item.titanium, Item.steel}; result = Item.dirium; - } - - @Override - public String description(){ - return "Converts steel + titanium to dirium."; + description = "Converts steel + titanium to dirium."; + fullDescription = "An advanced crafting block. When inputted 1x titanium and 1x steel, outputs one dirium."; } }, @@ -82,11 +79,8 @@ public class ProductionBlocks{ output = Item.coal; health = 50; purifyTime = 60; - } - - @Override - public String description(){ - return "Converts stone + water to coal."; + description = "Converts stone + water to coal."; + fullDescription = "A basic extractor block. Outputs coal when supplied with large amounts of water and stone."; } }, @@ -101,11 +95,8 @@ public class ProductionBlocks{ purifyTime = 80; output = Item.titanium; health = 70; - } - - @Override - public String description(){ - return "Converts iron + water to titanium."; + description = "Converts iron + water to titanium."; + fullDescription = "A standard extractor block. Outputs titanium when supplied with large amounts of water and iron."; } }, @@ -119,11 +110,8 @@ public class ProductionBlocks{ output = Item.coal; health = 80; craftEffect = Fx.purifyoil; - } - - @Override - public String description(){ - return "Converts oil to coal."; + description = "Converts oil to coal."; + fullDescription = "Refines large amounts of oil into coal items. Useful for fueling coal-based turrets when coal veins are scarce."; } }, @@ -139,11 +127,8 @@ public class ProductionBlocks{ output = Item.stone; health = 80; craftEffect = Fx.purifystone; - } - - @Override - public String description(){ - return "Converts lava to stone."; + description = "Converts lava to stone."; + fullDescription = "Soldifies liquid lava into stone. Useful for producing massive amounts of stone for coal purifiers."; } }, @@ -153,34 +138,12 @@ public class ProductionBlocks{ inputLiquid = Liquid.lava; liquidAmount = 40f; liquidCapacity = 41f; - purifyTime = 25; + purifyTime = 30; output = Item.stone; health = 80; craftEffect = Fx.purifystone; - } - - @Override - public String description(){ - return "Converts iron + lava to steel."; - } - }, - - //TODO - lavacompressor = new LiquidCrafter("lavacompressor"){ - { - formalName = "lava compressor"; - inputLiquid = Liquid.lava; - liquidAmount = 40f; - liquidCapacity = 41f; - purifyTime = 25; - output = Item.iron; - health = 80; - craftEffect = Fx.purifystone; - } - - @Override - public String description(){ - return "Converts stone + lava to iron."; + description = "Converts iron + lava to steel."; + fullDescription = "Uses lava to convert iron to steel. An alternative to smelteries. Useful in situations where coal is scarace."; } }, @@ -188,18 +151,24 @@ public class ProductionBlocks{ resource = Blocks.stone; result = Item.stone; formalName = "stone drill"; + description = "Mines 1 "+resource.name+" every "+time+" seconds."; + fullDescription = "The essential drill. When placed on stone tiles, outputs stone at a slow pace indefinitely."; }}, irondrill = new Drill("irondrill"){{ resource = Blocks.iron; result = Item.iron; formalName = "iron drill"; + description = "Mines 1 "+resource.name+" every "+time+" seconds."; + fullDescription = "A basic drill. When placed on iron ore tiles, outputs iron at a slow pace indefinitely."; }}, coaldrill = new Drill("coaldrill"){{ resource = Blocks.coal; result = Item.coal; formalName = "coal drill"; + description = "Mines 1 "+resource.name+" every "+time+" seconds."; + fullDescription = "A basic drill. When placed on coal ore tiles, outputs coal at a slow pace indefinitely."; }}, uraniumdrill = new Drill("uraniumdrill"){{ @@ -207,18 +176,24 @@ public class ProductionBlocks{ result = Item.uranium; formalName = "uranium drill"; time = 7; + description = "Mines 1 "+resource.name+" every "+time+" seconds."; + fullDescription = "An advanced drill. When placed on uranium ore tiles, outputs uranium at a slow pace indefinitely."; }}, titaniumdrill = new Drill("titaniumdrill"){{ resource = Blocks.titanium; result = Item.titanium; formalName = "titanium drill"; + description = "Mines 1 "+resource.name+" every "+time+" seconds."; + fullDescription = "An advanced drill. When placed on titanium ore tiles, outputs titanium at a slow pace indefinitely."; }}, omnidrill = new Drill("omnidrill"){ { time = 3; formalName = "omnidrill"; + description = "Mines 1 of any resource every "+time+" seconds."; + fullDescription = "The ultimate drill. Will mine any ore it is placed on at a rapid pace."; } @Override @@ -233,11 +208,6 @@ public class ProductionBlocks{ tryDump(tile); } } - - @Override - public String description(){ - return "Mines 1 of any resource every "+time+" seconds."; - } }, coalgenerator = new ItemPowerGenerator("coalgenerator"){ { @@ -246,11 +216,8 @@ public class ProductionBlocks{ generateItem = Item.coal; generateAmount = 4f; powerCapacity = 40f; - } - - @Override - public String description(){ - return "Generates power from coal."; + description = "Generates power from coal."; + fullDescription = "The essential generator. Generates power from coal. Outputs power as lasers to its 4 sides."; } }, thermalgenerator = new LiquidPowerGenerator("thermalgenerator"){ @@ -261,11 +228,8 @@ public class ProductionBlocks{ inputLiquid = 20f; generatePower = 1f; powerCapacity = 40f; - } - - @Override - public String description(){ - return "Generates power from lava."; + description = "Generates power from lava."; + fullDescription = "Generates power from lava. Outputs power as lasers to its 4 sides."; } }, combustiongenerator = new LiquidPowerGenerator("combustiongenerator"){ @@ -276,26 +240,20 @@ public class ProductionBlocks{ inputLiquid = 14f; generatePower = 1f; powerCapacity = 40f; - } - - @Override - public String description(){ - return "Generates power from oil."; + description = "Generates power from oil."; + fullDescription = "Generates power from oil. Outputs power as lasers to its 4 sides."; } }, rtgenerator = new ItemPowerGenerator("rtgenerator"){ { //TODO make this generate slowly - formalName = "radioisotope generator"; + formalName = "RTG generator"; generateItem = Item.uranium; generateAmount = 10f; powerCapacity = 40f; generateTime = 50f; - } - - @Override - public String description(){ - return "Generates small amounts of power from uranium."; + description = "Generates power from uranium."; + fullDescription = "Generates small amounts of power from the radioactive decay of uranium. Outputs power as lasers to its 4 sides."; } }, nuclearReactor = new LiquidItemPowerGenerator("nuclearreactor"){ @@ -312,11 +270,9 @@ public class ProductionBlocks{ health = 500; breaktime *= 2.2f; powerCapacity = 100f; - } - - @Override - public String description(){ - return "Generates power from uranium + water."; + description = "Generates power from uranium + water."; + fullDescription = "The ultimate power generator. Highly volatile. Generates power from uranium. Requires constant cooling in the form of water. " + + "Will explode violently if insufficient amounts of coolant are supplied. "; } }; } diff --git a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java index 174ea2b2d7..f11252cad4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java @@ -28,6 +28,7 @@ public class WeaponBlocks{ reload = 15f; bullet = BulletType.stone; ammo = Item.stone; + fullDescription = "A basic, cheap turret. Uses stone for ammo. Has slightly more range than the double-turret."; } }, @@ -39,6 +40,7 @@ public class WeaponBlocks{ bullet = BulletType.stone; ammo = Item.stone; health = 50; + fullDescription = "A slightly more powerful version of the turret. Uses stone for ammo. Does significantly more damage, but has a lower range. Shoots two bullets."; } @Override @@ -61,6 +63,7 @@ public class WeaponBlocks{ bullet = BulletType.iron; ammo = Item.iron; health = 65; + fullDescription = "A standard all-around turret. Uses iron for ammo. Has a fast fire rate with decent damage."; } }, @@ -72,6 +75,8 @@ public class WeaponBlocks{ bullet = BulletType.iron; ammo = Item.iron; health = 70; + fullDescription = "A standard turret. Uses iron for ammo. Shoots a spread of 7 bullets. " + + "Lower range, but higher damage output than the gattling turret."; } @Override @@ -94,6 +99,8 @@ public class WeaponBlocks{ bullet = BulletType.flame; ammo = Item.coal; health = 90; + fullDescription = "Advanced close-range turret. Uses coal for ammo. Has very low range, but very high damage and damage. " + + "Good for close quarters. Recommended to be used behind walls."; } }, @@ -105,6 +112,8 @@ public class WeaponBlocks{ bullet = BulletType.sniper; ammo = Item.steel; health = 70; + fullDescription = "Advanced long-range turret. Uses steel for ammo. Very high damage, but low fire rate. " + + "Expensive to use, but can be placed far away from enemy lines due to its range."; } }, @@ -118,6 +127,9 @@ public class WeaponBlocks{ ammo = Item.coal; ammoMultiplier = 5; health = 110; + fullDescription = "Advanced splash-damage turret. Uses coal for ammo. " + + "Very slow fire rate and bullets, but very high single-target and splash damage. " + + "Useful for large crowds of enemies."; } }, @@ -130,6 +142,8 @@ public class WeaponBlocks{ damage = 10; health = 110; powerUsed = 0.2f; + fullDescription = "Advanced single-target turret. Uses power. Good medium-range all-around turret. " + + "Single-target only. Never misses."; } }, @@ -141,6 +155,8 @@ public class WeaponBlocks{ bullet = BulletType.shell; ammo = Item.coal; health = 140; + fullDescription = "Advanced multi-target turret. Uses power. Medium range. Never misses." + + "Average to low damage, but can hit multiple enemies simultaneously with chain lighting."; } @Override @@ -163,6 +179,8 @@ public class WeaponBlocks{ ammo = Item.coal; health = 180; ammoMultiplier = 40; + fullDescription = "Highly advanced version of the flamer turret. Uses coal as ammo. " + + "Very high damage, low to medium range."; } }, @@ -177,6 +195,8 @@ public class WeaponBlocks{ health = 430; width = height = 2; shootCone = 9f; + fullDescription = "The ultimate rapid-fire turret. Uses uranium as ammo. Shoots large slugs at a high fire rate. " + + "Medium range. Spans multiple tiles. Extremely tough."; } //TODO specify turret shoot effect in turret instead of doing it manually @@ -211,6 +231,8 @@ public class WeaponBlocks{ width = height = 3; rotatespeed = 0.07f; shootCone = 9f; + fullDescription = "The ultimate long-range turret. Uses uranium as ammo. Shoots large splash-damage shells at a medium rate of fire. " + + "Long range. Spans multiple tiles. Extremely tough."; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java index 6c7ecee99c..3f6106dc16 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java @@ -17,15 +17,11 @@ public class LiquidBlock extends Block implements LiquidAcceptor{ public LiquidBlock(String name) { super(name); + description = "Transports liquids."; rotate = true; update = true; } - @Override - public String description(){ - return "Transports liquids."; - } - @Override public void draw(Tile tile){ LiquidEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java index 18f5585ce6..1b57b5f5e8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java @@ -25,8 +25,8 @@ public class LaserTurret extends PowerTurret{ } @Override - public String description(){ - return "[turretinfo]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + damage; + public void postInit(){ + description = "[turretinfo]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + damage; } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java index cd7bee286c..c28aa5cd8f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java @@ -17,6 +17,11 @@ public class RepairTurret extends Turret{ super(name); } + @Override + public void postInit(){ + description = "[turretinfo]Range: " + (int)range + "\n[description]Heals nearby tiles."; + } + @Override public void update(Tile tile){ TurretEntity entity = tile.entity(); @@ -71,9 +76,4 @@ public class RepairTurret extends Turret{ Draw.rect(name(), tile.worldx(), tile.worldy(), entity.rotation - 90); } - - @Override - public String description(){ - return "[turretinfo]Range: " + (int)range + "\n[description]Heals nearby tiles."; - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index c08732ddc7..aa4540ed8b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -44,6 +44,11 @@ public class Turret extends Block{ solid = true; } + @Override + public void postInit(){ + description = "[turretinfo]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + bullet.damage; + } + @Override public boolean canReplace(Block other){ return other instanceof Turret; @@ -100,11 +105,6 @@ public class Turret extends Block{ public boolean acceptItem(Item item, Tile dest, Tile source){ return item == ammo && dest.entity().ammo < maxammo; } - - @Override - public String description(){ - return "[turretinfo]Ammo: "+(ammo==null ? "N/A" : ammo.name())+"\nRange: " + (int)range + "\nDamage: " + bullet.damage; - } @Override public void update(Tile tile){ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java index 1a2625f7c0..f7f450e0b1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java @@ -115,11 +115,6 @@ public class Conveyor extends Block{ return ((direction == 0) && minitem > 0.05f) || ((direction %2 == 1) && minitem > 0.5f); } - - @Override - public String description(){ - return "Moves items."; - } @Override public void handleItem(Item item, Tile tile, Tile source){ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Junction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Junction.java index d41f91673b..88edb0f11e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Junction.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Junction.java @@ -37,9 +37,4 @@ public class Junction extends Block{ return to != null && to.block().acceptItem(item, to, dest); } - @Override - public String description(){ - return "Serves as a conveyor junction."; - } - } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java index 22314a1adb..76fb6ea299 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java @@ -61,9 +61,4 @@ public class LiquidItemJunction extends LiquidBlock{ Tile to = dest.getNearby()[dir]; return to != null && to.block().acceptItem(item, to, dest); } - - @Override - public String description(){ - return "Serves as a junction for items and liquids."; - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java index d0a2ff6a39..829d680be9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java @@ -37,9 +37,4 @@ public class LiquidJunction extends LiquidBlock{ return to != null && to.block() != this && to.block() instanceof LiquidBlock && ((LiquidBlock)to.block()).acceptLiquid(to, dest, liquid, amount); } - - @Override - public String description(){ - return "Serves as a liquid junction."; - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java index b3adcf6526..2e1037b034 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java @@ -17,11 +17,6 @@ public class LiquidRouter extends LiquidBlock{ solid = true; } - @Override - public String description(){ - return "Splits input liquid into 3 directions."; - } - @Override public void update(Tile tile){ LiquidEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java index e8b0306dcf..61988e1f8a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java @@ -54,10 +54,5 @@ public class Router extends Block{ Vars.renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 6, fract); } - - @Override - public String description(){ - return "Split input materials into 3 directions."; - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java index 2208be4cb3..4943edec27 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java @@ -36,11 +36,6 @@ public class Sorter extends Junction implements Configurable{ Draw.rect(Tmp.tr1, tile.worldx(), tile.worldy(), 4f, 4f); } - @Override - public String description(){ - return "[interact]Tap block to config[]\nSorts input items by type."; - } - @Override public boolean acceptItem(Item item, Tile dest, Tile source){ Tile to = getTileTarget(item, dest, source, false); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java index 56a04d3ba4..c98e682b9c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java @@ -40,11 +40,6 @@ public class Teleporter extends Block implements Configurable{ solid = true; } - @Override - public String description(){ - return "[interact]Tap block to config[]\nTeleports items to others of the same color."; - } - @Override public void draw(Tile tile){ TeleporterEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java index 6e16f4196b..9e51736c4e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java @@ -33,11 +33,6 @@ public class Drill extends Block{ tryDump(tile); } } - - @Override - public String description(){ - return "Mines 1 "+resource.name+" every "+time+" seconds."; - } @Override public void drawOver(Tile tile){ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java index 81660ec064..dc14abe77b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java @@ -16,11 +16,6 @@ public class Pump extends LiquidBlock{ solid = true; } - @Override - public String description(){ - return "Pumps liquids from blocks into conduits."; - } - @Override public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ return false;