diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png new file mode 100644 index 0000000000..d0a09b148d Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png new file mode 100644 index 0000000000..df9abb659d Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png new file mode 100644 index 0000000000..c6ed1cb0d3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-preview.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/cyclone.png rename to core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-preview.png diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png new file mode 100644 index 0000000000..ef96418107 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/salvo-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo-heat.png deleted file mode 100644 index 75573a5f93..0000000000 Binary files a/core/assets-raw/sprites/blocks/turrets/salvo-heat.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png new file mode 100644 index 0000000000..3da2059037 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel.png new file mode 100644 index 0000000000..b21c193a11 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png new file mode 100644 index 0000000000..48482e2697 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/salvo.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-preview.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/salvo.png rename to core/assets-raw/sprites/blocks/turrets/salvo/salvo-preview.png diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo.png new file mode 100644 index 0000000000..7fb14de983 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/salvo/salvo.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/scatter.png b/core/assets-raw/sprites/blocks/turrets/scatter.png deleted file mode 100644 index f4f0d73954..0000000000 Binary files a/core/assets-raw/sprites/blocks/turrets/scatter.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png b/core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png new file mode 100644 index 0000000000..b33adc2c17 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/scatter/scatter-preview.png b/core/assets-raw/sprites/blocks/turrets/scatter/scatter-preview.png new file mode 100644 index 0000000000..5cde2b862b Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/scatter/scatter-preview.png differ diff --git a/core/assets-raw/sprites/blocks/turrets/scatter/scatter.png b/core/assets-raw/sprites/blocks/turrets/scatter/scatter.png new file mode 100644 index 0000000000..b37f3f7c53 Binary files /dev/null and b/core/assets-raw/sprites/blocks/turrets/scatter/scatter.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 6a7cebb2ef..b329d38edd 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3055,7 +3055,7 @@ public class Blocks{ progress = PartProgress.recoil; recoilIndex = f; under = true; - moves.add(new PartMove(PartProgress.recoil, 0f, -1.5f, 0f)); + moveY = -1.5f; }}); } }}; @@ -3122,6 +3122,15 @@ public class Blocks{ }}; }} ); + + drawer = new DrawTurret(){{ + parts.add(new RegionPart("-mid"){{ + progress = PartProgress.recoil; + under = true; + moveY = -1f; + }}); + }}; + reload = 18f; range = 220f; size = 2; @@ -3130,7 +3139,7 @@ public class Blocks{ shoot.shotDelay = 5f; shoot.shots = 2; - recoil = 2f; + recoil = 1f; rotateSpeed = 15f; inaccuracy = 17f; shootCone = 35f; @@ -3479,12 +3488,21 @@ public class Blocks{ }} ); + drawer = new DrawTurret(){{ + parts.add(new RegionPart("-barrel"){{ + progress = PartProgress.recoil.delay(0.5f); //Since recoil is 1-0, cut from the start instead of the end. + under = true; + turretHeatLayer = Layer.turret - 0.0001f; + moveY = -1.5f; + }}); + }}; + size = 2; range = 190f; reload = 31f; consumeAmmoOnce = false; ammoEjectBack = 3f; - recoil = 3f; + recoil = 2f; shake = 1f; shoot.shots = 4; shoot.shotDelay = 3f; @@ -3776,7 +3794,8 @@ public class Blocks{ explodeRange = 20f; }} ); - shootY = 8.75f; + shootY = 10f; + shoot = new ShootBarrel(){{ barrels = new float[]{ 0f, 1f, 0f, @@ -3784,10 +3803,25 @@ public class Blocks{ -3f, 0f, 0f, }; }}; + + recoils = 3; + drawer = new DrawTurret(){{ + for(int i = 3; i > 0; i--){ + int f = i; + parts.add(new RegionPart("-barrel-" + i){{ + progress = PartProgress.recoil; + recoilIndex = f - 1; + under = true; + moveY = -2f; + }}); + } + }}; + reload = 8f; range = 200f; size = 3; - recoil = 3f; + recoil = 1.5f; + recoilTime = 10; rotateSpeed = 10f; inaccuracy = 10f; shootCone = 30f;