Better breach FX
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}),
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user