diff --git a/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png b/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png new file mode 100644 index 0000000000..69f2a1b065 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/afflict/afflict.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index c56e21c7cc..376e8b9794 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -490,7 +490,7 @@ public class Blocks{ }}; stoneWall = new StaticWall("stone-wall"){{ - attributes.set(Attribute.silicate, 1f); + attributes.set(Attribute.sand, 1f); }}; sporeWall = new StaticWall("spore-wall"){{ @@ -510,37 +510,37 @@ public class Blocks{ duneWall = new StaticWall("dune-wall"){{ basalt.asFloor().wall = darksandWater.asFloor().wall = darksandTaintedWater.asFloor().wall = this; - attributes.set(Attribute.silicate, 2f); + attributes.set(Attribute.sand, 2f); }}; regolithWall = new StaticWall("regolith-wall"){{ regolith.asFloor().wall = this; - attributes.set(Attribute.silicate, 1f); + attributes.set(Attribute.sand, 1f); }}; yellowStoneWall = new StaticWall("yellow-stone-wall"){{ yellowStone.asFloor().wall = slag.asFloor().wall = yellowStonePlates.asFloor().wall = this; - attributes.set(Attribute.silicate, 1.5f); + attributes.set(Attribute.sand, 1.5f); }}; rhyoliteWall = new StaticWall("rhyolite-wall"){{ rhyolite.asFloor().wall = rhyoliteCrater.asFloor().wall = roughRhyolite.asFloor().wall = this; - attributes.set(Attribute.silicate, 1f); + attributes.set(Attribute.sand, 1f); }}; carbonWall = new StaticWall("carbon-wall"){{ carbonStone.asFloor().wall = this; - attributes.set(Attribute.silicate, 0.7f); + attributes.set(Attribute.sand, 0.7f); }}; ferricStoneWall = new StaticWall("ferric-stone-wall"){{ ferricStone.asFloor().wall = this; - attributes.set(Attribute.silicate, 0.5f); + attributes.set(Attribute.sand, 0.5f); }}; beryllicStoneWall = new StaticWall("beryllic-stone-wall"){{ beryllicStone.asFloor().wall = this; - attributes.set(Attribute.silicate, 1.2f); + attributes.set(Attribute.sand, 1.2f); }}; arkyicWall = new StaticWall("arkyic-wall"){{ @@ -559,7 +559,7 @@ public class Blocks{ sandWall = new StaticWall("sand-wall"){{ sandWater.asFloor().wall = water.asFloor().wall = deepwater.asFloor().wall = this; - attributes.set(Attribute.silicate, 2f); + attributes.set(Attribute.sand, 2f); }}; saltWall = new StaticWall("salt-wall"); @@ -2345,7 +2345,7 @@ public class Blocks{ drillTime = 110f; size = 2; - attribute = Attribute.silicate; + attribute = Attribute.sand; output = Items.sand; }}; @@ -2469,7 +2469,7 @@ public class Blocks{ size = 4; thrusterLength = 34/4f; - unitCapModifier = 16; + unitCapModifier = 8; researchCostMultiplier = 0.07f; }}; @@ -2483,7 +2483,7 @@ public class Blocks{ size = 5; thrusterLength = 40/4f; - unitCapModifier = 24; + unitCapModifier = 16; researchCostMultiplier = 0.11f; }}; @@ -2497,7 +2497,7 @@ public class Blocks{ size = 6; thrusterLength = 48/4f; - unitCapModifier = 32; + unitCapModifier = 24; researchCostMultiplier = 0.11f; }}; @@ -3206,6 +3206,34 @@ public class Blocks{ size = 4; }}; + /* + afflict = new ContinuousTurret("afflict"){{ + requirements(Category.turret, with(Items.carbide, 250, Items.surgeAlloy, 160, Items.silicon, 300, Items.beryllium, 400)); + + //TODO bullet. + + shootShake = 4f; + recoilAmount = 1f; + reloadTime = 60f * 3f; + shootLength = 7f; + rotateSpeed = 2.5f; + + coolantUsage = 30f / 60f; + coolantOverride = Liquids.water; + + draw = new DrawTurret("reinforced-"); + + restitution = 0.02f; + shootWarmupSpeed = 0.08f; + + outlineColor = Pal.darkOutline; + acceptCoolant = false; + + scaledHealth = 300; + range = 390f; + size = 4; + }};*/ + //endregion //region units diff --git a/core/src/mindustry/content/ErekirTechTree.java b/core/src/mindustry/content/ErekirTechTree.java index 0e1b739507..329ab7e11d 100644 --- a/core/src/mindustry/content/ErekirTechTree.java +++ b/core/src/mindustry/content/ErekirTechTree.java @@ -13,9 +13,9 @@ public class ErekirTechTree{ Seq erekirSector = Seq.with(new OnPlanet(Planets.erekir)); var costMultipliers = new ObjectFloatMap(); - costMultipliers.put(Items.silicon, 6); + costMultipliers.put(Items.silicon, 7); costMultipliers.put(Items.surgeAlloy, 4); - costMultipliers.put(Items.thorium, 7); + costMultipliers.put(Items.thorium, 8); costMultipliers.put(Items.graphite, 6); Planets.erekir.techTree = nodeRoot("erekir", coreBastion, true, () -> { diff --git a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java index 6157f87579..0b0c437c71 100644 --- a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java @@ -141,6 +141,9 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ //arkycite //TODO arkycite biome //TODO ice biome + + //TODO arkycite is too disruptive to terrain, needs certain conditions and sub-biomes. + if(false) pass((x, y) -> { if(nearWall(x, y)) return; @@ -187,7 +190,7 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ if(block == Blocks.air) block = Blocks.yellowStoneWall; } - if(floor == Blocks.yellowStonePlates && noise(x + 78 + y, y, 3, 0.8f, 8f, 1f) > 0.38f){ + if(floor == Blocks.yellowStonePlates && noise(x + 78 + y, y, 3, 0.8f, 7f, 1f) > 0.41f){ floor = Blocks.yellowStone; } }); @@ -249,7 +252,7 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ //vents outer: for(Tile tile : tiles){ - if(floor == Blocks.rhyolite && rand.chance(0.0015)){ + if(floor == Blocks.rhyolite && rand.chance(0.0016)){ int radius = 2; for(int x = -radius; x <= radius; x++){ for(int y = -radius; y <= radius; y++){ diff --git a/core/src/mindustry/world/blocks/production/WallCrafter.java b/core/src/mindustry/world/blocks/production/WallCrafter.java index da13ed5419..352583c86b 100644 --- a/core/src/mindustry/world/blocks/production/WallCrafter.java +++ b/core/src/mindustry/world/blocks/production/WallCrafter.java @@ -34,7 +34,7 @@ public class WallCrafter extends Block{ public float updateEffectChance = 0.02f; public float rotateSpeed = 2f; /** Attribute to check for wall output. */ - public Attribute attribute = Attribute.silicate; + public Attribute attribute = Attribute.sand; public Item output = Items.sand; diff --git a/core/src/mindustry/world/meta/Attribute.java b/core/src/mindustry/world/meta/Attribute.java index 3b8554fd8e..5d573ed2e7 100644 --- a/core/src/mindustry/world/meta/Attribute.java +++ b/core/src/mindustry/world/meta/Attribute.java @@ -7,8 +7,8 @@ public class Attribute{ public static Attribute[] all = {}; public static ObjectMap map = new ObjectMap<>(); - public static final Attribute /** Heat content. Used for thermal generator yield. */ + public static final Attribute heat = add("heat"), /** Spore content. Used for cultivator yield. */ spores = add("spores"), @@ -18,8 +18,8 @@ public class Attribute{ oil = add("oil"), /** Light coverage. Negative values decrease solar panel efficiency. */ light = add("light"), - /** Silicate content. Used for sand extraction. */ - silicate = add("silicate"), + /** Used for sand extraction. */ + sand = add("sand"), /** Used for erekir vents only. */ vent = add("vent");