This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user