Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2025-04-19 22:39:32 -04:00
4 changed files with 735 additions and 634 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -176,3 +176,4 @@ sasha0552
SeuEarth SeuEarth
The4codeblocks The4codeblocks
cardillan cardillan
Justacommonegg

View File

@@ -4460,16 +4460,17 @@ public class Blocks{
shrinkY = 0.1f; shrinkY = 0.1f;
buildingDamageMultiplier = 0.3f; buildingDamageMultiplier = 0.3f;
}}, }},
Items.carbide, new ArtilleryBulletType(2.5f, 500, "shell"){{ Items.carbide, new ArtilleryBulletType(3.25f, 700, "shell"){{
hitEffect = new MultiEffect(Fx.titanExplosion, Fx.titanSmoke); hitEffect = new MultiEffect(Fx.titanExplosionSmall, Fx.titanSmokeSmall);
despawnEffect = Fx.none; despawnEffect = Fx.none;
knockback = 3f; knockback = 3f;
lifetime = 140f; lifetime = 140f;
height = 19f; height = 28f;
width = 17f; width = 15f;
splashDamageRadius = 55f; splashDamageRadius = 36f;
splashDamage = 650f; splashDamage = 750f;
rangeChange = 10f*8f; rangeChange = 10f*8f;
reloadMultiplier = 0.8f;
scaledSplashDamage = true; scaledSplashDamage = true;
backColor = hitColor = trailColor = Color.valueOf("ab8ec5"); backColor = hitColor = trailColor = Color.valueOf("ab8ec5");
frontColor = Color.white; frontColor = Color.white;
@@ -4494,6 +4495,30 @@ public class Blocks{
shrinkX = 0.2f; shrinkX = 0.2f;
shrinkY = 0.1f; shrinkY = 0.1f;
buildingDamageMultiplier = 0.2f; buildingDamageMultiplier = 0.2f;
fragLifeMin = 1.5f;
fragBullets = 12;
fragBullet = new ArtilleryBulletType(0.5f, 50, "shell"){{
hitEffect = new MultiEffect(Fx.titanExplosionFrag, Fx.titanLightSmall, new WaveEffect(){{
lifetime = 8f;
strokeFrom = 1f;
sizeTo = 8f;
}});
despawnEffect = Fx.hitBulletColor;
width = 8f;
height = 12f;
lifetime = 50f;
knockback = 0.5f;
splashDamageRadius = 22f;
splashDamage = 50f;
scaledSplashDamage = true;
pierceArmor = true;
backColor = frontColor = hitColor = Color.valueOf("ab8ec5");
frontColor = Color.white;
buildingDamageMultiplier = 0.25f;
shrinkY = 0.3f;
}};
}}, }},
Items.oxide, new ArtilleryBulletType(2.5f, 300, "shell"){{ Items.oxide, new ArtilleryBulletType(2.5f, 300, "shell"){{
hitEffect = new MultiEffect(Fx.titanExplosionLarge, Fx.titanSmokeLarge, Fx.smokeAoeCloud); hitEffect = new MultiEffect(Fx.titanExplosionLarge, Fx.titanSmokeLarge, Fx.smokeAoeCloud);
@@ -4502,7 +4527,7 @@ public class Blocks{
lifetime = 190f; lifetime = 190f;
height = 19f; height = 19f;
width = 17f; width = 17f;
reloadMultiplier = 0.8f; reloadMultiplier = 0.65f;
splashDamageRadius = 110f; splashDamageRadius = 110f;
rangeChange = 8f; rangeChange = 8f;
splashDamage = 300f; splashDamage = 300f;
@@ -4783,7 +4808,8 @@ public class Blocks{
afflict = new PowerTurret("afflict"){{ afflict = new PowerTurret("afflict"){{
requirements(Category.turret, with(Items.surgeAlloy, 125, Items.silicon, 200, Items.graphite, 250, Items.oxide, 40)); requirements(Category.turret, with(Items.surgeAlloy, 125, Items.silicon, 200, Items.graphite, 250, Items.oxide, 40));
buildCostMultiplier = 1.5f;
shootType = new BasicBulletType(){{ shootType = new BasicBulletType(){{
shootEffect = new MultiEffect(Fx.shootTitan, new WaveEffect(){{ shootEffect = new MultiEffect(Fx.shootTitan, new WaveEffect(){{
colorTo = Pal.surge; colorTo = Pal.surge;
@@ -4827,8 +4853,8 @@ public class Blocks{
width = 9f; width = 9f;
hitSize = 5f; hitSize = 5f;
height = 15f; height = 15f;
pierce = true; pierceCap = 3;
lifetime = 35f; lifetime = 28f;
pierceBuilding = true; pierceBuilding = true;
hitColor = backColor = trailColor = Pal.surge; hitColor = backColor = trailColor = Pal.surge;
frontColor = Color.white; frontColor = Color.white;
@@ -4841,7 +4867,7 @@ public class Blocks{
lifetime = 10f; lifetime = 10f;
}}; }};
buildingDamageMultiplier = 0.3f; buildingDamageMultiplier = 0.3f;
homingPower = 0.2f; homingPower = 0.1f;
}}; }};
bulletInterval = 3f; bulletInterval = 3f;
@@ -5010,7 +5036,7 @@ public class Blocks{
deathExplosionEffect = Fx.massiveExplosion; deathExplosionEffect = Fx.massiveExplosion;
shootOnDeath = true; shootOnDeath = true;
shake = 10f; shake = 10f;
bullet = new ExplosionBulletType(1500f, 65f){{ bullet = new ExplosionBulletType(1000f, 65f){{
hitColor = Pal.redLight; hitColor = Pal.redLight;
shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosion, Fx.scatheLight, new WaveEffect(){{ shootEffect = new MultiEffect(Fx.massiveExplosion, Fx.scatheExplosion, Fx.scatheLight, new WaveEffect(){{
lifetime = 10f; lifetime = 10f;
@@ -5034,7 +5060,7 @@ public class Blocks{
width = height = 18f; width = height = 18f;
collidesTiles = false; collidesTiles = false;
splashDamageRadius = 40f; splashDamageRadius = 40f;
splashDamage = 160f; splashDamage = 100f;
backColor = trailColor = hitColor = Pal.redLight; backColor = trailColor = hitColor = Pal.redLight;
frontColor = Color.white; frontColor = Color.white;
smokeEffect = Fx.shootBigSmoke2; smokeEffect = Fx.shootBigSmoke2;

View File

@@ -458,6 +458,38 @@ public class Fx{
Lines.lineAngle(e.x, e.y, angle, e.foutpow() * 50f * rand.random(1f, 0.6f) + 2f, e.finpow() * 100f * lenRand + 6f); Lines.lineAngle(e.x, e.y, angle, e.foutpow() * 50f * rand.random(1f, 0.6f) + 2f, e.finpow() * 100f * lenRand + 6f);
} }
}), }),
titanExplosionSmall = new Effect(22f, 120f, e -> {
color(e.color);
stroke(e.fout() * 3f);
float circleRad = 6f + e.finpow() * 45f;
Lines.circle(e.x, e.y, circleRad);
rand.setSeed(e.id);
for(int i = 0; i < 12; i++){
float angle = rand.random(360f);
float lenRand = rand.random(0.5f, 1f);
Lines.lineAngle(e.x, e.y, angle, e.foutpow() * 50f * rand.random(1f, 0.6f) + 2f, e.finpow() * 50f * lenRand + 6f);
}
}),
titanExplosionFrag = new Effect(20f, 50f, e -> {
color(e.color);
stroke(e.fout() * 2f);
float circleRad = 6f + e.finpow() * 20f;
Lines.circle(e.x, e.y, circleRad);
rand.setSeed(e.id);
for(int i = 0; i < 8; i++){
float angle = rand.random(360f);
float lenRand = rand.random(0.5f, 1f);
Tmp.v1.trns(angle, circleRad);
for(int s : Mathf.signs){
Drawf.tri(e.x + Tmp.v1.x, e.y + Tmp.v1.y, e.foutpow() * 15f, e.fout() * 20f * lenRand + 6f, angle + 90f + s * 90f);
}
}
}),
titanSmoke = new Effect(300f, 300f, b -> { titanSmoke = new Effect(300f, 300f, b -> {
float intensity = 3f; float intensity = 3f;
@@ -498,6 +530,26 @@ public class Fx{
}); });
} }
}), }),
titanSmokeSmall = new Effect(200f, 200f, b -> {
float intensity = 2.5f;
color(b.color, 0.7f);
for(int i = 0; i < 4; i++){
rand.setSeed(b.id*2 + i);
float lenScl = rand.random(0.5f, 1f);
int fi = i;
b.scaled(b.lifetime * lenScl, e -> {
randLenVectors(e.id + fi - 1, e.fin(Interp.pow10Out), (int)(2.9f * intensity), 18f * intensity, (x, y, in, out) -> {
float fout = e.fout(Interp.pow5Out) * rand.random(0.5f, 1f);
float rad = fout * ((2f + intensity) * 2.35f);
Fill.circle(e.x + x, e.y + y, rad);
Drawf.light(e.x + x, e.y + y, rad * 2.5f, b.color, 0.5f);
});
});
}
}),
smokeAoeCloud = new Effect(60f * 3f, 250f, e -> { smokeAoeCloud = new Effect(60f * 3f, 250f, e -> {
color(e.color, 0.65f); color(e.color, 0.65f);
@@ -617,6 +669,13 @@ public class Fx{
Fill.circle(e.x, e.y, circleRad); Fill.circle(e.x, e.y, circleRad);
}).layer(Layer.bullet + 2f), }).layer(Layer.bullet + 2f),
titanLightSmall = new Effect(40f, 100f, e -> {
float circleRad = 6f + e.finpow() * 20f;
color(e.color, e.foutpow());
Fill.circle(e.x, e.y, circleRad);
}).layer(Layer.bullet + 2f),
scatheSlash = new Effect(40f, 160f, e -> { scatheSlash = new Effect(40f, 160f, e -> {
Draw.color(e.color); Draw.color(e.color);
for(int s : Mathf.signs){ for(int s : Mathf.signs){