From 2e98ecf09ab66fbf862daa8aa751da2313ec8318 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 1 Jul 2022 10:58:17 -0400 Subject: [PATCH] Scathe turret homing --- .../turrets/bases/reinforced-block-5.png | Bin 0 -> 4493 bytes core/src/mindustry/content/Blocks.java | 50 +++++++++++++++++- .../world/blocks/defense/turrets/Turret.java | 5 ++ 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/turrets/bases/reinforced-block-5.png diff --git a/core/assets-raw/sprites/blocks/turrets/bases/reinforced-block-5.png b/core/assets-raw/sprites/blocks/turrets/bases/reinforced-block-5.png new file mode 100644 index 0000000000000000000000000000000000000000..39103b790ff630f761d27e593548daee2bbb4920 GIT binary patch literal 4493 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 Yi${NS*PWXHKeKG|boF()P72HZAG`kz)&Kwi literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 87214f07e3..8dd6cf323f 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -136,7 +136,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, lustre, scathe, + breach, diffuse, sublimate, titan, disperse, afflict, lustre, scathe, ravage, //units groundFactory, airFactory, navalFactory, @@ -4278,7 +4278,7 @@ public class Blocks{ engineLayer = Layer.effect; engineSize = 3.1f; engineOffset = 10f; - rotateSpeed = 0f; + rotateSpeed = 0.25f; trailLength = 18; missileAccelTime = 50f; lowAltitude = true; @@ -4409,6 +4409,52 @@ public class Blocks{ limitRange(); }}; + //TODO + if(false) + ravage = new ItemTurret("ravage"){{ + requirements(Category.turret, with(Items.beryllium, 150, Items.silicon, 150, Items.carbide, 250, Items.phaseFabric, 100)); + + ammo( + Items.beryllium, new BasicBulletType(7.5f, 85){{ + width = 12f; + hitSize = 7f; + height = 20f; + shootEffect = new MultiEffect(Fx.shootBigColor, Fx.colorSparkBig); + smokeEffect = Fx.shootBigSmoke; + ammoMultiplier = 1; + pierceCap = 2; + pierce = true; + pierceBuilding = true; + hitColor = backColor = trailColor = Pal.berylShot; + frontColor = Color.white; + trailWidth = 2.1f; + trailLength = 10; + hitEffect = despawnEffect = Fx.hitBulletColor; + buildingDamageMultiplier = 0.3f; + }} + ); + + coolantMultiplier = 6f; + + shake = 1f; + ammoPerShot = 2; + drawer = new DrawTurret("reinforced-"); + shootY = -2; + outlineColor = Pal.darkOutline; + size = 5; + envEnabled |= Env.space; + reload = 40f; + recoil = 2f; + range = 190; + shootCone = 3f; + scaledHealth = 250; + rotateSpeed = 1.5f; + researchCostMultiplier = 0.05f; + + coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f)); + limitRange(); + }}; + //TODO 2 more turrets. //endregion diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 0d16454700..2342efbb8a 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -393,6 +393,11 @@ public class Turret extends ReloadTurret{ if(Float.isNaN(rotation)) rotation = 0; } + if(!isControlled()){ + unit.aimX(targetPos.x); + unit.aimY(targetPos.y); + } + float targetRot = angleTo(targetPos); if(shouldTurn()){