Time to begin adding the new units
This commit is contained in:
@@ -139,8 +139,11 @@ public class Blocks{
|
||||
repairPoint, repairTurret,
|
||||
|
||||
//units - erekir
|
||||
fabricator,
|
||||
tankReconstructor, shipReconstructor, mechReconstructor,
|
||||
tankFabricator, shipFabricator, mechFabricator,
|
||||
|
||||
basicReconstructor,
|
||||
//tankReconstructor, shipReconstructor, mechReconstructor,
|
||||
|
||||
tankAssembler, shipAssembler, mechAssembler,
|
||||
//TODO maybe making it 5x5 would be more appropriate, seems kinda cheap.
|
||||
basicAssemblerModule,
|
||||
@@ -4141,7 +4144,7 @@ public class Blocks{
|
||||
//endregion
|
||||
//region units - erekir
|
||||
|
||||
fabricator = new UnitFactory("fabricator"){{
|
||||
tankFabricator = new UnitFactory("tank-fabricator"){{
|
||||
requirements(Category.units, with(Items.silicon, 200, Items.beryllium, 150));
|
||||
size = 3;
|
||||
configurable = false;
|
||||
@@ -4152,6 +4155,48 @@ public class Blocks{
|
||||
consumePower(2f);
|
||||
}};
|
||||
|
||||
mechFabricator = new UnitFactory("mech-fabricator"){{
|
||||
requirements(Category.units, with(Items.silicon, 200, Items.beryllium, 150));
|
||||
size = 3;
|
||||
configurable = false;
|
||||
plans.add(new UnitPlan(UnitTypes.merui, 60f * 35f, with(Items.beryllium, 40f, Items.silicon, 50f)));
|
||||
researchCost = with(Items.beryllium, 200, Items.graphite, 80, Items.silicon, 80);
|
||||
regionSuffix = "-dark";
|
||||
fogRadius = 3;
|
||||
consumePower(2f);
|
||||
}};
|
||||
|
||||
shipFabricator = new UnitFactory("ship-fabricator"){{
|
||||
requirements(Category.units, with(Items.silicon, 200, Items.beryllium, 150));
|
||||
size = 3;
|
||||
configurable = false;
|
||||
plans.add(new UnitPlan(UnitTypes.osc, 60f * 35f, with(Items.beryllium, 40f, Items.silicon, 50f)));
|
||||
researchCost = with(Items.beryllium, 200, Items.graphite, 80, Items.silicon, 80);
|
||||
regionSuffix = "-dark";
|
||||
fogRadius = 3;
|
||||
consumePower(2f);
|
||||
}};
|
||||
|
||||
basicReconstructor = new Reconstructor("basic-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.locus},
|
||||
new UnitType[]{UnitTypes.merui, UnitTypes.latum},
|
||||
new UnitType[]{UnitTypes.osc, UnitTypes.avert}
|
||||
);
|
||||
}};
|
||||
|
||||
/*
|
||||
mechReconstructor = new Reconstructor("mech-reconstructor"){{
|
||||
requirements(Category.units, with(Items.beryllium, 250, Items.tungsten, 120, Items.silicon, 150));
|
||||
regionSuffix = "-dark";
|
||||
@@ -4199,7 +4244,7 @@ public class Blocks{
|
||||
upgrades.addAll(
|
||||
new UnitType[]{UnitTypes.stell, UnitTypes.locus}
|
||||
);
|
||||
}};
|
||||
}};*/
|
||||
|
||||
tankAssembler = new UnitAssembler("tank-assembler"){{
|
||||
requirements(Category.units, with(Items.graphite, 600, Items.beryllium, 600, Items.oxide, 250, Items.tungsten, 400, Items.silicon, 500));
|
||||
|
||||
@@ -188,7 +188,7 @@ public class ErekirTechTree{
|
||||
node(cliffCrusher, () -> {
|
||||
node(siliconArcFurnace, () -> {
|
||||
node(electrolyzer, Seq.with(new OnSector(three)), () -> {
|
||||
node(oxidationChamber, Seq.with(new Research(mechReconstructor), new OnSector(four)), () -> {
|
||||
node(oxidationChamber, Seq.with(new Research(basicReconstructor), new OnSector(four)), () -> {
|
||||
node(electricHeater, Seq.with(new OnSector(four)), () -> {
|
||||
node(heatRedirector, () -> {
|
||||
|
||||
@@ -228,7 +228,7 @@ public class ErekirTechTree{
|
||||
});
|
||||
|
||||
|
||||
node(breach, Seq.with(new Research(siliconArcFurnace), new Research(fabricator)), () -> {
|
||||
node(breach, Seq.with(new Research(siliconArcFurnace), new Research(tankFabricator)), () -> {
|
||||
node(berylliumWall, () -> {
|
||||
node(berylliumWallLarge, () -> {
|
||||
|
||||
@@ -261,7 +261,7 @@ public class ErekirTechTree{
|
||||
});
|
||||
});
|
||||
|
||||
node(radar, Seq.with(new Research(beamNode), new Research(turbineCondenser), new Research(fabricator), new OnSector(SectorPresets.two)), () -> {
|
||||
node(radar, Seq.with(new Research(beamNode), new Research(turbineCondenser), new Research(tankFabricator), new OnSector(SectorPresets.two)), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
@@ -272,44 +272,39 @@ public class ErekirTechTree{
|
||||
});
|
||||
});
|
||||
|
||||
node(fabricator, Seq.with(new Research(siliconArcFurnace), new Research(plasmaBore), new Research(turbineCondenser)), () -> {
|
||||
node(tankFabricator, Seq.with(new Research(siliconArcFurnace), new Research(plasmaBore), new Research(turbineCondenser)), () -> {
|
||||
node(UnitTypes.stell, () -> {
|
||||
|
||||
});
|
||||
|
||||
node(mechReconstructor, Seq.with(new OnSector(three)), () -> {
|
||||
node(basicReconstructor, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.latum);
|
||||
node(UnitTypes.avert);
|
||||
node(UnitTypes.locus);
|
||||
|
||||
node(shipReconstructor, Seq.with(new OnSector(three)), () -> {
|
||||
node(UnitTypes.avert);
|
||||
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
||||
node(UnitTypes.vanquish, () -> {
|
||||
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
||||
|
||||
node(tankReconstructor, () -> {
|
||||
node(UnitTypes.locus);
|
||||
});
|
||||
});
|
||||
|
||||
node(tankAssembler, Seq.with(new OnSector(three), new Research(constructor), new Research(atmosphericConcentrator)), () -> {
|
||||
node(UnitTypes.vanquish, () -> {
|
||||
node(UnitTypes.conquer, Seq.with(tmpNever), () -> {
|
||||
node(shipAssembler, Seq.with(new OnSector(five)), () -> {
|
||||
node(UnitTypes.quell, () -> {
|
||||
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
node(shipAssembler, Seq.with(new OnSector(five)), () -> {
|
||||
node(UnitTypes.quell, () -> {
|
||||
node(UnitTypes.disrupt, Seq.with(tmpNever), () -> {
|
||||
node(mechAssembler, Seq.with(tmpNever), () -> {
|
||||
node(UnitTypes.bulwark, () -> {
|
||||
node(UnitTypes.krepost, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
node(mechAssembler, Seq.with(tmpNever), () -> {
|
||||
node(UnitTypes.bulwark, () -> {
|
||||
node(UnitTypes.krepost, Seq.with(tmpNever), () -> {
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -151,7 +151,7 @@ public class SectorPresets{
|
||||
new TextMarker("The arc furnace needs [accent]sand[] and [accent]graphite[] to create [accent]silicon[].\n[accent]Power[] is also required.", 268f * 8f, 101f * 8f),
|
||||
new TextMarker("Use [accent]cliff crushers[] to mine sand.", 262f * 8f, 88f * 8f)
|
||||
),
|
||||
new BuildCountObjective(Blocks.fabricator, 1).withMarkers(
|
||||
new BuildCountObjective(Blocks.tankFabricator, 1).withMarkers(
|
||||
new TextMarker("Use [accent]units[] to explore the map, defend buildings, and go on the offensive.\n Research and place a [accent]fabricator[]", 258f * 8f, 116f * 8f)
|
||||
),
|
||||
new UnitCountObjective(UnitTypes.stell, 1).withMarkers(
|
||||
|
||||
@@ -38,7 +38,7 @@ public class UnitTypes{
|
||||
|
||||
//legs
|
||||
public static @EntityDef({Unitc.class, Legsc.class}) UnitType corvus, atrax,
|
||||
latum, anthicus,
|
||||
merui, latum, anthicus,
|
||||
bulwark, krepost;
|
||||
|
||||
//legs, legacy
|
||||
@@ -46,7 +46,8 @@ public class UnitTypes{
|
||||
|
||||
//air
|
||||
public static @EntityDef({Unitc.class}) UnitType flare, eclipse, horizon, zenith, antumbra,
|
||||
evoke, avert, obviate;
|
||||
evoke, avert, obviate,
|
||||
osc;
|
||||
|
||||
//air, legacy
|
||||
public static @EntityDef(value = {Unitc.class}, legacy = true) UnitType mono;
|
||||
@@ -2829,6 +2830,35 @@ public class UnitTypes{
|
||||
//endregion
|
||||
//region erekir - mech
|
||||
|
||||
merui = new ErekirUnitType("merui"){{
|
||||
speed = 0.75f;
|
||||
drag = 0.1f;
|
||||
hitSize = 9f;
|
||||
rotateSpeed = 3.5f;
|
||||
health = 700;
|
||||
armor = 5f;
|
||||
|
||||
legCount = 6;
|
||||
legLength = 8f;
|
||||
lockLegBase = true;
|
||||
legContinuousMove = true;
|
||||
legExtension = -2f;
|
||||
legBaseOffset = 3f;
|
||||
maxStretch = 1.1f;
|
||||
maxCompress = 0.2f;
|
||||
legLengthScl = 0.96f;
|
||||
legTrns = 1.1f;
|
||||
legGroupSize = 3;
|
||||
rippleScale = 0.2f;
|
||||
|
||||
legMoveSpace = 1f;
|
||||
hovering = true;
|
||||
|
||||
visualElevation = 0.1f;
|
||||
groundLayer = Layer.legUnit - 1f;
|
||||
|
||||
}};
|
||||
|
||||
latum = new ErekirUnitType("latum"){{
|
||||
speed = 0.7f;
|
||||
drag = 0.1f;
|
||||
@@ -3300,6 +3330,25 @@ public class UnitTypes{
|
||||
//endregion
|
||||
//region erekir - flying
|
||||
|
||||
osc = new ErekirUnitType("osc"){{
|
||||
//TODO needs hover passability like legs - move into UnitType?
|
||||
hovering = true;
|
||||
visualElevation = 0.1f;
|
||||
|
||||
drag = 0.08f;
|
||||
speed = 2f;
|
||||
rotateSpeed = 6f;
|
||||
|
||||
accel = 0.09f;
|
||||
health = 600f;
|
||||
armor = 3f;
|
||||
hitSize = 7f;
|
||||
engineOffset = 7f;
|
||||
engineSize = 2f;
|
||||
itemCapacity = 0;
|
||||
useEngineElevation = false;
|
||||
}};
|
||||
|
||||
avert = new ErekirUnitType("avert"){{
|
||||
lowAltitude = false;
|
||||
flying = true;
|
||||
|
||||
Reference in New Issue
Block a user