diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index a297571182..a938f8b19a 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -2090,6 +2090,21 @@ public class Fx{ }); }), + artilleryTrailSmoke = new Effect(50, e -> { + color(e.color); + rand.setSeed(e.id); + for(int i = 0; i < 13; i++){ + float fin = e.fin() / rand.random(0.5f, 1f), fout = 1f - fin, angle = rand.random(360f), len = rand.random(0.5f, 1f); + + if(fin <= 1f){ + Tmp.v1.trns(angle, fin * 24f * len); + + alpha((0.5f - Math.abs(fin - 0.5f)) * 2f); + Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 0.5f + fout * 4f); + } + } + }), + smokeCloud = new Effect(70, e -> { randLenVectors(e.id, e.fin(), 30, 30f, (x, y, fin, fout) -> { color(Color.gray); diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 2871b1a0fe..0fa43990fe 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -3377,6 +3377,8 @@ public class UnitTypes{ shadowElevation = 0.4f; groundLayer = Layer.legUnit; + targetAir = false; + weapons.add(new Weapon("collaris-weapon"){{ mirror = true; rotationLimit = 30f; @@ -3386,12 +3388,16 @@ public class UnitTypes{ x = 48 / 4f; y = -28f / 4f; shootY = 64f / 4f; - recoil = 3f; - reload = 90f; - shake = 5f; + recoil = 4f; + reload = 130f; + cooldownTime = reload * 1.2f; + shake = 7f; layerOffset = 0.02f; shadow = 10f; + shootStatus = StatusEffects.slow; + shootStatusDuration = reload + 1f; + shoot.shots = 1; heatColor = Color.red; @@ -3413,14 +3419,13 @@ public class UnitTypes{ }}); } - bullet = new ArtilleryBulletType(5.5f, 290){{ - pierceCap = 2; - pierceBuilding = true; - + bullet = new ArtilleryBulletType(5.5f, 300){{ + collidesTiles = collides = true; lifetime = 75f; shootEffect = Fx.shootBigColor; smokeEffect = Fx.shootSmokeSquareBig; frontColor = Color.white; + trailEffect = new MultiEffect(Fx.artilleryTrail, Fx.artilleryTrailSmoke); hitSound = Sounds.none; width = 18f; height = 24f; @@ -3436,25 +3441,28 @@ public class UnitTypes{ despawnEffect = Fx.none; hitEffect = despawnEffect = new ExplosionEffect(){{ - lifetime = 30f; - waveStroke = 2f; + lifetime = 34f; + waveStroke = 4f; waveColor = sparkColor = trailColor; - waveRad = 5f; + waveRad = 25f; smokeSize = 0f; smokeSizeBase = 0f; - sparks = 5; - sparkRad = 20f; - sparkLen = 6f; - sparkStroke = 2f; + sparks = 10; + sparkRad = 25f; + sparkLen = 8f; + sparkStroke = 3f; }}; + splashDamage = 90f; + splashDamageRadius = 20f; + fragBullets = 15; fragVelocityMin = 0.5f; fragRandomSpread = 130f; fragLifeMin = 0.3f; despawnShake = 5f; - fragBullet = new BasicBulletType(5.5f, 85){{ + fragBullet = new BasicBulletType(5.5f, 60){{ pierceCap = 2; pierceBuilding = true; @@ -3474,7 +3482,7 @@ public class UnitTypes{ lightOpacity = 0.7f; trailWidth = 2.2f; - trailLength = 8; + trailLength = 7; trailChance = -1f; despawnEffect = Fx.none;