diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index c60138e122..41ce91e70b 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -4091,6 +4091,37 @@ public class Blocks{ trailLength = 3; hitEffect = despawnEffect = Fx.hitSquaresColor; buildingDamageMultiplier = 0.2f; + }}, + Items.oxide, new BasicBulletType(8f, 90){{ + knockback = 3f; + width = 25f; + hitSize = 7f; + height = 20f; + shootEffect = Fx.shootBigColor; + smokeEffect = Fx.shootSmokeSquareSparse; + ammoMultiplier = 2; + hitColor = backColor = trailColor = Color.valueOf("a0b380"); + frontColor = Color.valueOf("e4ffd6"); + trailWidth = 6f; + trailLength = 3; + hitEffect = despawnEffect = Fx.hitSquaresColor; + buildingDamageMultiplier = 0.2f; + }}, + Items.silicon, new BasicBulletType(8f, 33){{ + knockback = 2f; + width = 25f; + hitSize = 7f; + height = 20f; + homingPower = 0.045f; + shootEffect = Fx.shootBigColor; + smokeEffect = Fx.shootSmokeSquareSparse; + ammoMultiplier = 1; + hitColor = backColor = trailColor = Color.valueOf("858a9b"); + frontColor = Color.valueOf("dae1ee"); + trailWidth = 6f; + trailLength = 6; + hitEffect = despawnEffect = Fx.hitSquaresColor; + buildingDamageMultiplier = 0.2f; }} ); @@ -4219,7 +4250,7 @@ public class Blocks{ requirements(Category.turret, with(Items.tungsten, 250, Items.silicon, 300, Items.thorium, 400)); ammo( - //TODO 1 more ammo type, decide on base type + //TODO another ammo type Items.thorium, new ArtilleryBulletType(2.5f, 350, "shell"){{ hitEffect = new MultiEffect(Fx.titanExplosion, Fx.titanSmoke); despawnEffect = Fx.none; @@ -4247,6 +4278,41 @@ public class Blocks{ shootEffect = Fx.shootTitan; smokeEffect = Fx.shootSmokeTitan; + trailInterp = v -> Math.max(Mathf.slope(v), 0.8f); + shrinkX = 0.2f; + shrinkY = 0.1f; + buildingDamageMultiplier = 0.3f; + }}, + Items.carbide, new ArtilleryBulletType(2.5f, 500, "shell"){{ + hitEffect = new MultiEffect(Fx.titanExplosion, Fx.titanSmoke); + despawnEffect = Fx.none; + knockback = 3f; + lifetime = 140f; + height = 19f; + width = 17f; + splashDamageRadius = 55f; + splashDamage = 600f; + rangeChange = 8f*8f; + scaledSplashDamage = true; + backColor = hitColor = trailColor = Color.valueOf("ab8ec5"); + frontColor = Color.white; + ammoMultiplier = 1f; + hitSound = Sounds.titanExplosion; + + status = StatusEffects.blasted; + + trailLength = 32; + trailWidth = 3.35f; + trailSinScl = 2.5f; + trailSinMag = 0.5f; + trailEffect = Fx.disperseTrail; + trailInterval = 2f; + despawnShake = 7f; + + shootEffect = Fx.shootTitan; + smokeEffect = Fx.shootSmokeTitan; + trailRotation = true; + trailInterp = v -> Math.max(Mathf.slope(v), 0.8f); shrinkX = 0.2f; shrinkY = 0.1f; diff --git a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java index 43a1b49466..d232d016c3 100644 --- a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java +++ b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java @@ -13,6 +13,7 @@ public class ArtilleryBulletType extends BasicBulletType{ collides = false; collidesAir = false; scaleLife = true; + trailRotation = false; hitShake = 1f; hitSound = Sounds.explosion; hitEffect = Fx.flakExplosion; @@ -52,7 +53,7 @@ public class ArtilleryBulletType extends BasicBulletType{ super.update(b); if(b.timer(0, (3 + b.fslope() * 2f) * trailMult)){ - trailEffect.at(b.x, b.y, b.fslope() * trailSize, backColor); + trailEffect.at(b.x, b.y, trailRotation ? b.rotation() : b.fslope() * trailSize, backColor); } } }