Closes Anuken/Mindustry-Suggestions/issues/5397

This commit is contained in:
Anuken
2025-01-19 14:59:27 -05:00
parent 68fecc551a
commit 224e74cc5f
5 changed files with 34 additions and 15 deletions

View File

@@ -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;
}};
}});

View File

@@ -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);