Campaign balancing

This commit is contained in:
Anuken
2020-11-27 17:37:22 -05:00
parent d06b32c20b
commit 66918f0322
13 changed files with 25 additions and 13 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -88,7 +88,7 @@ public class Vars implements Loadable{
/** duration of time between turns in ticks */ /** duration of time between turns in ticks */
public static final float turnDuration = 2 * Time.toMinutes; public static final float turnDuration = 2 * Time.toMinutes;
/** chance of an invasion per turn, 1 = 100% */ /** 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 */ /** how many turns have to pass before invasions start */
public static final int invasionGracePeriod = 20; public static final int invasionGracePeriod = 20;
/** min armor fraction damage; e.g. 0.05 = at least 5% damage */ /** min armor fraction damage; e.g. 0.05 = at least 5% damage */

View File

@@ -83,7 +83,7 @@ public class SectorPresets implements ContentList{
}}; }};
desolateRift = new SectorPreset("desolateRift", serpulo, 123){{ desolateRift = new SectorPreset("desolateRift", serpulo, 123){{
captureWave = 30; captureWave = 18;
difficulty = 8; difficulty = 8;
}}; }};

View File

@@ -471,7 +471,8 @@ public class TechTree implements ContentList{
node(desolateRift, Seq.with( node(desolateRift, Seq.with(
new SectorComplete(impact0078), new SectorComplete(impact0078),
new Research(thermalGenerator), new Research(thermalGenerator),
new Research(thoriumReactor) new Research(thoriumReactor),
new Research(coreNucleus)
), () -> { ), () -> {
node(planetaryTerminal, Seq.with( node(planetaryTerminal, Seq.with(
new SectorComplete(desolateRift), new SectorComplete(desolateRift),

View File

@@ -1252,8 +1252,8 @@ public class UnitTypes implements ContentList{
mineTier = 3; mineTier = 3;
mineSpeed = 4f; mineSpeed = 4f;
health = 500; health = 460;
armor = 5f; armor = 3f;
speed = 2.5f; speed = 2.5f;
accel = 0.06f; accel = 0.06f;
drag = 0.017f; drag = 0.017f;

View File

@@ -53,7 +53,7 @@ public class Weathers implements ContentList{
baseSpeed = 5.4f; baseSpeed = 5.4f;
attrs.set(Attribute.light, -0.1f); attrs.set(Attribute.light, -0.1f);
attrs.set(Attribute.water, -0.1f); attrs.set(Attribute.water, -0.1f);
opacityMultiplier = 0.4f; opacityMultiplier = 0.35f;
force = 0.1f; force = 0.1f;
sound = Sounds.wind; sound = Sounds.wind;
soundVol = 0.8f; soundVol = 0.8f;

View File

@@ -311,7 +311,7 @@ public class World{
//TODO bad code //TODO bad code
boolean hasSnow = floors[0].name.contains("ice") || floors[0].name.contains("snow"); 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 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"); boolean hasSpores = floors[0].name.contains("spore") || floors[0].name.contains("moss") || floors[0].name.contains("tainted");
if(hasSnow){ if(hasSnow){

View File

@@ -17,7 +17,7 @@ import mindustry.ui.*;
public class WaveGraph extends Table{ public class WaveGraph extends Table{
public Seq<SpawnGroup> groups = new Seq<>(); public Seq<SpawnGroup> groups = new Seq<>();
public int from, to = 20; public int from = 0, to = 20;
private Mode mode = Mode.counts; private Mode mode = Mode.counts;
private int[][] values; private int[][] values;
@@ -114,7 +114,7 @@ public class WaveGraph extends Table{
Lines.line(cx, cy, cx, cy + len); Lines.line(cx, cy, cx, cy + len);
if(i == values.length/2){ 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); font.setColor(Color.white);

View File

@@ -382,7 +382,7 @@ public class SectorDamage{
for(Tile tile : tiles){ for(Tile tile : tiles){
if((tile.block() instanceof CoreBlock && tile.team() == state.rules.waveTeam) || tile.overlay() == Blocks.spawn){ if((tile.block() instanceof CoreBlock && tile.team() == state.rules.waveTeam) || tile.overlay() == Blocks.spawn){
frontier.add(tile); frontier.add(tile);
values[tile.x][tile.y] = fraction * 26; values[tile.x][tile.y] = fraction * 24;
} }
} }

View File

@@ -3,6 +3,8 @@ 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 mindustry.content.*;
import mindustry.game.*;
import mindustry.maps.generators.*; import mindustry.maps.generators.*;
public class TantrosPlanetGenerator extends PlanetGenerator{ 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; 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); 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);
}
} }

View File

@@ -311,7 +311,7 @@ public class Conveyor extends Block implements Autotiler{
if(len >= capacity) return false; if(len >= capacity) return false;
Tile facing = Edges.getFacingEdge(source.tile, tile); Tile facing = Edges.getFacingEdge(source.tile, tile);
int direction = Math.abs(facing.relativeTo(tile.x, tile.y) - rotation); 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 @Override

View File

@@ -93,7 +93,7 @@ public class ItemBridge extends Block{
Draw.reset(); Draw.reset();
Draw.color(Pal.placing); Draw.color(Pal.placing);
Lines.stroke(1f); 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); int rot = link.absoluteRelativeTo(x, y);
float w = (link.x == x ? tilesize : Math.abs(link.x - x) * tilesize - tilesize); 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); 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; if(config != null) return;
Tile link = findLink(tile.x, tile.y); Tile link = findLink(tile.x, tile.y);
if(linkValid(tile, link)){ if(linkValid(tile, link) && !proximity.contains(link.build)){
link.build.configure(tile.pos()); link.build.configure(tile.pos());
} }