New team system / Prototype dedicated PvP gamemode

This commit is contained in:
Anuken
2018-08-20 23:45:27 -04:00
parent 7a5e61fd2e
commit 2e958d8d8f
25 changed files with 255 additions and 312 deletions

View File

@@ -7,11 +7,11 @@ import io.anuke.mindustry.content.blocks.Blocks;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.game.TeamInfo;
import io.anuke.mindustry.game.TeamInfo.TeamData;
import io.anuke.mindustry.game.Teams;
import io.anuke.mindustry.game.Teams.TeamData;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.maps.MapMeta;
import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.BlockPart;
import io.anuke.ucore.core.Core;
@@ -119,11 +119,16 @@ public class NetworkIO{
}
//write team data
stream.writeByte(state.teams.getTeams().size);
for(TeamData data : state.teams.getTeams()){
for(Team team : Team.all){
TeamData data = state.teams.get(team);
stream.writeByte(data.team.ordinal());
stream.writeBoolean(data.ally);
stream.writeShort(data.cores.size);
stream.writeByte(data.enemies.size());
for(Team enemy : data.enemies){
stream.writeByte(enemy.ordinal());
}
stream.writeByte(data.cores.size);
for(Tile tile : data.cores){
stream.writeInt(tile.packedPosition());
}
@@ -253,14 +258,21 @@ public class NetworkIO{
}
player.reset();
state.teams = new TeamInfo();
state.teams = new Teams();
byte teams = stream.readByte();
for(int i = 0; i < teams; i++){
Team team = Team.all[stream.readByte()];
boolean ally = stream.readBoolean();
short cores = stream.readShort();
state.teams.add(team, ally);
byte enemies = stream.readByte();
Team[] enemyArr = new Team[enemies];
for(int j = 0; j < enemies; j++){
enemyArr[j] = Team.all[stream.readByte()];
}
state.teams.add(team, enemyArr);
byte cores = stream.readByte();
for(int j = 0; j < cores; j++){
state.teams.get(team).cores.add(world.tile(stream.readInt()));