Exploit fixes
This commit is contained in:
@@ -9,7 +9,6 @@ import io.anuke.mindustry.content.Items;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.generation.WorldGenerator.GenResult;
|
||||
import io.anuke.mindustry.maps.missions.BattleMission;
|
||||
import io.anuke.mindustry.maps.missions.WaveMission;
|
||||
import io.anuke.mindustry.world.ColorMapper;
|
||||
import io.anuke.mindustry.world.Edges;
|
||||
@@ -135,13 +134,10 @@ public class Sectors{
|
||||
private void initSector(Sector sector){
|
||||
sector.difficulty = (int)(Mathf.dst(sector.x, sector.y)/2);
|
||||
|
||||
if(sector.difficulty < 1){
|
||||
sector.missions.add(new WaveMission(30));
|
||||
if(sector.difficulty == 0){
|
||||
sector.missions.add(new WaveMission(10));
|
||||
}else{
|
||||
sector.missions.add(Mathf.choose(
|
||||
new BattleMission(sector.difficulty),
|
||||
new WaveMission(30 + sector.difficulty*5 + Mathf.randomSeed(sector.getSeed(), 0, 5)*5)
|
||||
));
|
||||
sector.missions.add(new WaveMission(Math.min(10 + sector.difficulty*5 + Mathf.randomSeed(sector.getSeed(), 0, 5)*5, 100)));
|
||||
}
|
||||
|
||||
//add all ores for now since material differences aren't well handled yet
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.content.blocks.StorageBlocks;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
@@ -33,21 +32,8 @@ public class BattleMission implements Mission{
|
||||
|
||||
@Override
|
||||
public void generate(Tile[][] tiles, Sector sector){
|
||||
int cx = 0, cy = 0;
|
||||
outer:
|
||||
for(int x = 0; x < tiles.length; x++){
|
||||
for(int y = 0; y < tiles[0].length; y++){
|
||||
if(tiles[x][y].block() == StorageBlocks.core){
|
||||
//set enemy core position to mirrored player core position
|
||||
cx = tiles.length - 1 - x;
|
||||
cy = tiles[0].length - 1 - y;
|
||||
break outer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tiles[cx][cy].setBlock(StorageBlocks.core);
|
||||
tiles[cx][cy].setTeam(Team.red);
|
||||
generateCoreAt(tiles, 60, 60, Team.blue);
|
||||
generateCoreAt(tiles, tiles.length-1-60, tiles[0].length-1-60, Team.red);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import io.anuke.mindustry.content.blocks.Blocks;
|
||||
import io.anuke.mindustry.content.blocks.StorageBlocks;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.Floor;
|
||||
import io.anuke.ucore.noise.Noise;
|
||||
import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
public interface Mission{
|
||||
boolean isComplete();
|
||||
@@ -12,4 +19,32 @@ public interface Mission{
|
||||
void display(Table table);
|
||||
|
||||
default void generate(Tile[][] tiles, Sector sector){}
|
||||
|
||||
default void generateCoreAt(Tile[][] tiles, int coreX, int coreY, Team team){
|
||||
Noise.setSeed(0);
|
||||
float targetElevation = Math.max(tiles[coreX][coreY].getElevation(), 1);
|
||||
|
||||
int lerpDst = 20;
|
||||
for(int x = -lerpDst; x <= lerpDst; x++){
|
||||
for(int y = -lerpDst; y <= lerpDst; y++){
|
||||
int wx = tiles.length/2 + x, wy = tiles[0].length/2 + y;
|
||||
|
||||
float dst = Vector2.dst(wx, wy, coreX, coreY);
|
||||
float elevation = tiles[wx][wy].getElevation();
|
||||
|
||||
if(dst < lerpDst){
|
||||
elevation = Mathf.lerp(elevation, targetElevation, Mathf.clamp(2*(1f-(dst / lerpDst))) + Noise.nnoise(wx, wy, 8f, 1f));
|
||||
}
|
||||
|
||||
if(tiles[wx][wy].floor().liquidDrop == null){
|
||||
tiles[wx][wy].setElevation((int) elevation);
|
||||
}else{
|
||||
tiles[wx][wy].setFloor((Floor) Blocks.sand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tiles[coreX][coreY].setBlock(StorageBlocks.core);
|
||||
tiles[coreX][coreY].setTeam(team);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
package io.anuke.mindustry.maps.missions;
|
||||
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import io.anuke.mindustry.content.blocks.Blocks;
|
||||
import io.anuke.mindustry.content.blocks.StorageBlocks;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.blocks.Floor;
|
||||
import io.anuke.ucore.noise.Noise;
|
||||
import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.state;
|
||||
|
||||
@@ -24,32 +18,8 @@ public class WaveMission implements Mission{
|
||||
|
||||
@Override
|
||||
public void generate(Tile[][] tiles, Sector sector){
|
||||
Noise.setSeed(0);
|
||||
int coreX = tiles.length/2, coreY = tiles.length/2;
|
||||
float targetElevation = Math.max(tiles[coreX][coreY].getElevation(), 1);
|
||||
|
||||
int lerpDst = 20;
|
||||
for(int x = -lerpDst; x <= lerpDst; x++){
|
||||
for(int y = -lerpDst; y <= lerpDst; y++){
|
||||
int wx = tiles.length/2 + x, wy = tiles[0].length/2 + y;
|
||||
|
||||
float dst = Vector2.dst(wx, wy, coreX, coreY);
|
||||
float elevation = tiles[wx][wy].getElevation();
|
||||
|
||||
if(dst < lerpDst){
|
||||
elevation = Mathf.lerp(elevation, targetElevation, Mathf.clamp(2*(1f-(dst / lerpDst))) + Noise.nnoise(wx, wy, 8f, 1f));
|
||||
}
|
||||
|
||||
if(tiles[wx][wy].floor().liquidDrop == null){
|
||||
tiles[wx][wy].setElevation((int) elevation);
|
||||
}else{
|
||||
tiles[wx][wy].setFloor((Floor) Blocks.sand);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tiles[coreX][coreY].setBlock(StorageBlocks.core);
|
||||
tiles[coreX][coreY].setTeam(Team.blue);
|
||||
generateCoreAt(tiles, coreX, coreY, Team.blue);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user