Campaign balancing
This commit is contained in:
@@ -88,7 +88,7 @@ public class Vars implements Loadable{
|
||||
/** duration of time between turns in ticks */
|
||||
public static final float turnDuration = 2 * Time.toMinutes;
|
||||
/** chance of an invasion per turn, 1 = 100% */
|
||||
public static final float baseInvasionChance = 1f / 90f;
|
||||
public static final float baseInvasionChance = 1f / 100f;
|
||||
/** how many turns have to pass before invasions start */
|
||||
public static final int invasionGracePeriod = 20;
|
||||
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */
|
||||
|
||||
@@ -83,7 +83,7 @@ public class SectorPresets implements ContentList{
|
||||
}};
|
||||
|
||||
desolateRift = new SectorPreset("desolateRift", serpulo, 123){{
|
||||
captureWave = 30;
|
||||
captureWave = 18;
|
||||
difficulty = 8;
|
||||
}};
|
||||
|
||||
|
||||
@@ -471,7 +471,8 @@ public class TechTree implements ContentList{
|
||||
node(desolateRift, Seq.with(
|
||||
new SectorComplete(impact0078),
|
||||
new Research(thermalGenerator),
|
||||
new Research(thoriumReactor)
|
||||
new Research(thoriumReactor),
|
||||
new Research(coreNucleus)
|
||||
), () -> {
|
||||
node(planetaryTerminal, Seq.with(
|
||||
new SectorComplete(desolateRift),
|
||||
|
||||
@@ -1252,8 +1252,8 @@ public class UnitTypes implements ContentList{
|
||||
|
||||
mineTier = 3;
|
||||
mineSpeed = 4f;
|
||||
health = 500;
|
||||
armor = 5f;
|
||||
health = 460;
|
||||
armor = 3f;
|
||||
speed = 2.5f;
|
||||
accel = 0.06f;
|
||||
drag = 0.017f;
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Weathers implements ContentList{
|
||||
baseSpeed = 5.4f;
|
||||
attrs.set(Attribute.light, -0.1f);
|
||||
attrs.set(Attribute.water, -0.1f);
|
||||
opacityMultiplier = 0.4f;
|
||||
opacityMultiplier = 0.35f;
|
||||
force = 0.1f;
|
||||
sound = Sounds.wind;
|
||||
soundVol = 0.8f;
|
||||
|
||||
@@ -311,7 +311,7 @@ public class World{
|
||||
//TODO bad code
|
||||
boolean hasSnow = floors[0].name.contains("ice") || floors[0].name.contains("snow");
|
||||
boolean hasRain = !hasSnow && content.contains(Liquids.water) && !floors[0].name.contains("sand");
|
||||
boolean hasDesert = !hasSnow && !hasRain && floors[0].name.contains("sand");
|
||||
boolean hasDesert = !hasSnow && !hasRain && floors[0] == Blocks.sand;
|
||||
boolean hasSpores = floors[0].name.contains("spore") || floors[0].name.contains("moss") || floors[0].name.contains("tainted");
|
||||
|
||||
if(hasSnow){
|
||||
|
||||
@@ -17,7 +17,7 @@ import mindustry.ui.*;
|
||||
|
||||
public class WaveGraph extends Table{
|
||||
public Seq<SpawnGroup> groups = new Seq<>();
|
||||
public int from, to = 20;
|
||||
public int from = 0, to = 20;
|
||||
|
||||
private Mode mode = Mode.counts;
|
||||
private int[][] values;
|
||||
@@ -114,7 +114,7 @@ public class WaveGraph extends Table{
|
||||
|
||||
Lines.line(cx, cy, cx, cy + len);
|
||||
if(i == values.length/2){
|
||||
font.draw("" + (i + from), cx, cy - 2f, Align.center);
|
||||
font.draw("" + (i + from + 1), cx, cy - 2f, Align.center);
|
||||
}
|
||||
}
|
||||
font.setColor(Color.white);
|
||||
|
||||
@@ -382,7 +382,7 @@ public class SectorDamage{
|
||||
for(Tile tile : tiles){
|
||||
if((tile.block() instanceof CoreBlock && tile.team() == state.rules.waveTeam) || tile.overlay() == Blocks.spawn){
|
||||
frontier.add(tile);
|
||||
values[tile.x][tile.y] = fraction * 26;
|
||||
values[tile.x][tile.y] = fraction * 24;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ package mindustry.maps.planet;
|
||||
import arc.graphics.*;
|
||||
import arc.math.*;
|
||||
import arc.math.geom.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.maps.generators.*;
|
||||
|
||||
public class TantrosPlanetGenerator extends PlanetGenerator{
|
||||
@@ -18,4 +20,13 @@ public class TantrosPlanetGenerator extends PlanetGenerator{
|
||||
float depth = (float)noise.octaveNoise3D(2, 0.56, 1.7f, position.x, position.y, position.z) / 2f;
|
||||
return c1.write(out).lerp(c2, Mathf.clamp(Mathf.round(depth, 0.15f))).a(0.6f);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void generate(){
|
||||
pass((x, y) -> {
|
||||
floor = Blocks.deepwater;
|
||||
});
|
||||
|
||||
Schematics.placeLaunchLoadout(width / 2, height / 2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@ public class Conveyor extends Block implements Autotiler{
|
||||
if(len >= capacity) return false;
|
||||
Tile facing = Edges.getFacingEdge(source.tile, tile);
|
||||
int direction = Math.abs(facing.relativeTo(tile.x, tile.y) - rotation);
|
||||
return (((direction == 0) && minitem >= itemSpace) || ((direction % 2 == 1) && minitem > 0.7f)) && !(source.block.rotate && (source.rotation + 2) % 4 == rotation);
|
||||
return (((direction == 0) && minitem >= itemSpace) || ((direction % 2 == 1) && minitem > 0.7f)) && !(source.block.rotate && next == source);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -93,7 +93,7 @@ public class ItemBridge extends Block{
|
||||
Draw.reset();
|
||||
Draw.color(Pal.placing);
|
||||
Lines.stroke(1f);
|
||||
if(link != null){
|
||||
if(link != null && Math.abs(link.x - x) + Math.abs(link.y - y) > 1){
|
||||
int rot = link.absoluteRelativeTo(x, y);
|
||||
float w = (link.x == x ? tilesize : Math.abs(link.x - x) * tilesize - tilesize);
|
||||
float h = (link.y == y ? tilesize : Math.abs(link.y - y) * tilesize - tilesize);
|
||||
@@ -145,7 +145,7 @@ public class ItemBridge extends Block{
|
||||
if(config != null) return;
|
||||
|
||||
Tile link = findLink(tile.x, tile.y);
|
||||
if(linkValid(tile, link)){
|
||||
if(linkValid(tile, link) && !proximity.contains(link.build)){
|
||||
link.build.configure(tile.pos());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user