Finalized launch pad mechanics
This commit is contained in:
@@ -6364,23 +6364,26 @@ public class Blocks{
|
||||
}};
|
||||
|
||||
advancedLaunchPad = new LaunchPad("advanced-launch-pad"){{
|
||||
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150));
|
||||
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 350, Items.silicon, 250, Items.lead, 300, Items.titanium, 200));
|
||||
size = 4;
|
||||
itemCapacity = 100;
|
||||
launchTime = 60f * 30;
|
||||
liquidCapacity = 40f;
|
||||
hasPower = true;
|
||||
drawLiquid = Liquids.oil;
|
||||
consumeLiquid(Liquids.oil, 9f/60f);
|
||||
consumePower(8f);
|
||||
}};
|
||||
|
||||
landingPad = new LandingPad("landing-pad"){{
|
||||
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150));
|
||||
requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 300, Items.graphite, 200, Items.titanium, 150));
|
||||
size = 4;
|
||||
|
||||
itemCapacity = 100;
|
||||
|
||||
liquidCapacity = 4000f;
|
||||
consumeLiquidAmount = 2000f;
|
||||
coolingEffect = new RadialEffect(Fx.steamCoolSmoke, 4, 90f, 9.5f, 180f);
|
||||
liquidCapacity = 5000f;
|
||||
consumeLiquidAmount = 2500f;
|
||||
}};
|
||||
|
||||
interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{
|
||||
|
||||
@@ -1474,6 +1474,12 @@ public class Fx{
|
||||
Lines.circle(e.x, e.y, e.fin() * (e.rotation + 50f));
|
||||
}),
|
||||
|
||||
podLandShockwave = new Effect(12f, 80f, e -> {
|
||||
color(Pal.accent);
|
||||
stroke(e.fout() * 2f + 0.2f);
|
||||
Lines.circle(e.x, e.y, e.fin() * 26f);
|
||||
}),
|
||||
|
||||
explosion = new Effect(30, e -> {
|
||||
e.scaled(7, i -> {
|
||||
stroke(3f * i.fout());
|
||||
@@ -1624,6 +1630,15 @@ public class Fx{
|
||||
});
|
||||
}),
|
||||
|
||||
steamCoolSmoke = new Effect(35f, e -> {
|
||||
color(Pal.water, Color.lightGray, e.fin(Interp.pow2Out));
|
||||
alpha(e.fout(Interp.pow3Out));
|
||||
|
||||
randLenVectors(e.id, 4, e.finpow() * 7f, e.rotation, 30f, (x, y) -> {
|
||||
Fill.circle(e.x + x, e.y + y, Math.max(e.fout(), Math.min(1f, e.fin() * 8f)) * 2.8f);
|
||||
});
|
||||
}),
|
||||
|
||||
smokePuff = new Effect(30, e -> {
|
||||
color(e.color);
|
||||
|
||||
@@ -2574,6 +2589,13 @@ public class Fx{
|
||||
Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 8f * rand.random(0.6f, 1f) * e.fout(0.2f));
|
||||
}).layer(Layer.groundUnit + 1f),
|
||||
|
||||
podLandDust = new Effect(70f, e -> {
|
||||
color(e.color, e.fout(0.1f));
|
||||
rand.setSeed(e.id);
|
||||
Tmp.v1.trns(e.rotation, e.finpow() * 35f * rand.random(0.2f, 1f));
|
||||
Fill.circle(e.x + Tmp.v1.x, e.y + Tmp.v1.y, 5f * rand.random(0.6f, 1f) * e.fout(0.2f));
|
||||
}).layer(Layer.groundUnit + 1f),
|
||||
|
||||
unitShieldBreak = new Effect(35, e -> {
|
||||
if(!(e.data instanceof Unit unit)) return;
|
||||
|
||||
|
||||
@@ -20,8 +20,10 @@ public class SerpuloTechTree{
|
||||
node(junction, () -> {
|
||||
node(router, () -> {
|
||||
node(advancedLaunchPad, Seq.with(new SectorComplete(extractionOutpost)), () -> {
|
||||
node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
|
||||
node(landingPad, () -> {
|
||||
node(interplanetaryAccelerator, Seq.with(new SectorComplete(planetaryTerminal)), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user