Example #1
0
 private void AssignFortress(Fortress fortress, Player owner)
 {
     // TODO: Prevent reassignment of fortresses
     _fortresses[fortress] = owner;
     fortress.OwnerID      = owner.UserID;
     fortress.SetVisible(true);
 }
Example #2
0
        /// <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);
        }
Example #3
0
        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;
            }
        }
Example #4
0
 public void Initialize(string userID, Fortress fortress)
 {
     _userID  = userID;
     Fortress = fortress;
     Despawn();
 }
Example #5
0
        /// <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);
        }