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;
phaseRadiusBoost = 80f;
radius = 101.7f;
breakage = 750f;
shieldHealth = 750f;
cooldownNormal = 1.5f;
cooldownLiquid = 1.2f;
cooldownBrokenBase = 0.35f;

View File

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

View File

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

View File

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