diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png b/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png index 7854083dfd..7f4d7e4c93 100644 Binary files a/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png and b/core/assets-raw/sprites/units/weapons/scathe-missile-phase-cell.png differ diff --git a/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png b/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png index fb807978c3..0065be21ab 100644 Binary files a/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png and b/core/assets-raw/sprites/units/weapons/scathe-missile-phase.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index bd8832c3e3..e771db3bf0 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -751,7 +751,7 @@ error.mapnotfound = Map file not found! error.io = Network I/O error. error.any = Unknown network error. error.bloom = Failed to initialize bloom.\nYour device may not support it. -error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThere is no known workaround for this issue. +error.moddex = Mindustry is unable to load this mod.\nYour device is blocking import of Java mods due to recent changes in Android.\nThis will not be fixed. There is no known workaround for this issue. weather.rain.name = Rain weather.snowing.name = Snow diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index a117fecdca..8dffc5be6e 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -4927,18 +4927,17 @@ public class Blocks{ }}; }}, - //TODO - needs balancing Items.phaseFabric, new BulletType(0f, 0f){{ shootEffect = Fx.shootBig; smokeEffect = Fx.shootSmokeMissileColor; hitColor = Color.valueOf("ffd37f"); - ammoMultiplier = 1f; + ammoMultiplier = 5f; reloadMultiplier = 0.8f; spawnUnit = new MissileUnitType("scathe-missile-phase"){{ - speed = 4.4f; + speed = 4f; maxRange = 6f; - lifetime = 60f * 5.7f; + lifetime = 60f * 6.1f; outlineColor = Pal.darkOutline; engineColor = trailColor = Color.valueOf("ffd37f"); engineLayer = Layer.effect; @@ -4954,9 +4953,20 @@ public class Blocks{ targetAir = false; targetUnderBlocks = false; + parts.add(new ShapePart(){{ + progress = PartProgress.constant(1f); + color = Pal.accent; + sides = 6; + radius = 3f; + rotateSpeed = 3f; + hollow = true; + layer = Layer.effect; + y = 1.8f; + }}); + fogRadius = 6f; - health = 250; + health = 500; weapons.add(new Weapon(){{ shootCone = 360f; @@ -4965,7 +4975,7 @@ public class Blocks{ deathExplosionEffect = Fx.massiveExplosion; shootOnDeath = true; shake = 10f; - bullet = new ExplosionBulletType(1500f, 50f){{ + bullet = new ExplosionBulletType(400f, 120f){{ hitColor = engineColor; shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosion, Fx.scatheLight, new WaveEffect(){{ lifetime = 10f; @@ -4974,7 +4984,7 @@ public class Blocks{ }}); collidesAir = false; - buildingDamageMultiplier = 0.2f; + buildingDamageMultiplier = 0.1f; ammoMultiplier = 1f; fragLifeMin = 0.1f; @@ -4988,8 +4998,8 @@ public class Blocks{ lifetime = 23f; width = height = 18f; collidesTiles = false; - splashDamageRadius = 40f; - splashDamage = 160f; + splashDamageRadius = 56f; + splashDamage = 164f; backColor = trailColor = hitColor = engineColor; frontColor = Color.white; smokeEffect = Fx.shootBigSmoke2; @@ -5013,7 +5023,7 @@ public class Blocks{ interval = 7f; }}); - abilities.add(new ForceFieldAbility(30f, 0f, 160f, 999999999f)); + abilities.add(new ForceFieldAbility(90f, 0f, 2000f, 999999999f)); }}; }}, @@ -5058,12 +5068,12 @@ public class Blocks{ deathExplosionEffect = Fx.massiveExplosion; shootOnDeath = true; shake = 10f; - bullet = new ExplosionBulletType(400f, 40f){{ + bullet = new ExplosionBulletType(300f, 40f){{ hitColor = engineColor; shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosionSmall); collidesAir = false; - buildingDamageMultiplier = 0.25f; + buildingDamageMultiplier = 0.1f; ammoMultiplier = 1f; fragLifeMin = 0.1f; @@ -5105,7 +5115,7 @@ public class Blocks{ deathExplosionEffect = Fx.massiveExplosion; shootOnDeath = true; shake = 10f; - bullet = new ExplosionBulletType(340f, 35f){{ + bullet = new ExplosionBulletType(360f, 35f){{ lightning = 6; lightningDamage = 35f; lightningLength = 8; @@ -5118,7 +5128,7 @@ public class Blocks{ }}); collidesAir = false; - buildingDamageMultiplier = 0.2f; + buildingDamageMultiplier = 0.1f; }}; }}); diff --git a/core/src/mindustry/entities/abilities/ForceFieldAbility.java b/core/src/mindustry/entities/abilities/ForceFieldAbility.java index 82b5297d88..d4cdac20d4 100644 --- a/core/src/mindustry/entities/abilities/ForceFieldAbility.java +++ b/core/src/mindustry/entities/abilities/ForceFieldAbility.java @@ -105,6 +105,15 @@ public class ForceFieldAbility extends Ability{ } } + @Override + public void death(Unit unit){ + + //self-destructing units can have a shield on death + if(unit.shield > 0f && !wasBroken){ + Fx.shieldBreak.at(unit.x, unit.y, radius, unit.type.shieldColor(unit), this); + } + } + @Override public void draw(Unit unit){ checkRadius(unit);