diff --git a/core/assets-raw/sprites/units/crawler-base.png b/core/assets-raw/sprites/units/crawler-base.png new file mode 100644 index 0000000000..dd62bbf01e Binary files /dev/null and b/core/assets-raw/sprites/units/crawler-base.png differ diff --git a/core/assets-raw/sprites/units/crawler-leg.png b/core/assets-raw/sprites/units/crawler-leg.png new file mode 100644 index 0000000000..40d363b816 Binary files /dev/null and b/core/assets-raw/sprites/units/crawler-leg.png differ diff --git a/core/assets-raw/sprites/units/crawler.png b/core/assets-raw/sprites/units/crawler.png new file mode 100644 index 0000000000..42456d8681 Binary files /dev/null and b/core/assets-raw/sprites/units/crawler.png differ diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 961f11127e..4a2ea6e6aa 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -36,7 +36,7 @@ public class Blocks implements ContentList{ grass, shrub, rock, icerock, blackrock, rocks, pine, //crafting - siliconSmelter, plastaniumCompressor, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, + siliconSmelter, graphitePress, plastaniumCompressor, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, incinerator, //sandbox @@ -234,6 +234,21 @@ public class Blocks implements ContentList{ consumes.power(0.05f); }}; + graphitePress = new PowerSmelter("graphite-press"){{ + requirements(Category.crafting, ItemStack.with(Items.copper, 200, Items.lead, 50)); + + health = 90; + craftEffect = Fx.smeltsmoke; + result = Items.graphite; + craftTime = 50f; + size = 2; + hasLiquids = false; + flameColor = Color.valueOf("ffef99"); + + consumes.items(new ItemStack(Items.coal, 1), new ItemStack(Items.sand, 2)); + consumes.power(0.05f); + }}; + plastaniumCompressor = new PlastaniumCompressor("plastanium-compressor"){{ requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160)); hasItems = true; diff --git a/core/src/io/anuke/mindustry/content/Bullets.java b/core/src/io/anuke/mindustry/content/Bullets.java index a63a9aec74..439387c198 100644 --- a/core/src/io/anuke/mindustry/content/Bullets.java +++ b/core/src/io/anuke/mindustry/content/Bullets.java @@ -645,7 +645,7 @@ public class Bullets implements ContentList{ explode = new BombBulletType(2f, 3f, "clear"){{ hitEffect = Fx.pulverize; - lifetime = 20f; + lifetime = 23f; speed = 1f; splashDamageRadius = 60f; splashDamage = 30f; diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index 37a83685a5..e301e404f9 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -58,7 +58,7 @@ public class Zones implements ContentList{ }}; }}; - craters = new Zone("craters", new MapGenerator("craters", 1){{ distortion = 1.44f; }}){{ //TODO implement + craters = new Zone("craters", new MapGenerator("craters", 1){{ distortion = 1.44f; }}){{ alwaysUnlocked = true; deployCost = ItemStack.with(Items.copper, 300); diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index e1db7dcfd8..881ea4b0a1 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -238,7 +238,7 @@ public class UI implements ApplicationListener{ Table table = new Table(); table.setFillParent(true); table.actions(Actions.fadeOut(7f, Interpolation.fade), Actions.removeActor()); - table.top().add(info).padTop(40); + table.top().add(info).padTop(10); Core.scene.add(table); } diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index b3436c8d51..1be624f8c6 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -237,6 +237,7 @@ public class World implements ApplicationListener{ } } state.rules.zone = zone.id; + state.set(State.playing); control.saves.zoneSave(); logic.play(); }); diff --git a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java index 4b78e02bd0..fba9d0b628 100644 --- a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java +++ b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java @@ -95,8 +95,8 @@ public class MapGenerator extends Generator{ int rad = 10, frad = 12; - for(int x = rad; x <= rad; x++){ - for(int y = rad; y <= rad; y++){ + for(int x = -rad; x <= rad; x++){ + for(int y = -rad; y <= rad; y++){ int wx = x + point.x, wy = y + point.y; double dst = Mathf.dst(x, y); if(dst < frad && Structs.inBounds(wx, wy, tiles) && (dst <= rad || Mathf.chance(0.5))){