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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 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()){