Merge branch 'master' of https://github.com/Anuken/Mindustry into maps_phase_2
Conflicts: core/src/mindustry/content/Blocks.java
This commit is contained in:
@@ -36,6 +36,7 @@ import mindustry.world.consumers.*;
|
||||
import mindustry.world.draw.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
import static mindustry.type.ItemStack.*;
|
||||
|
||||
public class Blocks{
|
||||
@@ -119,7 +120,7 @@ public class Blocks{
|
||||
impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode,
|
||||
|
||||
//power - erekir
|
||||
turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor,
|
||||
turbineCondenser, ventCondenser, chemicalCombustionChamber, pyrolysisGenerator, fluxReactor, neoplasiaReactor,
|
||||
beamNode, beamTower, beamLink,
|
||||
|
||||
//production
|
||||
@@ -1672,7 +1673,7 @@ public class Blocks{
|
||||
}};
|
||||
|
||||
shieldedWall = new ShieldWall("shielded-wall"){{
|
||||
requirements(Category.defense, ItemStack.with(Items.phaseFabric, 20, Items.surgeAlloy, 12));
|
||||
requirements(Category.defense, ItemStack.with(Items.phaseFabric, 20, Items.surgeAlloy, 12, Items.beryllium, 12));
|
||||
consumePower(3f / 60f);
|
||||
|
||||
outputsPower = false;
|
||||
@@ -2374,7 +2375,6 @@ public class Blocks{
|
||||
heating = 0.02f;
|
||||
|
||||
consumeItem(Items.thorium);
|
||||
//TODO how to non update
|
||||
consumeLiquid(Liquids.cryofluid, heating / coolantPower).update(false);
|
||||
}};
|
||||
|
||||
@@ -2449,11 +2449,10 @@ public class Blocks{
|
||||
researchCost = with(Items.beryllium, 15);
|
||||
}};
|
||||
|
||||
//TODO rename
|
||||
chemicalCombustionChamber = new ConsumeGenerator("chemical-combustion-chamber"){{
|
||||
requirements(Category.power, with(Items.graphite, 40, Items.tungsten, 40, Items.oxide, 40f, Items.silicon, 30));
|
||||
powerProduction = 8f;
|
||||
researchCost = with(Items.graphite, 2000, Items.tungsten, 1000, Items.oxide, 10, Items.silicon, 1500);
|
||||
powerProduction = 9f;
|
||||
consumeLiquids(LiquidStack.with(Liquids.ozone, 2f / 60f, Liquids.arkycite, 40f / 60f));
|
||||
size = 3;
|
||||
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawPistons(){{
|
||||
@@ -2508,6 +2507,7 @@ public class Blocks{
|
||||
|
||||
consumeLiquid(Liquids.cyanogen, 9f / 60f);
|
||||
liquidCapacity = 30f;
|
||||
explosionMinWarmup = 0.5f;
|
||||
|
||||
size = 5;
|
||||
|
||||
@@ -2530,6 +2530,70 @@ public class Blocks{
|
||||
);
|
||||
}};
|
||||
|
||||
//TODO stats
|
||||
neoplasiaReactor = new HeaterGenerator("neoplasia-reactor"){{
|
||||
requirements(Category.power, with(Items.tungsten, 1000, Items.carbide, 300, Items.oxide, 150, Items.silicon, 500, Items.phaseFabric, 300, Items.surgeAlloy, 200));
|
||||
|
||||
size = 5;
|
||||
liquidCapacity = 80f;
|
||||
outputLiquid = new LiquidStack(Liquids.neoplasm, 20f / 60f);
|
||||
explodeOnFull = true;
|
||||
|
||||
heatOutput = 60f;
|
||||
|
||||
//TODO arkycite, or nitrogen? both? Decide.
|
||||
consumeLiquid(Liquids.arkycite, 80f / 60f);
|
||||
consumeLiquid(Liquids.water, 10f / 60f);
|
||||
consumeItem(Items.phaseFabric);
|
||||
|
||||
itemDuration = 60f * 3f;
|
||||
itemCapacity = 10;
|
||||
|
||||
explosionRadius = 5;
|
||||
explosionDamage = 500;
|
||||
explodeEffect = new MultiEffect(Fx.bigShockwave, new WrapEffect(Fx.titanSmoke, Liquids.neoplasm.color), Fx.neoplasmSplat);
|
||||
explodeSound = Sounds.explosionbig;
|
||||
|
||||
powerProduction = 140f;
|
||||
rebuildable = false;
|
||||
|
||||
explosionPuddles = 80;
|
||||
explosionPuddleRange = tilesize * 7f;
|
||||
explosionPuddleLiquid = Liquids.neoplasm;
|
||||
explosionPuddleAmount = 200f;
|
||||
explosionMinWarmup = 0.5f;
|
||||
|
||||
consumeEffect = new RadialEffect(Fx.neoplasiaSmoke, 4, 90f, 54f / 4f);
|
||||
|
||||
drawer = new DrawMulti(
|
||||
new DrawRegion("-bottom"),
|
||||
new DrawLiquidTile(Liquids.arkycite, 3f),
|
||||
new DrawCircles(){{
|
||||
color = Color.valueOf("feb380").a(0.8f);
|
||||
strokeMax = 3.25f;
|
||||
radius = 65f / 4f;
|
||||
amount = 5;
|
||||
timeScl = 200f;
|
||||
}},
|
||||
|
||||
new DrawRegion("-center"),
|
||||
|
||||
new DrawCells(){{
|
||||
color = Color.valueOf("c33e2b");
|
||||
particleColorFrom = Color.valueOf("e8803f");
|
||||
particleColorTo = Color.valueOf("8c1225");
|
||||
particles = 50;
|
||||
range = 4f;
|
||||
}},
|
||||
new DrawDefault(),
|
||||
new DrawHeatOutput(),
|
||||
new DrawGlowRegion("-glow"){{
|
||||
color = Color.valueOf("70170b");
|
||||
alpha = 0.7f;
|
||||
}}
|
||||
);
|
||||
}};
|
||||
|
||||
//endregion power
|
||||
//region production
|
||||
|
||||
|
||||
@@ -470,6 +470,26 @@ public class Fx{
|
||||
}
|
||||
}).layer(Layer.bullet - 1f),
|
||||
|
||||
neoplasmSplat = new Effect(400f, 300f, b -> {
|
||||
float intensity = 3f;
|
||||
|
||||
color(Pal.neoplasm1);
|
||||
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)(5f * intensity), 22f * intensity, (x, y, in, out) -> {
|
||||
float fout = e.fout(Interp.pow5Out) * rand.random(0.5f, 1f);
|
||||
float rad = fout * ((2f + intensity) * 1.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);
|
||||
});
|
||||
});
|
||||
}
|
||||
}).layer(Layer.bullet - 2f),
|
||||
|
||||
scatheExplosion = new Effect(60f, 160f, e -> {
|
||||
color(e.color);
|
||||
stroke(e.fout() * 5f);
|
||||
@@ -1698,6 +1718,21 @@ public class Fx{
|
||||
}
|
||||
}),
|
||||
|
||||
neoplasiaSmoke = new Effect(280f, e -> {
|
||||
color(Pal.neoplasmMid);
|
||||
alpha(0.6f);
|
||||
|
||||
rand.setSeed(e.id);
|
||||
for(int i = 0; i < 6; i++){
|
||||
float len = rand.random(10f), rot = rand.range(120f) + e.rotation;
|
||||
|
||||
e.scaled(e.lifetime * rand.random(0.3f, 1f), b -> {
|
||||
v.trns(rot, len * b.finpow());
|
||||
Fill.circle(e.x + v.x, e.y + v.y, 3.3f * b.fslope() + 0.2f);
|
||||
});
|
||||
}
|
||||
}),
|
||||
|
||||
heatReactorSmoke = new Effect(180f, e -> {
|
||||
color(Color.gray);
|
||||
|
||||
|
||||
@@ -50,9 +50,9 @@ public class Liquids{
|
||||
viscosity = 0.85f;
|
||||
flammability = 0f;
|
||||
capPuddles = false;
|
||||
hidden = true;
|
||||
spreadTarget = Liquids.water;
|
||||
moveThroughBlocks = true;
|
||||
incinerable = true;
|
||||
|
||||
colorFrom = Color.valueOf("e8803f");
|
||||
colorTo = Color.valueOf("8c1225");
|
||||
|
||||
@@ -131,6 +131,8 @@ public class Planets{
|
||||
allowLaunchSchematics = true;
|
||||
enemyCoreSpawnReplace = true;
|
||||
allowLaunchLoadout = true;
|
||||
//doesn't play well with configs
|
||||
prebuildBase = false;
|
||||
ruleSetter = r -> {
|
||||
r.waveTeam = Team.crux;
|
||||
r.placeRangeCheck = false;
|
||||
|
||||
Reference in New Issue
Block a user