private void AssignFortress(Fortress fortress, Player owner) { // TODO: Prevent reassignment of fortresses _fortresses[fortress] = owner; fortress.OwnerID = owner.UserID; fortress.SetVisible(true); }
/// <summary> /// Instantiate a player with the given ID and return a reference to it /// </summary> /// <param name="userID"> /// ID to assign to instantiated player /// </param> /// <returns> /// Instantiated player /// </returns> public Player AddPlayer(string userID) { // TODO: Prevent adding too many players GameObject playerObject = Instantiate(_playerPrefab, this.transform); Player player = playerObject.GetComponent <Player>(); Fortress fortress = GetUnassignedFortress(); player.Initialize(userID, fortress); AssignFortress(fortress, player); _players[userID] = player; return(player); }
public void LoadPlayers(SerializablePlayer[] players) { foreach (Player player in _players.Values) { Destroy(player.gameObject); } _players.Clear(); foreach (SerializablePlayer player in players) { GameObject playerObject = Instantiate(_playerPrefab, this.transform); Player newPlayer = playerObject.GetComponent <Player>(); Fortress fortress = GetFortress(player.FortressID); newPlayer.Initialize(player.UserID, fortress); newPlayer.SetSkin(player.Skin); newPlayer.Score = player.Score; newPlayer.gameObject.SetActive(false); AssignFortress(fortress, newPlayer); _players[player.UserID] = newPlayer; } }
public void Initialize(string userID, Fortress fortress) { _userID = userID; Fortress = fortress; Despawn(); }
/// <summary> /// Get the Fortress with the given ID /// </summary> /// <param name="fortressID"> /// ID of Fortress to get /// </param> /// <returns> /// Fortress with the given ID /// </returns> public Fortress GetFortress(int fortressID) { Fortress fortress = _fortresses.Keys.FirstOrDefault(item => item.ID == fortressID); return(fortress); }