Implemented multi-mission sectors / Various bugfixes
This commit is contained in:
@@ -5,7 +5,6 @@ import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.mindustry.game.Saves.SaveSlot;
|
||||
import io.anuke.mindustry.game.SpawnGroup;
|
||||
import io.anuke.mindustry.maps.missions.Mission;
|
||||
import io.anuke.mindustry.maps.missions.WaveMission;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.ucore.util.Bits;
|
||||
|
||||
@@ -20,10 +19,12 @@ public class Sector{
|
||||
public int saveID = -1;
|
||||
/**Sector size; if more than 1, the coordinates are the bottom left corner.*/
|
||||
public int size = 1;
|
||||
/**Num of missions in this sector that have been completed so far.*/
|
||||
public int completedMissions;
|
||||
/**Display texture. Needs to be disposed.*/
|
||||
public transient Texture texture;
|
||||
/**Mission of this sector-- what needs to be accomplished to unlock it.*/
|
||||
public transient Mission mission = new WaveMission(30);
|
||||
/**Missions of this sector-- what needs to be accomplished to unlock it.*/
|
||||
public transient Array<Mission> missions = new Array<>();
|
||||
/**Enemies spawned at this sector.*/
|
||||
public transient Array<SpawnGroup> spawns = new Array<>();
|
||||
/**Ores that appear in this sector.*/
|
||||
|
||||
@@ -134,12 +134,12 @@ public class Sectors{
|
||||
sector.difficulty = (int)(Mathf.dst(sector.x, sector.y)/2);
|
||||
|
||||
if(sector.difficulty < 1){
|
||||
sector.mission = new WaveMission(30);
|
||||
sector.missions.add(new WaveMission(30));
|
||||
}else{
|
||||
sector.mission = Mathf.choose(
|
||||
sector.missions.add(Mathf.choose(
|
||||
new BattleMission(sector.difficulty),
|
||||
new WaveMission(30 + sector.difficulty*5 + Mathf.randomSeed(sector.getSeed(), 0, 5)*5)
|
||||
);
|
||||
));
|
||||
}
|
||||
|
||||
//add all ores for now since material differences aren't well handled yet
|
||||
|
||||
@@ -12,6 +12,7 @@ import io.anuke.mindustry.game.Team;
|
||||
import io.anuke.mindustry.maps.MapTileData;
|
||||
import io.anuke.mindustry.maps.MapTileData.TileDataMarker;
|
||||
import io.anuke.mindustry.maps.Sector;
|
||||
import io.anuke.mindustry.maps.missions.Mission;
|
||||
import io.anuke.mindustry.type.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
@@ -35,7 +36,6 @@ public class WorldGenerator{
|
||||
private Simplex sim3 = new Simplex(baseSeed + 2);
|
||||
private RidgedPerlin rid = new RidgedPerlin(baseSeed + 4, 1);
|
||||
private VoronoiNoise vn = new VoronoiNoise(baseSeed + 2, (short)0);
|
||||
|
||||
private SeedRandom random = new SeedRandom(baseSeed + 3);
|
||||
|
||||
private GenResult result = new GenResult();
|
||||
@@ -212,7 +212,9 @@ public class WorldGenerator{
|
||||
tiles[coreX][coreY].setBlock(StorageBlocks.core);
|
||||
tiles[coreX][coreY].setTeam(Team.blue);
|
||||
|
||||
sector.mission.generate(tiles, sector);
|
||||
for(Mission mission : sector.missions){
|
||||
mission.generate(tiles, sector);
|
||||
}
|
||||
|
||||
prepareTiles(tiles, sector.getSeed(), true, sector.ores);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user