mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-18 03:37:44 +07:00
Erekir tech sector requirements
This commit is contained in:
@ -552,6 +552,7 @@ requirement.core = Destroy Enemy Core in {0}
|
|||||||
requirement.research = Research {0}
|
requirement.research = Research {0}
|
||||||
requirement.produce = Produce {0}
|
requirement.produce = Produce {0}
|
||||||
requirement.capture = Capture {0}
|
requirement.capture = Capture {0}
|
||||||
|
requirement.onplanet = Control Sector On {0}
|
||||||
launch.text = Launch
|
launch.text = Launch
|
||||||
research.multiplayer = Only the host can research items.
|
research.multiplayer = Only the host can research items.
|
||||||
map.multiplayer = Only the host can view sectors.
|
map.multiplayer = Only the host can view sectors.
|
||||||
|
@ -23,7 +23,7 @@ public class FlyingAI extends AIController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(target == null && command() == UnitCommand.attack && state.rules.waves && unit.team == state.rules.defaultTeam){
|
if(target == null && command() == UnitCommand.attack && state.rules.waves && unit.team == state.rules.defaultTeam){
|
||||||
moveTo(getClosestSpawner(), state.rules.dropZoneRadius + 120f);
|
moveTo(getClosestSpawner(), state.rules.dropZoneRadius + 130f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(command() == UnitCommand.rally){
|
if(command() == UnitCommand.rally){
|
||||||
|
@ -2377,7 +2377,7 @@ public class Blocks{
|
|||||||
|
|
||||||
coreCitadel = new CoreBlock("core-citadel"){{
|
coreCitadel = new CoreBlock("core-citadel"){{
|
||||||
//TODO cost
|
//TODO cost
|
||||||
requirements(Category.effect, with(Items.beryllium, 7000, Items.graphite, 7000, Items.tungsten, 5000, Items.carbide, 5000));
|
requirements(Category.effect, with(Items.silicon, 5000, Items.beryllium, 7000, Items.tungsten, 5000, Items.carbide, 5000));
|
||||||
|
|
||||||
unitType = UnitTypes.incite;
|
unitType = UnitTypes.incite;
|
||||||
health = 18000;
|
health = 18000;
|
||||||
@ -2391,7 +2391,7 @@ public class Blocks{
|
|||||||
|
|
||||||
coreAcropolis = new CoreBlock("core-acropolis"){{
|
coreAcropolis = new CoreBlock("core-acropolis"){{
|
||||||
//TODO cost
|
//TODO cost
|
||||||
requirements(Category.effect, with(Items.beryllium, 11000, Items.graphite, 11000, Items.tungsten, 9000, Items.carbide, 10000));
|
requirements(Category.effect, with(Items.beryllium, 11000, Items.silicon, 11000, Items.tungsten, 9000, Items.carbide, 10000, Items.oxide, 8000));
|
||||||
|
|
||||||
unitType = UnitTypes.emanate;
|
unitType = UnitTypes.emanate;
|
||||||
health = 30000;
|
health = 30000;
|
||||||
|
@ -103,7 +103,7 @@ public class Bullets{
|
|||||||
width = height = 13f;
|
width = height = 13f;
|
||||||
collidesTiles = false;
|
collidesTiles = false;
|
||||||
splashDamageRadius = 25f * 0.75f;
|
splashDamageRadius = 25f * 0.75f;
|
||||||
splashDamage = 35f;
|
splashDamage = 40f;
|
||||||
status = StatusEffects.burning;
|
status = StatusEffects.burning;
|
||||||
statusDuration = 60f * 12f;
|
statusDuration = 60f * 12f;
|
||||||
frontColor = Pal.lightishOrange;
|
frontColor = Pal.lightishOrange;
|
||||||
@ -268,7 +268,7 @@ public class Bullets{
|
|||||||
shrinkY = 0f;
|
shrinkY = 0f;
|
||||||
homingPower = 0.08f;
|
homingPower = 0.08f;
|
||||||
splashDamageRadius = 20f;
|
splashDamageRadius = 20f;
|
||||||
splashDamage = 20f * 1.5f;
|
splashDamage = 30f * 1.5f;
|
||||||
makeFire = true;
|
makeFire = true;
|
||||||
ammoMultiplier = 5f;
|
ammoMultiplier = 5f;
|
||||||
hitEffect = Fx.blastExplosion;
|
hitEffect = Fx.blastExplosion;
|
||||||
@ -334,7 +334,7 @@ public class Bullets{
|
|||||||
|
|
||||||
ammoMultiplier = 5;
|
ammoMultiplier = 5;
|
||||||
|
|
||||||
splashDamage = 10f;
|
splashDamage = 12f;
|
||||||
splashDamageRadius = 22f;
|
splashDamageRadius = 22f;
|
||||||
|
|
||||||
makeFire = true;
|
makeFire = true;
|
||||||
@ -375,8 +375,8 @@ public class Bullets{
|
|||||||
pierceBuilding = true;
|
pierceBuilding = true;
|
||||||
knockback = 0.6f;
|
knockback = 0.6f;
|
||||||
ammoMultiplier = 3;
|
ammoMultiplier = 3;
|
||||||
splashDamage = 15f;
|
splashDamage = 20f;
|
||||||
splashDamageRadius = 24f;
|
splashDamageRadius = 25f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
fireball = new FireBulletType(1f, 4);
|
fireball = new FireBulletType(1f, 4);
|
||||||
|
@ -1,11 +1,16 @@
|
|||||||
package mindustry.content;
|
package mindustry.content;
|
||||||
|
|
||||||
|
import arc.struct.*;
|
||||||
|
import mindustry.game.Objectives.*;
|
||||||
|
|
||||||
import static mindustry.content.Blocks.*;
|
import static mindustry.content.Blocks.*;
|
||||||
import static mindustry.content.TechTree.*;
|
import static mindustry.content.TechTree.*;
|
||||||
|
|
||||||
public class ErekirTechTree{
|
public class ErekirTechTree{
|
||||||
|
|
||||||
public static void load(){
|
public static void load(){
|
||||||
|
Seq<Objective> erekirSector = Seq.with(new OnPlanet(Planets.erekir));
|
||||||
|
|
||||||
Planets.erekir.techTree = nodeRoot("erekir", coreBastion, true, () -> {
|
Planets.erekir.techTree = nodeRoot("erekir", coreBastion, true, () -> {
|
||||||
node(duct, () -> {
|
node(duct, () -> {
|
||||||
node(ductRouter, () -> {
|
node(ductRouter, () -> {
|
||||||
@ -34,7 +39,7 @@ public class ErekirTechTree{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(constructor, () -> {
|
node(constructor, erekirSector, () -> {
|
||||||
node(payloadLoader, () -> {
|
node(payloadLoader, () -> {
|
||||||
node(payloadUnloader, () -> {
|
node(payloadUnloader, () -> {
|
||||||
node(payloadPropulsionTower, () -> {
|
node(payloadPropulsionTower, () -> {
|
||||||
@ -57,7 +62,7 @@ public class ErekirTechTree{
|
|||||||
|
|
||||||
node(turbineCondenser, () -> {
|
node(turbineCondenser, () -> {
|
||||||
node(beamNode, () -> {
|
node(beamNode, () -> {
|
||||||
node(ventCondenser, () -> {
|
node(ventCondenser, erekirSector, () -> {
|
||||||
node(chemicalCombustionChamber, () -> {
|
node(chemicalCombustionChamber, () -> {
|
||||||
node(pyrolysisGenerator, () -> {
|
node(pyrolysisGenerator, () -> {
|
||||||
|
|
||||||
@ -81,7 +86,7 @@ public class ErekirTechTree{
|
|||||||
|
|
||||||
node(siliconArcFurnace, () -> {
|
node(siliconArcFurnace, () -> {
|
||||||
node(cliffCrusher, () -> {
|
node(cliffCrusher, () -> {
|
||||||
node(electrolyzer, () -> {
|
node(electrolyzer, erekirSector, () -> {
|
||||||
node(oxidationChamber, () -> {
|
node(oxidationChamber, () -> {
|
||||||
node(electricHeater, () -> {
|
node(electricHeater, () -> {
|
||||||
node(heatRedirector, () -> {
|
node(heatRedirector, () -> {
|
||||||
@ -123,16 +128,14 @@ public class ErekirTechTree{
|
|||||||
//TODO move into turbine condenser?
|
//TODO move into turbine condenser?
|
||||||
node(plasmaBore, () -> {
|
node(plasmaBore, () -> {
|
||||||
|
|
||||||
node(largePlasmaBore, () -> {
|
node(impactDrill, erekirSector, () -> {
|
||||||
|
node(largePlasmaBore, () -> {
|
||||||
});
|
|
||||||
|
|
||||||
node(impactDrill, () -> {
|
|
||||||
|
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
node(reinforcedConduit, () -> {
|
node(reinforcedConduit, erekirSector, () -> {
|
||||||
node(reinforcedPump, () -> {
|
node(reinforcedPump, () -> {
|
||||||
//TODO T2 pump
|
//TODO T2 pump
|
||||||
});
|
});
|
||||||
@ -174,7 +177,6 @@ public class ErekirTechTree{
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//TODO requirements for these
|
|
||||||
node(coreCitadel, () -> {
|
node(coreCitadel, () -> {
|
||||||
node(coreAcropolis, () -> {
|
node(coreAcropolis, () -> {
|
||||||
|
|
||||||
|
@ -68,6 +68,26 @@ public class Objectives{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class OnPlanet implements Objective{
|
||||||
|
public Planet planet;
|
||||||
|
|
||||||
|
public OnPlanet(Planet planet){
|
||||||
|
this.planet = planet;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected OnPlanet(){}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean complete(){
|
||||||
|
return planet.sectors.contains(Sector::hasBase);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String display(){
|
||||||
|
return Core.bundle.format("requirement.onplanet", planet.localizedName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Defines a specific objective for a game. */
|
/** Defines a specific objective for a game. */
|
||||||
public interface Objective{
|
public interface Objective{
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ public class PayloadBlock extends Block{
|
|||||||
update = true;
|
update = true;
|
||||||
sync = true;
|
sync = true;
|
||||||
group = BlockGroup.payloads;
|
group = BlockGroup.payloads;
|
||||||
envEnabled |= Env.space;
|
envEnabled |= Env.space | Env.underwater;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean blends(Building build, int direction){
|
public static boolean blends(Building build, int direction){
|
||||||
|
@ -29,7 +29,7 @@ public class PayloadConveyor extends Block{
|
|||||||
update = true;
|
update = true;
|
||||||
outputsPayload = true;
|
outputsPayload = true;
|
||||||
noUpdateDisabled = true;
|
noUpdateDisabled = true;
|
||||||
envEnabled |= Env.space;
|
envEnabled |= Env.space | Env.underwater;
|
||||||
sync = true;
|
sync = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user