// --- Static Methods --- // Loads in the team public static Team load(string filename, GameExt game) { // Variables BinaryReader reader= new BinaryReader(File.OpenRead(filename)); Team team= new Team(game, true); int size; int passiveSize= 0; team.money= reader.ReadInt32(); size= reader.ReadInt32(); for(int i= 0; i< size; i++) { team.units.add( new Unit( reader.ReadString(), reader.ReadString(), reader.ReadString(), game, game.registry.get<ProfessionRegistry>().get(reader.ReadChar()+""+reader.ReadChar()+""+reader.ReadChar()+""+reader.ReadChar()) ) ); team.units.items[i].statVariance= new BaseStats(reader.ReadUInt64()); team.units.items[i].setExp(reader.ReadInt32()); passiveSize= reader.ReadInt32(); for(int k= 0; k< passiveSize; k++) { team.units.items[i].assignPassive( team.units.items[i].decryptPassive(reader.ReadChar()), k ); } } return team; }
// Adds the given team into the map, if it is an ai or not public void addTeam(Team team, bool isAI) { team.id= teams.size; for(int i= 0; i< team.units.size; i++) team.units.items[i].isAI= isAI; teams.add(team); }
public void addTeam(Team team) { addTeam(team, false); }
// Purchases a unit with the given profession using the tag public static Unit purchaseUnit(ref Team team, string tag, string nickname, GameExt game) { for(int i= 0; i< professions.size; i++) { if(professions[i].tag== tag) return professions[i].createItem(ref team, game, nickname); } return null; }
// Initiates the states of the game protected override void initStates() { // Variables Team team; try { if(File.Exists("player.team")) { team= Team.load("player.team", this); team.isAI= false; } else { team= new Team(this, false, Unit.create("", this, registry.get<ProfessionRegistry>().get(Ballista.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Soldier.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Cardinal.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Thug.ID), 1) ); team.save("player.team"); } } catch { team= new Team(this, false, Unit.create("", this, registry.get<ProfessionRegistry>().get(Ballista.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Soldier.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Cardinal.ID), 1), Unit.create("", this, registry.get<ProfessionRegistry>().get(Thug.ID), 1) ); team.save("player.team"); } states.addState("gameplay", new GSGameplay()); states.addState("main_menu", new GSMainMenu(ref team)); states.startAtState("main_menu"); }
// --- Constructors --- public GSMainMenu(ref Team pmTeam) { team= pmTeam; }