Tech tree restructuring
This commit is contained in:
@@ -80,7 +80,7 @@ public class Blocks{
|
||||
//defense
|
||||
copperWall, copperWallLarge, titaniumWall, titaniumWallLarge, plastaniumWall, plastaniumWallLarge, thoriumWall, thoriumWallLarge, door, doorLarge,
|
||||
phaseWall, phaseWallLarge, surgeWall, surgeWallLarge,
|
||||
berylliumWall, berylliumWallLarge, tungstenWall, tungstenWallLarge, blastDoor, carbideWall, carbideWallLarge,
|
||||
berylliumWall, berylliumWallLarge, tungstenWall, tungstenWallLarge, blastDoor, reinforcedSurgeWall, reinforcedSurgeWallLarge, carbideWall, carbideWallLarge,
|
||||
mender, mendProjector, overdriveProjector, overdriveDome, forceProjector, shockMine,
|
||||
scrapWall, scrapWallLarge, scrapWallHuge, scrapWallGigantic, thruster, //ok, these names are getting ridiculous, but at least I don't have humongous walls yet
|
||||
|
||||
@@ -141,8 +141,7 @@ public class Blocks{
|
||||
//units - erekir
|
||||
tankFabricator, shipFabricator, mechFabricator,
|
||||
|
||||
//TODO names
|
||||
refabricator,
|
||||
tankRefabricator, shipRefabricator, mechRefabricator,
|
||||
primeRefabricator,
|
||||
|
||||
tankAssembler, shipAssembler, mechAssembler,
|
||||
@@ -1361,7 +1360,7 @@ public class Blocks{
|
||||
consumeItem(Items.silicon, 3);
|
||||
//TODO must consume from 2 pumps, 1, or 1.5?
|
||||
//TODO consume hydrogen/ozone?
|
||||
consumeLiquid(Liquids.slag, 80f / 60f);
|
||||
consumeLiquid(Liquids.slag, 40f / 60f);
|
||||
consumePower(2f); //TODO necessary?
|
||||
}};
|
||||
|
||||
@@ -1385,10 +1384,11 @@ public class Blocks{
|
||||
|
||||
size = 3;
|
||||
|
||||
liquidCapacity = 40f;
|
||||
liquidCapacity = 80f;
|
||||
outputLiquid = new LiquidStack(Liquids.cyanogen, 3f / 60f);
|
||||
|
||||
consumeLiquids(LiquidStack.with(Liquids.hydrogen, 3f / 60f, Liquids.nitrogen, 2f / 60f));
|
||||
//consumeLiquids(LiquidStack.with(Liquids.hydrogen, 3f / 60f, Liquids.nitrogen, 2f / 60f));
|
||||
consumeLiquid(Liquids.arkycite, 40f / 60f);
|
||||
consumeItem(Items.graphite);
|
||||
consumePower(2f);
|
||||
}};
|
||||
@@ -1625,6 +1625,23 @@ public class Blocks{
|
||||
size = 2;
|
||||
}};
|
||||
|
||||
reinforcedSurgeWall = new Wall("reinforced-surge-wall"){{
|
||||
requirements(Category.defense, with(Items.surgeAlloy, 6, Items.tungsten, 2));
|
||||
health = 230 * wallHealthMultiplier;
|
||||
lightningChance = 0.05f;
|
||||
lightningDamage = 30f;
|
||||
armor = 20f;
|
||||
}};
|
||||
|
||||
reinforcedSurgeWallLarge = new Wall("reinforced-surge-wall-large"){{
|
||||
requirements(Category.defense, ItemStack.mult(reinforcedSurgeWall.requirements, 4));
|
||||
health = 230 * wallHealthMultiplier * 4;
|
||||
lightningChance = 0.05f;
|
||||
lightningDamage = 30f;
|
||||
armor = 20f;
|
||||
size = 2;
|
||||
}};
|
||||
|
||||
carbideWall = new Wall("carbide-wall"){{
|
||||
requirements(Category.defense, with(Items.thorium, 6, Items.carbide, 6));
|
||||
health = 240 * wallHealthMultiplier;
|
||||
@@ -2394,7 +2411,7 @@ public class Blocks{
|
||||
pyrolysisGenerator = new ConsumeGenerator("pyrolysis-generator"){{
|
||||
//TODO requirements
|
||||
requirements(Category.power, with(Items.graphite, 50, Items.carbide, 50, Items.oxide, 60f, Items.silicon, 50));
|
||||
powerProduction = 18f;
|
||||
powerProduction = 27f;
|
||||
|
||||
drawer = new DrawMulti(new DrawRegion("-bottom"), new DrawPistons(){{
|
||||
sinMag = 2.75f;
|
||||
@@ -2413,7 +2430,7 @@ public class Blocks{
|
||||
|
||||
liquidCapacity = 30f * 5;
|
||||
|
||||
liquidOutput = new LiquidStack(Liquids.water, 10f / 60f);
|
||||
liquidOutput = new LiquidStack(Liquids.water, 20f / 60f);
|
||||
|
||||
generateEffect = Fx.none;
|
||||
|
||||
@@ -2618,7 +2635,7 @@ public class Blocks{
|
||||
|
||||
//TODO bad name
|
||||
eruptionDrill = new BurstDrill("eruption-drill"){{
|
||||
requirements(Category.production, with(Items.silicon, 200, Items.oxide, 80, Items.tungsten, 200, Items.carbide, 120));
|
||||
requirements(Category.production, with(Items.silicon, 200, Items.oxide, 20, Items.tungsten, 200, Items.thorium, 120));
|
||||
drillTime = 60f * 6f;
|
||||
size = 5;
|
||||
hasPower = true;
|
||||
@@ -2640,7 +2657,7 @@ public class Blocks{
|
||||
|
||||
//TODO different requirements
|
||||
consumePower(6f);
|
||||
consumeLiquids(LiquidStack.with(Liquids.water, 0.4f, Liquids.hydrogen, 4f / 60f));
|
||||
consumeLiquids(LiquidStack.with(Liquids.hydrogen, 4f / 60f));
|
||||
}};
|
||||
|
||||
//endregion
|
||||
@@ -3949,7 +3966,7 @@ public class Blocks{
|
||||
}};
|
||||
|
||||
disperse = new ItemTurret("disperse"){{
|
||||
requirements(Category.turret, with(Items.carbide, 50, Items.oxide, 150, Items.silicon, 200, Items.beryllium, 350));
|
||||
requirements(Category.turret, with(Items.thorium, 50, Items.oxide, 150, Items.silicon, 200, Items.beryllium, 350));
|
||||
|
||||
ammo(Items.tungsten, new BasicBulletType(){{
|
||||
damage = 60;
|
||||
@@ -4213,21 +4230,52 @@ public class Blocks{
|
||||
consumePower(2f);
|
||||
}};
|
||||
|
||||
refabricator = new Reconstructor("refabricator"){{
|
||||
tankRefabricator = new Reconstructor("tank-refabricator"){{
|
||||
requirements(Category.units, with(Items.beryllium, 200, Items.tungsten, 80, Items.silicon, 100));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(3f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 40, Items.tungsten, 30));
|
||||
|
||||
constructTime = 60f * 30f;
|
||||
researchCostMultiplier = 0.75f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.locus}
|
||||
);
|
||||
}};
|
||||
|
||||
mechRefabricator = new Reconstructor("mech-refabricator"){{
|
||||
requirements(Category.units, with(Items.beryllium, 250, Items.tungsten, 120, Items.silicon, 150));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(2f);
|
||||
consumePower(2.5f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 50, Items.tungsten, 40));
|
||||
|
||||
constructTime = 60f * 40f;
|
||||
constructTime = 60f * 45f;
|
||||
researchCostMultiplier = 0.75f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.locus},
|
||||
new UnitType[]{UnitTypes.merui, UnitTypes.cleroi},
|
||||
new UnitType[]{UnitTypes.merui, UnitTypes.cleroi}
|
||||
);
|
||||
}};
|
||||
|
||||
shipRefabricator = new Reconstructor("ship-refabricator"){{
|
||||
requirements(Category.units, with(Items.beryllium, 200, Items.tungsten, 100, Items.silicon, 150, Items.oxide, 40));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(2.5f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 60, Items.tungsten, 40));
|
||||
|
||||
constructTime = 60f * 50f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.elude, UnitTypes.avert}
|
||||
);
|
||||
}};
|
||||
@@ -4251,58 +4299,8 @@ public class Blocks{
|
||||
);
|
||||
}};
|
||||
|
||||
/*
|
||||
mechReconstructor = new Reconstructor("mech-reconstructor"){{
|
||||
requirements(Category.units, with(Items.beryllium, 250, Items.tungsten, 120, Items.silicon, 150));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(2f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 50, Items.tungsten, 40));
|
||||
|
||||
constructTime = 60f * 40f;
|
||||
researchCostMultiplier = 0.75f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.latum}
|
||||
);
|
||||
}};
|
||||
|
||||
shipReconstructor = new Reconstructor("ship-reconstructor"){{
|
||||
requirements(Category.units, with(Items.graphite, 250, Items.tungsten, 120, Items.silicon, 200));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(2.5f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 25, Items.tungsten, 25));
|
||||
|
||||
constructTime = 60f * 30f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.avert}
|
||||
);
|
||||
}};
|
||||
|
||||
tankReconstructor = new Reconstructor("tank-reconstructor"){{
|
||||
requirements(Category.units, with(Items.graphite, 150, Items.tungsten, 150, Items.silicon, 250, Items.oxide, 60));
|
||||
regionSuffix = "-dark";
|
||||
|
||||
size = 3;
|
||||
consumePower(3f);
|
||||
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||
consumeItems(with(Items.silicon, 90, Items.tungsten, 70));
|
||||
|
||||
constructTime = 60f * 60f;
|
||||
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.locus}
|
||||
);
|
||||
}};*/
|
||||
|
||||
tankAssembler = new UnitAssembler("tank-assembler"){{
|
||||
requirements(Category.units, with(Items.thorium, 500, Items.oxide, 150, Items.tungsten, 500, Items.silicon, 500));
|
||||
requirements(Category.units, with(Items.thorium, 500, Items.oxide, 150, Items.carbide, 80, Items.silicon, 500));
|
||||
regionSuffix = "-dark";
|
||||
size = 5;
|
||||
plans.add(
|
||||
@@ -4318,7 +4316,7 @@ public class Blocks{
|
||||
|
||||
//TODO requirements
|
||||
shipAssembler = new UnitAssembler("ship-assembler"){{
|
||||
requirements(Category.units, with(Items.beryllium, 700, Items.oxide, 200, Items.tungsten, 500, Items.silicon, 800, Items.thorium, 400));
|
||||
requirements(Category.units, with(Items.carbide, 100, Items.oxide, 200, Items.tungsten, 500, Items.silicon, 800, Items.thorium, 400));
|
||||
regionSuffix = "-dark";
|
||||
size = 5;
|
||||
plans.add(
|
||||
@@ -4328,12 +4326,12 @@ public class Blocks{
|
||||
areaSize = 13;
|
||||
|
||||
consumePower(3f);
|
||||
consumeLiquid(Liquids.nitrogen, 24f / 60f);
|
||||
consumeLiquid(Liquids.cyanogen, 6f / 60f);
|
||||
}};
|
||||
|
||||
//TODO requirements
|
||||
mechAssembler = new UnitAssembler("mech-assembler"){{
|
||||
requirements(Category.units, with(Items.carbide, 500, Items.thorium, 600, Items.oxide, 200, Items.tungsten, 500, Items.silicon, 900));
|
||||
requirements(Category.units, with(Items.carbide, 200, Items.thorium, 600, Items.oxide, 200, Items.tungsten, 500, Items.silicon, 900));
|
||||
regionSuffix = "-dark";
|
||||
size = 5;
|
||||
//TODO different reqs
|
||||
@@ -4344,12 +4342,12 @@ public class Blocks{
|
||||
consumePower(3f);
|
||||
areaSize = 13;
|
||||
|
||||
consumeLiquid(Liquids.nitrogen, 24f / 60f);
|
||||
consumeLiquid(Liquids.cyanogen, 9f / 60f);
|
||||
}};
|
||||
|
||||
//TODO requirements / only accept inputs
|
||||
basicAssemblerModule = new UnitAssemblerModule("basic-assembler-module"){{
|
||||
requirements(Category.units, with(Items.carbide, 300, Items.thorium, 500, Items.oxide, 200, Items.phaseFabric, 100));
|
||||
requirements(Category.units, with(Items.carbide, 300, Items.thorium, 500, Items.oxide, 200, Items.phaseFabric, 400));
|
||||
consumePower(4f);
|
||||
regionSuffix = "-dark";
|
||||
|
||||
|
||||
@@ -106,9 +106,10 @@ public class ErekirTechTree{
|
||||
//TODO further limitations
|
||||
node(payloadLoader, () -> {
|
||||
node(payloadUnloader, () -> {
|
||||
node(payloadPropulsionTower, () -> {
|
||||
//TODO replace.
|
||||
//node(payloadPropulsionTower, () -> {
|
||||
|
||||
});
|
||||
//});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -188,7 +189,7 @@ public class ErekirTechTree{
|
||||
node(cliffCrusher, () -> {
|
||||
node(siliconArcFurnace, () -> {
|
||||
node(electrolyzer, Seq.with(new OnSector(three)), () -> {
|
||||
node(oxidationChamber, Seq.with(new Research(refabricator), new OnSector(four)), () -> {
|
||||
node(oxidationChamber, Seq.with(new Research(tankRefabricator), new OnSector(four)), () -> {
|
||||
node(electricHeater, Seq.with(new OnSector(four)), () -> {
|
||||
node(heatRedirector, () -> {
|
||||
|
||||
@@ -201,14 +202,16 @@ public class ErekirTechTree{
|
||||
});
|
||||
|
||||
node(carbideCrucible, Seq.with(tmpNever), () -> {
|
||||
node(surgeCrucible, () -> {
|
||||
node(phaseSynthesizer, () -> {
|
||||
node(phaseHeater, () -> {
|
||||
node(phaseSynthesizer, () -> {
|
||||
node(phaseHeater, () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
node(surgeCrucible, () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -241,6 +244,12 @@ public class ErekirTechTree{
|
||||
});
|
||||
});
|
||||
|
||||
node(reinforcedSurgeWall, () -> {
|
||||
node(reinforcedSurgeWallLarge, () -> {
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
node(carbideWall, () -> {
|
||||
node(carbideWallLarge, () -> {
|
||||
|
||||
@@ -275,55 +284,55 @@ public class ErekirTechTree{
|
||||
});
|
||||
|
||||
node(tankFabricator, Seq.with(new Research(siliconArcFurnace), new Research(plasmaBore), new Research(turbineCondenser)), () -> {
|
||||
node(UnitTypes.stell, () -> {
|
||||
|
||||
});
|
||||
node(UnitTypes.stell);
|
||||
|
||||
node(unitRepairTower, Seq.with(new OnSector(two)), () -> {
|
||||
|
||||
});
|
||||
|
||||
node(shipFabricator, Seq.with(new OnSector(two)), () -> {
|
||||
node(UnitTypes.elude, () -> {
|
||||
|
||||
});
|
||||
node(UnitTypes.elude);
|
||||
|
||||
node(mechFabricator, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.merui, () -> {
|
||||
node(UnitTypes.merui);
|
||||
|
||||
});
|
||||
|
||||
node(refabricator, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.cleroi);
|
||||
node(UnitTypes.avert);
|
||||
node(tankRefabricator, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.locus);
|
||||
|
||||
//TODO
|
||||
node(primeRefabricator, () -> {
|
||||
node(UnitTypes.precept);
|
||||
node(UnitTypes.anthicus);
|
||||
node(UnitTypes.obviate);
|
||||
});
|
||||
node(mechRefabricator, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.cleroi);
|
||||
|
||||
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
||||
|
||||
node(UnitTypes.vanquish, () -> {
|
||||
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
||||
node(shipRefabricator, Seq.with(new OnSector(four), tmpNever), () -> {
|
||||
node(UnitTypes.avert);
|
||||
|
||||
//TODO
|
||||
node(primeRefabricator, () -> {
|
||||
node(UnitTypes.precept);
|
||||
node(UnitTypes.anthicus);
|
||||
node(UnitTypes.obviate);
|
||||
});
|
||||
});
|
||||
|
||||
node(shipAssembler, Seq.with(new OnSector(four)), () -> {
|
||||
node(UnitTypes.quell, () -> {
|
||||
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
||||
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
||||
|
||||
node(UnitTypes.vanquish, () -> {
|
||||
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
node(mechAssembler, Seq.with(tmpNever), () -> {
|
||||
node(UnitTypes.tecta, () -> {
|
||||
node(UnitTypes.collaris, Seq.with(tmpNever), () -> {
|
||||
node(shipAssembler, Seq.with(new OnSector(four)), () -> {
|
||||
node(UnitTypes.quell, () -> {
|
||||
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
node(mechAssembler, Seq.with(tmpNever), () -> {
|
||||
node(UnitTypes.tecta, () -> {
|
||||
node(UnitTypes.collaris, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -387,9 +396,6 @@ public class ErekirTechTree{
|
||||
});
|
||||
|
||||
nodeProduce(Liquids.gallium, () -> {
|
||||
nodeProduce(Items.scrap, () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2640,7 +2640,7 @@ public class UnitTypes{
|
||||
hitSize = 28f;
|
||||
treadPullOffset = 4;
|
||||
speed = 0.63f;
|
||||
health = 9000;
|
||||
health = 10000;
|
||||
armor = 20f;
|
||||
itemCapacity = 0;
|
||||
crushDamage = 13f / 5f;
|
||||
@@ -2734,7 +2734,7 @@ public class UnitTypes{
|
||||
hitSize = 46f;
|
||||
treadPullOffset = 1;
|
||||
speed = 0.48f;
|
||||
health = 20000;
|
||||
health = 22000;
|
||||
armor = 25f;
|
||||
crushDamage = 25f / 5f;
|
||||
rotateSpeed = 0.8f;
|
||||
@@ -3701,7 +3701,7 @@ public class UnitTypes{
|
||||
speed = 1.1f;
|
||||
rotateSpeed = 3.2f;
|
||||
accel = 0.1f;
|
||||
health = 3000f;
|
||||
health = 8000f;
|
||||
armor = 5f;
|
||||
hitSize = 36f;
|
||||
payloadCapacity = Mathf.sqr(3f) * tilePayload;
|
||||
@@ -3770,7 +3770,7 @@ public class UnitTypes{
|
||||
speed = 1f;
|
||||
rotateSpeed = 2f;
|
||||
accel = 0.1f;
|
||||
health = 10000f;
|
||||
health = 12000f;
|
||||
armor = 7f;
|
||||
hitSize = 46f;
|
||||
payloadCapacity = Mathf.sqr(6f) * tilePayload;
|
||||
|
||||
Reference in New Issue
Block a user