Implemented multi-mission sectors / Various bugfixes

This commit is contained in:
Anuken
2018-07-29 11:57:46 -04:00
parent b2d61a93d9
commit 81e954c258
10 changed files with 42 additions and 48 deletions

View File

@@ -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.*/

View File

@@ -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

View File

@@ -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);
}