diff --git a/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-l.png b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-l.png new file mode 100644 index 0000000000..216d93f107 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-l.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-r.png b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-r.png new file mode 100644 index 0000000000..2714d0f4c2 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-blade-r.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-l.png b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-l.png new file mode 100644 index 0000000000..6054d7c393 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-l.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-r.png b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-r.png new file mode 100644 index 0000000000..30d9fd1c86 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-inner-r.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/fracture/fracture-preview.png b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-preview.png new file mode 100644 index 0000000000..4ac64cc157 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/fracture/fracture-preview.png differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 2bc10271e3..cccf27c0d5 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -566,3 +566,4 @@ 63118=slag-heater|block-slag-heater-ui 63117=afflict|block-afflict-ui 63116=shielded-wall|block-shielded-wall-ui +63115=fracture|block-fracture-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 85047dce5b..dd6916cabb 100644 Binary files a/core/assets/logicids.dat and b/core/assets/logicids.dat differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index df22863d05..cd9c8a97cd 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -135,7 +135,7 @@ public class Blocks{ duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, foreshadow, spectre, meltdown, segment, parallax, tsunami, //turrets - erekir - breach, diffuse, sublimate, titan, disperse, afflict, + breach, diffuse, sublimate, titan, disperse, afflict, fracture, //units groundFactory, airFactory, navalFactory, @@ -1277,7 +1277,7 @@ public class Blocks{ drawer = new DrawMulti(new DrawDefault(), new DrawHeatOutput()); size = 2; heatOutput = 15f; - craftTime = 60f * 12f; + craftTime = 60f * 10f; consumeItem(Items.phaseFabric); }}; @@ -3842,9 +3842,7 @@ public class Blocks{ limitRange(); }}; - //TODO bad name sublimate = new ContinuousLiquidTurret("sublimate"){{ - //TODO requirements requirements(Category.turret, with(Items.tungsten, 150, Items.silicon, 200, Items.oxide, 40, Items.beryllium, 400)); drawer = new DrawTurret("reinforced-"){{ @@ -4083,7 +4081,7 @@ public class Blocks{ limitRange(-5f); }}; - //TODO very WIP + //TODO WIP afflict = new PowerTurret("afflict"){{ requirements(Category.turret, with(Items.surgeAlloy, 100, Items.silicon, 200, Items.graphite, 250, Items.oxide, 40)); @@ -4199,7 +4197,85 @@ public class Blocks{ limitRange(9f); }}; - //TODO 5 more turrets. + fracture = new ItemTurret("fracture"){{ + //requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 200, Items.graphite, 200, Items.carbide, 50)); + + ammo( + Items.tungsten, new BasicBulletType(8f, 41){{ + knockback = 4f; + width = 25f; + hitSize = 7f; + height = 20f; + shootEffect = Fx.shootBigColor; + smokeEffect = Fx.shootSmokeSquareSparse; + ammoMultiplier = 1; + hitColor = backColor = trailColor = Color.valueOf("ea8878"); + frontColor = Color.valueOf("feb380"); + trailWidth = 6f; + trailLength = 3; + hitEffect = despawnEffect = Fx.hitSquaresColor; + buildingDamageMultiplier = 0.2f; + }} + ); + + shoot = new ShootSpread(15, 2f); + + coolantMultiplier = 6f; + + inaccuracy = 0.2f; + velocityRnd = 0.17f; + shake = 1f; + ammoPerShot = 3; + maxAmmo = 30; + consumeAmmoOnce = true; + + drawer = new DrawTurret("reinforced-"){{ + parts.add(new RegionPart("-blade"){{ + progress = PartProgress.warmup; + heatProgress = PartProgress.warmup.blend(PartProgress.recoil, 0.2f); + heatColor = Color.valueOf("ff6214"); + mirror = true; + under = true; + moveX = 2f; + //moveY = -1f; + moveRot = -7f; + moves.add(new PartMove(PartProgress.recoil, 0f, -2f, 3f)); + }}, + new RegionPart("-inner"){{ + progress = PartProgress.recoil; + heatColor = Color.valueOf("ff6214"); + mirror = true; + under = false; + moveX = 2f; + moveY = -8f; + }}, + new RegionPart("-mid"){{ + heatProgress = PartProgress.warmup.blend(PartProgress.recoil, 0.2f); + heatColor = Color.valueOf("ff6214"); + moveY = -8f; + progress = PartProgress.recoil; + //drawRegion = false; + mirror = false; + under = true; + }}); + }}; + + shootY = 5f; + outlineColor = Pal.darkOutline; + size = 4; + envEnabled |= Env.space; + reload = 30f; + recoil = 2f; + range = 125; + shootCone = 40f; + scaledHealth = 210; + rotateSpeed = 3f; + + coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f)); + limitRange(); + }}; + + //TODO 3 more turrets. //endregion //region units