From 9af8b640460457cce60221d6757c8b239279d0ac Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 31 Oct 2020 12:03:35 -0400 Subject: [PATCH] #3191 --- core/src/mindustry/content/Blocks.java | 2 +- core/src/mindustry/content/Bullets.java | 10 ++++----- core/src/mindustry/maps/SectorDamage.java | 2 +- .../world/blocks/defense/ForceProjector.java | 21 ++++++++++++------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index eb1461f67e..04af30ad10 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -916,7 +916,7 @@ public class Blocks implements ContentList{ size = 3; phaseRadiusBoost = 80f; radius = 101.7f; - breakage = 750f; + shieldHealth = 750f; cooldownNormal = 1.5f; cooldownLiquid = 1.2f; cooldownBrokenBase = 0.35f; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index 11247dac2f..87f042ed13 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -478,7 +478,7 @@ public class Bullets implements ContentList{ knockback = 1.7f; puddleSize = 8f; drag = 0.001f; - ammoMultiplier = 2f; + ammoMultiplier = 0.4f; statusDuration = 60f * 4f; damage = 0.2f; }}; @@ -489,7 +489,7 @@ public class Bullets implements ContentList{ knockback = 1.3f; puddleSize = 8f; drag = 0.001f; - ammoMultiplier = 2f; + ammoMultiplier = 0.4f; statusDuration = 60f * 4f; damage = 0.2f; }}; @@ -499,9 +499,9 @@ public class Bullets implements ContentList{ speed = 4f; knockback = 1.3f; puddleSize = 8f; - damage = 5f; + damage = 4.75f; drag = 0.001f; - ammoMultiplier = 2f; + ammoMultiplier = 0.4f; statusDuration = 60f * 4f; }}; @@ -511,7 +511,7 @@ public class Bullets implements ContentList{ knockback = 1.3f; puddleSize = 8f; drag = 0.001f; - ammoMultiplier = 2f; + ammoMultiplier = 0.4f; statusDuration = 60f * 4f; damage = 0.2f; }}; diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index af070e0a0f..bc7c4b8cef 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -268,7 +268,7 @@ public class SectorDamage{ } if(build.block instanceof ForceProjector f){ - sumHealth += f.breakage * e; + sumHealth += f.shieldHealth * e; sumRps += 1f * e; } } diff --git a/core/src/mindustry/world/blocks/defense/ForceProjector.java b/core/src/mindustry/world/blocks/defense/ForceProjector.java index 46fb01d7d5..1a9ed3112b 100644 --- a/core/src/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/mindustry/world/blocks/defense/ForceProjector.java @@ -13,6 +13,7 @@ import mindustry.content.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.logic.*; +import mindustry.ui.*; import mindustry.world.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; @@ -26,7 +27,7 @@ public class ForceProjector extends Block{ public float phaseRadiusBoost = 80f; public float phaseShieldBoost = 400f; public float radius = 101.7f; - public float breakage = 550f; + public float shieldHealth = 700f; public float cooldownNormal = 1.75f; public float cooldownLiquid = 1.5f; public float cooldownBrokenBase = 0.35f; @@ -53,6 +54,12 @@ public class ForceProjector extends Block{ consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.1f)).boost().update(false); } + @Override + public void setBars(){ + super.setBars(); + bars.add("shield", (ForceBuild entity) -> new Bar("stat.shieldhealth", Pal.accent, () -> entity.broken ? 0f : 1f - entity.buildup / (shieldHealth + phaseShieldBoost * entity.phaseHeat)).blink(Color.white)); + } + @Override public boolean outputsItems(){ return false; @@ -61,8 +68,8 @@ public class ForceProjector extends Block{ @Override public void setStats(){ super.setStats(); - stats.add(Stat.shieldHealth, breakage, StatUnit.none); - stats.add(Stat.cooldownTime, (int) (breakage / cooldownBrokenBase / 60f), StatUnit.seconds); + stats.add(Stat.shieldHealth, shieldHealth, StatUnit.none); + stats.add(Stat.cooldownTime, (int) (shieldHealth / cooldownBrokenBase / 60f), StatUnit.seconds); stats.add(Stat.powerUse, basePowerDraw * 60f, StatUnit.powerSecond); stats.add(Stat.boostEffect, phaseRadiusBoost / tilesize, StatUnit.blocks); stats.add(Stat.boostEffect, phaseShieldBoost, StatUnit.shieldHealth); @@ -118,7 +125,7 @@ public class ForceProjector extends Block{ radscl = Mathf.lerpDelta(radscl, broken ? 0f : warmup, 0.05f); - if(Mathf.chanceDelta(buildup / breakage * 0.1f)){ + if(Mathf.chanceDelta(buildup / shieldHealth * 0.1f)){ Fx.reactorsmoke.at(x + Mathf.range(tilesize / 2f), y + Mathf.range(tilesize / 2f)); } @@ -139,9 +146,9 @@ public class ForceProjector extends Block{ broken = false; } - if(buildup >= breakage + phaseShieldBoost && !broken){ + if(buildup >= shieldHealth + phaseShieldBoost * phaseHeat && !broken){ broken = true; - buildup = breakage; + buildup = shieldHealth; Fx.shieldBreak.at(x, y, realRadius(), team.color); } @@ -170,7 +177,7 @@ public class ForceProjector extends Block{ } if(buildup > 0f){ - Draw.alpha(buildup / breakage * 0.75f); + Draw.alpha(buildup / shieldHealth * 0.75f); Draw.blend(Blending.additive); Draw.rect(topRegion, x, y); Draw.blend();