This commit is contained in:
Anuken
2020-10-31 12:03:35 -04:00
parent 13334451bf
commit 9af8b64046
4 changed files with 21 additions and 14 deletions

View File

@@ -916,7 +916,7 @@ public class Blocks implements ContentList{
size = 3; size = 3;
phaseRadiusBoost = 80f; phaseRadiusBoost = 80f;
radius = 101.7f; radius = 101.7f;
breakage = 750f; shieldHealth = 750f;
cooldownNormal = 1.5f; cooldownNormal = 1.5f;
cooldownLiquid = 1.2f; cooldownLiquid = 1.2f;
cooldownBrokenBase = 0.35f; cooldownBrokenBase = 0.35f;

View File

@@ -478,7 +478,7 @@ public class Bullets implements ContentList{
knockback = 1.7f; knockback = 1.7f;
puddleSize = 8f; puddleSize = 8f;
drag = 0.001f; drag = 0.001f;
ammoMultiplier = 2f; ammoMultiplier = 0.4f;
statusDuration = 60f * 4f; statusDuration = 60f * 4f;
damage = 0.2f; damage = 0.2f;
}}; }};
@@ -489,7 +489,7 @@ public class Bullets implements ContentList{
knockback = 1.3f; knockback = 1.3f;
puddleSize = 8f; puddleSize = 8f;
drag = 0.001f; drag = 0.001f;
ammoMultiplier = 2f; ammoMultiplier = 0.4f;
statusDuration = 60f * 4f; statusDuration = 60f * 4f;
damage = 0.2f; damage = 0.2f;
}}; }};
@@ -499,9 +499,9 @@ public class Bullets implements ContentList{
speed = 4f; speed = 4f;
knockback = 1.3f; knockback = 1.3f;
puddleSize = 8f; puddleSize = 8f;
damage = 5f; damage = 4.75f;
drag = 0.001f; drag = 0.001f;
ammoMultiplier = 2f; ammoMultiplier = 0.4f;
statusDuration = 60f * 4f; statusDuration = 60f * 4f;
}}; }};
@@ -511,7 +511,7 @@ public class Bullets implements ContentList{
knockback = 1.3f; knockback = 1.3f;
puddleSize = 8f; puddleSize = 8f;
drag = 0.001f; drag = 0.001f;
ammoMultiplier = 2f; ammoMultiplier = 0.4f;
statusDuration = 60f * 4f; statusDuration = 60f * 4f;
damage = 0.2f; damage = 0.2f;
}}; }};

View File

@@ -268,7 +268,7 @@ public class SectorDamage{
} }
if(build.block instanceof ForceProjector f){ if(build.block instanceof ForceProjector f){
sumHealth += f.breakage * e; sumHealth += f.shieldHealth * e;
sumRps += 1f * e; sumRps += 1f * e;
} }
} }

View File

@@ -13,6 +13,7 @@ import mindustry.content.*;
import mindustry.gen.*; import mindustry.gen.*;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.logic.*; import mindustry.logic.*;
import mindustry.ui.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.consumers.*; import mindustry.world.consumers.*;
import mindustry.world.meta.*; import mindustry.world.meta.*;
@@ -26,7 +27,7 @@ public class ForceProjector extends Block{
public float phaseRadiusBoost = 80f; public float phaseRadiusBoost = 80f;
public float phaseShieldBoost = 400f; public float phaseShieldBoost = 400f;
public float radius = 101.7f; public float radius = 101.7f;
public float breakage = 550f; public float shieldHealth = 700f;
public float cooldownNormal = 1.75f; public float cooldownNormal = 1.75f;
public float cooldownLiquid = 1.5f; public float cooldownLiquid = 1.5f;
public float cooldownBrokenBase = 0.35f; 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); 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 @Override
public boolean outputsItems(){ public boolean outputsItems(){
return false; return false;
@@ -61,8 +68,8 @@ public class ForceProjector extends Block{
@Override @Override
public void setStats(){ public void setStats(){
super.setStats(); super.setStats();
stats.add(Stat.shieldHealth, breakage, StatUnit.none); stats.add(Stat.shieldHealth, shieldHealth, StatUnit.none);
stats.add(Stat.cooldownTime, (int) (breakage / cooldownBrokenBase / 60f), StatUnit.seconds); stats.add(Stat.cooldownTime, (int) (shieldHealth / cooldownBrokenBase / 60f), StatUnit.seconds);
stats.add(Stat.powerUse, basePowerDraw * 60f, StatUnit.powerSecond); stats.add(Stat.powerUse, basePowerDraw * 60f, StatUnit.powerSecond);
stats.add(Stat.boostEffect, phaseRadiusBoost / tilesize, StatUnit.blocks); stats.add(Stat.boostEffect, phaseRadiusBoost / tilesize, StatUnit.blocks);
stats.add(Stat.boostEffect, phaseShieldBoost, StatUnit.shieldHealth); 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); 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)); Fx.reactorsmoke.at(x + Mathf.range(tilesize / 2f), y + Mathf.range(tilesize / 2f));
} }
@@ -139,9 +146,9 @@ public class ForceProjector extends Block{
broken = false; broken = false;
} }
if(buildup >= breakage + phaseShieldBoost && !broken){ if(buildup >= shieldHealth + phaseShieldBoost * phaseHeat && !broken){
broken = true; broken = true;
buildup = breakage; buildup = shieldHealth;
Fx.shieldBreak.at(x, y, realRadius(), team.color); Fx.shieldBreak.at(x, y, realRadius(), team.color);
} }
@@ -170,7 +177,7 @@ public class ForceProjector extends Block{
} }
if(buildup > 0f){ if(buildup > 0f){
Draw.alpha(buildup / breakage * 0.75f); Draw.alpha(buildup / shieldHealth * 0.75f);
Draw.blend(Blending.additive); Draw.blend(Blending.additive);
Draw.rect(topRegion, x, y); Draw.rect(topRegion, x, y);
Draw.blend(); Draw.blend();