Exemple #1
0
        /// <summary>
        /// Set server's PlayerMissionsProgress dictionary for simple state sync.
        /// </summary>
        /// <param name="matchID"></param>
        public void ConfigureForServer(string matchID, string professorID)
        {
            MatchID = matchID;

            var allPlayers = GameManager.Instance.Players.Values;

            PlayerMissionsProgress.Clear();

            foreach (var player in allPlayers)
            {
                if (player.MatchID == matchID && player.PlayerId != professorID)
                {
                    PlayerMissionsProgress.Add(player.PlayerId, false);
                }
            }
        }
Exemple #2
0
        //랜덤 Guid로 플레이어들을 정렬해서 미션을 분배하는 방식을 선택
        private void AssignMissions(Guid orderId)
        {
            var players = GameManager.Instance.Players.Values.OrderBy(p => p.PlayerId).ToList();

            for (int i = 0; i < players.Count; i++)
            {
                Player player = players[i];
                //PlayerState might not be updated here. However, Missions assigned to Profesor has no meaning.
                if (player.State != PlayerState.Student)
                {
                    continue;
                }

                PlayerMissionsProgress.Add(player.PlayerId, false);

                player.AssignMissions(AllMissions.Skip(i * MissionsPerPlayer).Take(MissionsPerPlayer));
            }
        }