Initial Erekir tech tree
|
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 351 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -4,7 +4,6 @@ import arc.graphics.*;
|
|||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.ctype.*;
|
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
import mindustry.entities.bullet.*;
|
import mindustry.entities.bullet.*;
|
||||||
import mindustry.entities.effect.*;
|
import mindustry.entities.effect.*;
|
||||||
@@ -59,11 +58,12 @@ public class Blocks{
|
|||||||
wallOreBeryl, graphiticWall,
|
wallOreBeryl, graphiticWall,
|
||||||
|
|
||||||
//crafting
|
//crafting
|
||||||
siliconSmelter, siliconCrucible, siliconArcFurnace, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer,
|
siliconSmelter, siliconCrucible, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer,
|
||||||
melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge,
|
melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge,
|
||||||
|
|
||||||
//erekir
|
//erekir
|
||||||
electrolyzer, oxidationChamber, atmosphericConcentrator, slagHeater, slagIncinerator, heatReactor, carbideCrucible, slagCentrifuge, surgeCrucible, cyanogenSynthesizer, phaseSynthesizer,
|
siliconArcFurnace, electrolyzer, oxidationChamber, atmosphericConcentrator, slagHeater, slagIncinerator, heatReactor,
|
||||||
|
carbideCrucible, slagCentrifuge, surgeCrucible, cyanogenSynthesizer, phaseSynthesizer,
|
||||||
cellSynthesisChamber,
|
cellSynthesisChamber,
|
||||||
|
|
||||||
//sandbox
|
//sandbox
|
||||||
@@ -726,9 +726,8 @@ public class Blocks{
|
|||||||
consumes.power(4f);
|
consumes.power(4f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//TODO
|
|
||||||
siliconArcFurnace = new GenericCrafter("silicon-arc-furnace"){{
|
siliconArcFurnace = new GenericCrafter("silicon-arc-furnace"){{
|
||||||
requirements(Category.crafting, with(Items.thorium, 200, Items.beryllium, 40, Items.tungsten, 80));
|
requirements(Category.crafting, with(Items.beryllium, 60, Items.graphite, 80));
|
||||||
craftEffect = Fx.none;
|
craftEffect = Fx.none;
|
||||||
outputItem = new ItemStack(Items.silicon, 5);
|
outputItem = new ItemStack(Items.silicon, 5);
|
||||||
craftTime = 40f;
|
craftTime = 40f;
|
||||||
@@ -952,7 +951,7 @@ public class Blocks{
|
|||||||
|
|
||||||
//TODO better name
|
//TODO better name
|
||||||
electrolyzer = new GenericCrafter("electrolyzer"){{
|
electrolyzer = new GenericCrafter("electrolyzer"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
|
requirements(Category.crafting, with(Items.silicon, 50, Items.graphite, 40, Items.beryllium, 40));
|
||||||
size = 3;
|
size = 3;
|
||||||
|
|
||||||
craftTime = 10f;
|
craftTime = 10f;
|
||||||
@@ -989,7 +988,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
atmosphericConcentrator = new HeatCrafter("atmospheric-concentrator"){{
|
atmosphericConcentrator = new HeatCrafter("atmospheric-concentrator"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
|
requirements(Category.crafting, with(Items.oxide, 50, Items.beryllium, 30, Items.silicon, 40));
|
||||||
size = 3;
|
size = 3;
|
||||||
craftTime = 10f;
|
craftTime = 10f;
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
@@ -1013,7 +1012,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
oxidationChamber = new HeatProducer("oxidation-chamber"){{
|
oxidationChamber = new HeatProducer("oxidation-chamber"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
|
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 40, Items.silicon, 50));
|
||||||
size = 3;
|
size = 3;
|
||||||
|
|
||||||
outputItem = new ItemStack(Items.oxide, 1);
|
outputItem = new ItemStack(Items.oxide, 1);
|
||||||
@@ -1053,7 +1052,7 @@ public class Blocks{
|
|||||||
|
|
||||||
heatReactor = new HeatProducer("heat-reactor"){{
|
heatReactor = new HeatProducer("heat-reactor"){{
|
||||||
//TODO gas/liquid requirement?
|
//TODO gas/liquid requirement?
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
|
requirements(Category.crafting, with(Items.oxide, 70, Items.graphite, 20, Items.carbide, 10, Items.thorium, 80));
|
||||||
size = 3;
|
size = 3;
|
||||||
craftTime = 60f * 10f;
|
craftTime = 60f * 10f;
|
||||||
|
|
||||||
@@ -1065,7 +1064,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
carbideCrucible = new HeatCrafter("carbide-crucible"){{
|
carbideCrucible = new HeatCrafter("carbide-crucible"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 30));
|
requirements(Category.crafting, with(Items.tungsten, 90, Items.thorium, 70, Items.oxide, 50));
|
||||||
craftEffect = Fx.none;
|
craftEffect = Fx.none;
|
||||||
outputItem = new ItemStack(Items.carbide, 1);
|
outputItem = new ItemStack(Items.carbide, 1);
|
||||||
craftTime = 60f * 3f;
|
craftTime = 60f * 3f;
|
||||||
@@ -1115,9 +1114,8 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
//TODO should have a useful turret ammo byproduct? scrap?
|
//TODO should have a useful turret ammo byproduct? scrap?
|
||||||
//original: consumes.items(with(Items.copper, 3, Items.lead, 4, Items.titanium, 2, Items.silicon, 3));
|
|
||||||
surgeCrucible = new HeatCrafter("surge-crucible"){{
|
surgeCrucible = new HeatCrafter("surge-crucible"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 60, Items.carbide, 30));
|
requirements(Category.crafting, with(Items.silicon, 100, Items.graphite, 80, Items.carbide, 60, Items.thorium, 90));
|
||||||
|
|
||||||
size = 3;
|
size = 3;
|
||||||
|
|
||||||
@@ -1156,7 +1154,7 @@ public class Blocks{
|
|||||||
|
|
||||||
cyanogenSynthesizer = new HeatCrafter("cyanogen-synthesizer"){{
|
cyanogenSynthesizer = new HeatCrafter("cyanogen-synthesizer"){{
|
||||||
//TODO requirements
|
//TODO requirements
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 60, Items.carbide, 30));
|
requirements(Category.crafting, with(Items.carbide, 50, Items.silicon, 80, Items.beryllium, 80));
|
||||||
|
|
||||||
heatRequirement = 5f;
|
heatRequirement = 5f;
|
||||||
|
|
||||||
@@ -1185,9 +1183,9 @@ public class Blocks{
|
|||||||
consumes.power(2f);
|
consumes.power(2f);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//TODO bad name
|
//TODO bad name, and there's no use for phase yet...
|
||||||
phaseSynthesizer = new HeatCrafter("phase-synthesizer"){{
|
phaseSynthesizer = new HeatCrafter("phase-synthesizer"){{
|
||||||
requirements(Category.crafting, with(Items.tungsten, 60, Items.graphite, 60, Items.carbide, 30));
|
requirements(Category.crafting, with(Items.surgeAlloy, 60, Items.carbide, 40, Items.silicon, 80, Items.thorium, 80));
|
||||||
|
|
||||||
size = 3;
|
size = 3;
|
||||||
|
|
||||||
@@ -1446,7 +1444,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
buildTower = new BuildTurret("build-tower"){{
|
buildTower = new BuildTurret("build-tower"){{
|
||||||
requirements(Category.effect, with(Items.graphite, 40, Items.beryllium, 50));
|
requirements(Category.effect, with(Items.silicon, 60, Items.tungsten, 60, Items.oxide, 40));
|
||||||
outlineColor = Pal.darkOutline;
|
outlineColor = Pal.darkOutline;
|
||||||
consumes.power(3f);
|
consumes.power(3f);
|
||||||
range = 120f;
|
range = 120f;
|
||||||
@@ -1574,17 +1572,17 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
ductBridge = new DuctBridge("duct-bridge"){{
|
ductBridge = new DuctBridge("duct-bridge"){{
|
||||||
requirements(Category.distribution, with(Items.graphite, 15));
|
requirements(Category.distribution, with(Items.graphite, 15, Items.tungsten, 5));
|
||||||
speed = 4f;
|
speed = 4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
ductUnloader = new DirectionalUnloader("duct-unloader"){{
|
ductUnloader = new DirectionalUnloader("duct-unloader"){{
|
||||||
requirements(Category.distribution, with(Items.graphite, 20, Items.silicon, 20));
|
requirements(Category.distribution, with(Items.graphite, 20, Items.silicon, 20, Items.tungsten, 10));
|
||||||
speed = 4f;
|
speed = 4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
surgeConveyor = new StackConveyor("surge-conveyor"){{
|
surgeConveyor = new StackConveyor("surge-conveyor"){{
|
||||||
requirements(Category.distribution, with(Items.surgeAlloy, 3, Items.graphite, 5));
|
requirements(Category.distribution, with(Items.surgeAlloy, 3, Items.oxide, 5));
|
||||||
health = 90;
|
health = 90;
|
||||||
//TODO different base speed/item capacity?
|
//TODO different base speed/item capacity?
|
||||||
speed = 5f / 60f;
|
speed = 5f / 60f;
|
||||||
@@ -1599,7 +1597,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
surgeRouter = new StackRouter("surge-router"){{
|
surgeRouter = new StackRouter("surge-router"){{
|
||||||
requirements(Category.distribution, with(Items.graphite, 10, Items.surgeAlloy, 10));
|
requirements(Category.distribution, with(Items.oxide, 10, Items.surgeAlloy, 10));
|
||||||
|
|
||||||
speed = 6f;
|
speed = 6f;
|
||||||
|
|
||||||
@@ -1703,7 +1701,7 @@ public class Blocks{
|
|||||||
|
|
||||||
//TODO different name
|
//TODO different name
|
||||||
reinforcedPump = new Pump("reinforced-pump"){{
|
reinforcedPump = new Pump("reinforced-pump"){{
|
||||||
requirements(Category.liquid, with(Items.beryllium, 70, Items.tungsten, 20, Items.silicon, 20));
|
requirements(Category.liquid, with(Items.beryllium, 40, Items.tungsten, 30, Items.silicon, 20));
|
||||||
//TODO CUSTOM DRAW ANIMATION - pistons - repurpose DrawBlock?
|
//TODO CUSTOM DRAW ANIMATION - pistons - repurpose DrawBlock?
|
||||||
consumes.liquid(Liquids.hydrogen, 1.5f / 60f);
|
consumes.liquid(Liquids.hydrogen, 1.5f / 60f);
|
||||||
|
|
||||||
@@ -1713,7 +1711,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
reinforcedConduit = new ArmoredConduit("reinforced-conduit"){{
|
reinforcedConduit = new ArmoredConduit("reinforced-conduit"){{
|
||||||
requirements(Category.liquid, with(Items.beryllium, 2, Items.graphite, 1));
|
requirements(Category.liquid, with(Items.beryllium, 2));
|
||||||
botColor = Pal.darkestMetal;
|
botColor = Pal.darkestMetal;
|
||||||
leaks = true;
|
leaks = true;
|
||||||
liquidCapacity = 20f;
|
liquidCapacity = 20f;
|
||||||
@@ -1722,14 +1720,16 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
//TODO is this necessary? junctions are not good design
|
//TODO is this necessary? junctions are not good design
|
||||||
|
//TODO make it leak
|
||||||
reinforcedLiquidJunction = new LiquidJunction("reinforced-liquid-junction"){{
|
reinforcedLiquidJunction = new LiquidJunction("reinforced-liquid-junction"){{
|
||||||
requirements(Category.liquid, with(Items.graphite, 3, Items.beryllium, 3));
|
requirements(Category.liquid, with(Items.tungsten, 4, Items.beryllium, 8));
|
||||||
|
buildCostMultiplier = 3f;
|
||||||
health = 260;
|
health = 260;
|
||||||
((Conduit)reinforcedConduit).junctionReplacement = this;
|
((Conduit)reinforcedConduit).junctionReplacement = this;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
reinforcedBridgeConduit = new DirectionLiquidBridge("reinforced-bridge-conduit"){{
|
reinforcedBridgeConduit = new DirectionLiquidBridge("reinforced-bridge-conduit"){{
|
||||||
requirements(Category.liquid, with(Items.graphite, 4, Items.beryllium, 8));
|
requirements(Category.liquid, with(Items.tungsten, 6, Items.beryllium, 10));
|
||||||
range = 4;
|
range = 4;
|
||||||
hasPower = false;
|
hasPower = false;
|
||||||
|
|
||||||
@@ -1737,14 +1737,15 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
reinforcedLiquidRouter = new LiquidRouter("reinforced-liquid-router"){{
|
reinforcedLiquidRouter = new LiquidRouter("reinforced-liquid-router"){{
|
||||||
requirements(Category.liquid, with(Items.graphite, 4, Items.beryllium, 2));
|
requirements(Category.liquid, with(Items.tungsten, 4, Items.beryllium, 4));
|
||||||
liquidCapacity = 30f;
|
liquidCapacity = 30f;
|
||||||
newDrawing = true;
|
newDrawing = true;
|
||||||
liquidPadding = 3f/4f;
|
liquidPadding = 3f/4f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
//TODO is there a need for a container if unloaders can unload 3x3s?
|
||||||
reinforcedLiquidContainer = new LiquidRouter("reinforced-liquid-container"){{
|
reinforcedLiquidContainer = new LiquidRouter("reinforced-liquid-container"){{
|
||||||
requirements(Category.liquid, with(Items.graphite, 10, Items.beryllium, 15));
|
requirements(Category.liquid, with(Items.tungsten, 10, Items.beryllium, 16));
|
||||||
liquidCapacity = 1000f;
|
liquidCapacity = 1000f;
|
||||||
size = 2;
|
size = 2;
|
||||||
newDrawing = true;
|
newDrawing = true;
|
||||||
@@ -1752,7 +1753,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
reinforcedLiquidTank = new LiquidRouter("reinforced-liquid-tank"){{
|
reinforcedLiquidTank = new LiquidRouter("reinforced-liquid-tank"){{
|
||||||
requirements(Category.liquid, with(Items.tungsten, 30, Items.beryllium, 40));
|
requirements(Category.liquid, with(Items.tungsten, 40, Items.beryllium, 50));
|
||||||
size = 3;
|
size = 3;
|
||||||
liquidCapacity = 2700f;
|
liquidCapacity = 2700f;
|
||||||
newDrawing = true;
|
newDrawing = true;
|
||||||
@@ -1794,14 +1795,14 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
batteryLarge = new Battery("battery-large"){{
|
batteryLarge = new Battery("battery-large"){{
|
||||||
requirements(Category.power, with(Items.titanium, 20, Items.lead, 40, Items.silicon, 20));
|
requirements(Category.power, with(Items.titanium, 20, Items.lead, 50, Items.silicon, 30));
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.powerBuffered(50000f);
|
consumes.powerBuffered(50000f);
|
||||||
baseExplosiveness = 5f;
|
baseExplosiveness = 5f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
beamNode = new BeamNode("beam-node"){{
|
beamNode = new BeamNode("beam-node"){{
|
||||||
requirements(Category.power, with(Items.graphite, 1, Items.beryllium, 3));
|
requirements(Category.power, with(Items.graphite, 5, Items.beryllium, 3));
|
||||||
consumesPower = outputsPower = true;
|
consumesPower = outputsPower = true;
|
||||||
consumes.powerBuffered(1000f);
|
consumes.powerBuffered(1000f);
|
||||||
range = 10;
|
range = 10;
|
||||||
@@ -1809,7 +1810,7 @@ public class Blocks{
|
|||||||
|
|
||||||
//TODO requirements
|
//TODO requirements
|
||||||
beamTower = new BeamNode("beam-tower"){{
|
beamTower = new BeamNode("beam-tower"){{
|
||||||
requirements(Category.power, with(Items.graphite, 10, Items.beryllium, 30));
|
requirements(Category.power, with(Items.beryllium, 30, Items.oxide, 20, Items.silicon, 10));
|
||||||
size = 3;
|
size = 3;
|
||||||
consumesPower = outputsPower = true;
|
consumesPower = outputsPower = true;
|
||||||
consumes.powerBuffered(40000f);
|
consumes.powerBuffered(40000f);
|
||||||
@@ -1909,7 +1910,7 @@ public class Blocks{
|
|||||||
|
|
||||||
//TODO work on sprite, green bits?
|
//TODO work on sprite, green bits?
|
||||||
turbineCondenser = new ThermalGenerator("turbine-condenser"){{
|
turbineCondenser = new ThermalGenerator("turbine-condenser"){{
|
||||||
requirements(Category.power, with(Items.graphite, 35, Items.beryllium, 25));
|
requirements(Category.power, with(Items.graphite, 40, Items.beryllium, 40));
|
||||||
attribute = Attribute.vent;
|
attribute = Attribute.vent;
|
||||||
displayEfficiencyScale = 1f / 9f;
|
displayEfficiencyScale = 1f / 9f;
|
||||||
minEfficiency = 9f - 0.0001f;
|
minEfficiency = 9f - 0.0001f;
|
||||||
@@ -2052,7 +2053,8 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
cliffCrusher = new WallCrafter("cliff-crusher"){{
|
cliffCrusher = new WallCrafter("cliff-crusher"){{
|
||||||
requirements(Category.production, with(Items.copper, 10));
|
requirements(Category.production, with(Items.graphite, 20, Items.beryllium, 20));
|
||||||
|
|
||||||
consumes.power(0.9f);
|
consumes.power(0.9f);
|
||||||
|
|
||||||
drillTime = 110f;
|
drillTime = 110f;
|
||||||
@@ -2062,7 +2064,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
plasmaBore = new BeamDrill("plasma-bore"){{
|
plasmaBore = new BeamDrill("plasma-bore"){{
|
||||||
requirements(Category.production, with(Items.graphite, 20, Items.beryllium, 10));
|
requirements(Category.production, with(Items.graphite, 20, Items.beryllium, 30));
|
||||||
consumes.power(0.2f);
|
consumes.power(0.2f);
|
||||||
drillTime = 200f;
|
drillTime = 200f;
|
||||||
tier = 4;
|
tier = 4;
|
||||||
@@ -2658,8 +2660,9 @@ public class Blocks{
|
|||||||
consumes.add(new ConsumeCoolant(0.5f)).update(false);
|
consumes.add(new ConsumeCoolant(0.5f)).update(false);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
//TODO tungsten?
|
||||||
breach = new ItemTurret("breach"){{
|
breach = new ItemTurret("breach"){{
|
||||||
requirements(Category.turret, with(Items.beryllium, 35), true);
|
requirements(Category.turret, with(Items.beryllium, 35, Items.silicon, 20), true);
|
||||||
ammo(
|
ammo(
|
||||||
Items.beryllium, new BasicBulletType(7f, 30){{
|
Items.beryllium, new BasicBulletType(7f, 30){{
|
||||||
width = 8f;
|
width = 8f;
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ public class ErekirTechTree{
|
|||||||
});
|
});
|
||||||
|
|
||||||
node(overflowDuct, () -> {
|
node(overflowDuct, () -> {
|
||||||
|
node(ductUnloader, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(reinforcedContainer, () -> {
|
node(reinforcedContainer, () -> {
|
||||||
@@ -25,7 +27,154 @@ public class ErekirTechTree{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(constructor, () -> {
|
||||||
|
node(payloadLoader, () -> {
|
||||||
|
node(payloadUnloader, () -> {
|
||||||
|
node(payloadPropulsionTower, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(deconstructor, () -> {
|
||||||
|
node(largeConstructor, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
node(turbineCondenser, () -> {
|
||||||
|
node(beamNode, () -> {
|
||||||
|
node(beamTower, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO more tiers of build tower or "support" structures like overdrive projectors
|
||||||
|
//TODO method of repairing blocks of damage
|
||||||
|
node(buildTower, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO where in the tech tree is the arc furnace placed? is it essential?
|
||||||
|
node(siliconArcFurnace, () -> {
|
||||||
|
node(electrolyzer, () -> {
|
||||||
|
node(oxidationChamber, () -> {
|
||||||
|
node(atmosphericConcentrator, () -> {
|
||||||
|
node(cyanogenSynthesizer, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(carbideCrucible, () -> {
|
||||||
|
node(surgeCrucible, () -> {
|
||||||
|
node(phaseSynthesizer, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(slagIncinerator, () -> {
|
||||||
|
//when is this actually needed?
|
||||||
|
node(slagHeater, () -> {
|
||||||
|
//TODO
|
||||||
|
node(slagCentrifuge, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
node(heatReactor, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO move into turbine condenser?
|
||||||
|
node(plasmaBore, () -> {
|
||||||
|
node(cliffCrusher, () -> {
|
||||||
|
//TODO req
|
||||||
|
node(largePlasmaBore, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO req
|
||||||
|
node(impactDrill, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(reinforcedConduit, () -> {
|
||||||
|
node(reinforcedPump, () -> {
|
||||||
|
//TODO T2 pump
|
||||||
|
});
|
||||||
|
|
||||||
|
node(reinforcedLiquidJunction, () -> {
|
||||||
|
node(reinforcedBridgeConduit, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
node(reinforcedLiquidRouter, () -> {
|
||||||
|
node(reinforcedLiquidContainer, () -> {
|
||||||
|
node(reinforcedLiquidTank, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
node(breach, () -> {
|
||||||
|
//fracture turret is broken and thus not listed
|
||||||
|
|
||||||
|
//TODO big tech jump here; incomplete turret
|
||||||
|
node(sublimate, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO requirements for these
|
||||||
|
node(coreCitadel, () -> {
|
||||||
|
node(coreAcropolis, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
nodeProduce(Items.beryllium, () -> {
|
||||||
|
nodeProduce(Items.oxide, () -> {
|
||||||
|
nodeProduce(Items.fissileMatter, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
nodeProduce(Liquids.ozone, () -> {
|
||||||
|
nodeProduce(Liquids.hydrogen, () -> {
|
||||||
|
//TODO how will nitrogen be gated behind the electrolyzer?
|
||||||
|
nodeProduce(Liquids.nitrogen, () -> {
|
||||||
|
nodeProduce(Liquids.cyanogen, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
nodeProduce(Items.tungsten, () -> {
|
||||||
|
nodeProduce(Items.carbide, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
//TODO does it require carbide?
|
||||||
|
nodeProduce(Liquids.gallium, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2603,21 +2603,15 @@ public class UnitTypes{
|
|||||||
//endregion
|
//endregion
|
||||||
//region internal
|
//region internal
|
||||||
|
|
||||||
block = new UnitType("block"){
|
block = new UnitType("block"){{
|
||||||
{
|
speed = 0f;
|
||||||
speed = 0f;
|
hitSize = 0f;
|
||||||
hitSize = 0f;
|
health = 1;
|
||||||
health = 1;
|
rotateSpeed = 360f;
|
||||||
rotateSpeed = 360f;
|
itemCapacity = 0;
|
||||||
itemCapacity = 0;
|
commandLimit = 0;
|
||||||
commandLimit = 0;
|
hidden = true;
|
||||||
}
|
}};
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isHidden(){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
//region neoplasm
|
//region neoplasm
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package mindustry.ctype;
|
package mindustry.ctype;
|
||||||
|
|
||||||
/** @deprecated single-method interfaces don't need to exist for content loading; just call YouList.load() directly in the order necessary. */
|
/** @deprecated single-method interfaces don't need to exist for content loading; just call YourList.load() as a static method directly in the order necessary. */
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public interface ContentList{
|
public interface ContentList{
|
||||||
/** This method should create all the content. */
|
/** This method should create all the content. */
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package mindustry.maps.planet;
|
|||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.util.noise.*;
|
import arc.util.noise.*;
|
||||||
import mindustry.ai.*;
|
import mindustry.ai.*;
|
||||||
@@ -231,5 +232,8 @@ public class ErekirPlanetGenerator extends PlanetGenerator{
|
|||||||
state.rules.attributes.set(Attribute.heat, 0.8f);
|
state.rules.attributes.set(Attribute.heat, 0.8f);
|
||||||
state.rules.environment = Env.scorching | Env.terrestrial | Env.groundWater;
|
state.rules.environment = Env.scorching | Env.terrestrial | Env.groundWater;
|
||||||
Schematics.placeLaunchLoadout(spawnX, spawnY);
|
Schematics.placeLaunchLoadout(spawnX, spawnY);
|
||||||
|
|
||||||
|
//TODO this is only for testing
|
||||||
|
state.rules.defaultTeam.items().add(Seq.with(ItemStack.with(Items.beryllium, 200, Items.graphite, 200)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,6 +137,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
/** If true, all weapons will attack the same target. */
|
/** If true, all weapons will attack the same target. */
|
||||||
public boolean singleTarget = false;
|
public boolean singleTarget = false;
|
||||||
public boolean forceMultiTarget = false;
|
public boolean forceMultiTarget = false;
|
||||||
|
public boolean hidden = false;
|
||||||
|
|
||||||
//for crawlers
|
//for crawlers
|
||||||
public int segments = 0;
|
public int segments = 0;
|
||||||
@@ -283,6 +284,11 @@ public class UnitType extends UnlockableContent{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isHidden(){
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setStats(){
|
public void setStats(){
|
||||||
Unit inst = constructor.get();
|
Unit inst = constructor.get();
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ import static mindustry.Vars.*;
|
|||||||
public class ResearchDialog extends BaseDialog{
|
public class ResearchDialog extends BaseDialog{
|
||||||
public final float nodeSize = Scl.scl(60f);
|
public final float nodeSize = Scl.scl(60f);
|
||||||
public ObjectSet<TechTreeNode> nodes = new ObjectSet<>();
|
public ObjectSet<TechTreeNode> nodes = new ObjectSet<>();
|
||||||
public TechTreeNode root = new TechTreeNode(TechTree.root, null);
|
//TODO switch root system
|
||||||
|
public TechTreeNode root = new TechTreeNode(TechTree.rootErekir, null);
|
||||||
public Rect bounds = new Rect();
|
public Rect bounds = new Rect();
|
||||||
public ItemsDisplay itemDisplay;
|
public ItemsDisplay itemDisplay;
|
||||||
public View view;
|
public View view;
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class BuildTurret extends BaseTurret{
|
|||||||
|
|
||||||
//this is super hacky, but since blocks are initialized before units it does not run into init/concurrent modification issues
|
//this is super hacky, but since blocks are initialized before units it does not run into init/concurrent modification issues
|
||||||
unitType = new UnitType("turret-unit-" + name){{
|
unitType = new UnitType("turret-unit-" + name){{
|
||||||
|
hidden = true;
|
||||||
speed = 0f;
|
speed = 0f;
|
||||||
hitSize = 0f;
|
hitSize = 0f;
|
||||||
health = 1;
|
health = 1;
|
||||||
|
|||||||