Better breach FX

This commit is contained in:
Anuken
2021-12-27 16:59:06 -05:00
parent 4e1dec2399
commit aaaa9f408e
4 changed files with 21 additions and 10 deletions

View File

@@ -2893,11 +2893,14 @@ public class Blocks{
breach = new ItemTurret("breach"){{
requirements(Category.turret, with(Items.beryllium, 200, Items.silicon, 150, Items.graphite, 80));
Effect sfe = new MultiEffect(Fx.shootBigColor, Fx.colorSparkBig);
ammo(
Items.beryllium, new BasicBulletType(7f, 90){{
Items.beryllium, new BasicBulletType(7.5f, 90){{
width = 12f;
height = 20f;
shootEffect = Fx.colorSparkBig;
shootEffect = sfe;
smokeEffect = Fx.shootBigSmoke;
ammoMultiplier = 1;
pierce = true;
@@ -2908,10 +2911,10 @@ public class Blocks{
trailLength = 10;
hitEffect = despawnEffect = Fx.hitBulletColor;
}},
Items.tungsten, new BasicBulletType(7.5f, 160){{
Items.tungsten, new BasicBulletType(8f, 160){{
width = 13f;
height = 19f;
shootEffect = Fx.colorSparkBig;
shootEffect = sfe;
smokeEffect = Fx.shootBigSmoke;
ammoMultiplier = 1;
reloadMultiplier = 1f;
@@ -2928,9 +2931,10 @@ public class Blocks{
//TODO no coolant?
shootShake = 1f;
ammoPerShot = 6;
draw = new DrawTurret("reinforced-");
shootLength = 0f;
shootLength = -2;
outlineColor = Pal.darkOutline;
size = 3;
envEnabled |= Env.space;

View File

@@ -1407,6 +1407,13 @@ public class Fx{
Drawf.tri(e.x, e.y, w, 5f * e.fout(), e.rotation + 180f);
}),
shootBigColor = new Effect(11, e -> {
color(e.color, Color.gray, e.fin());
float w = 1.2f +9 * e.fout();
Drawf.tri(e.x, e.y, w, 32f * e.fout(), e.rotation);
Drawf.tri(e.x, e.y, w, 3f * e.fout(), e.rotation + 180f);
}),
shootTitan = new Effect(10, e -> {
color(Pal.lightOrange, e.color, e.fin());
float w = 1.3f + 10 * e.fout();
@@ -1512,9 +1519,9 @@ public class Fx{
colorSparkBig = new Effect(25f, e -> {
color(Color.white, e.color, e.fin());
stroke(e.fout() * 1.3f + 0.5f);
stroke(e.fout() * 1.3f + 0.7f);
randLenVectors(e.id, 8, 37f * e.fin(), e.rotation, 10f, (x, y) -> {
randLenVectors(e.id, 8, 41f * e.fin(), e.rotation, 10f, (x, y) -> {
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), e.fslope() * 6f + 0.5f);
});
}),

View File

@@ -32,7 +32,7 @@ public class ItemTurret extends Turret{
/** Makes copies of all bullets and limits their range. */
public void limitRange(){
limitRange(1f);
limitRange(2f);
}
/** Makes copies of all bullets and limits their range. */

View File

@@ -78,7 +78,7 @@ public class Turret extends ReloadTurret{
/** Maximum angle difference in degrees at which turret will still try to shoot. */
public float shootCone = 8f;
/** Length of turret shoot point. */
public float shootLength = -1;
public float shootLength = Float.NEGATIVE_INFINITY;
/** Random spread of projectile across width. This looks stupid. */
public float xRand = 0f;
/** Currently used for artillery only. */
@@ -164,7 +164,7 @@ public class Turret extends ReloadTurret{
@Override
public void init(){
if(shootLength < 0) shootLength = size * tilesize / 2f;
if(shootLength == Float.NEGATIVE_INFINITY) shootLength = size * tilesize / 2f;
if(elevation < 0) elevation = size / 2f;
super.init();