コード例 #1
0
        private Player CreatePlayer(int playerId)
        {
            Player player = new Player();

            PlayerData  playerData  = new PlayerData(playerId);
            List <Stat> playerStats = new List <Stat>();

            for (int i = 0; i < gameSettings.stats.Length; i++)
            {
                Stat stat = new Stat();
                stat.id       = gameSettings.stats[i].id;
                stat.title    = string.Copy(gameSettings.stats[i].title);
                stat.icon     = string.Copy(gameSettings.stats[i].icon);
                stat.value    = gameSettings.stats[i].value;
                stat.maxValue = gameSettings.stats[i].value;

                playerStats.Add(stat);
            }

            playerData.SetStats(playerStats);

            List <Buff> playerBuffs = new List <Buff>();

            if (gameType == GameType.WithBuffs)
            {
                // Добавляем игрокам баффы
                int buffsCount = UnityEngine.Random.Range(1, gameSettings.buffs.Length + 1);
                for (int i = 0; i < buffsCount; i++)
                {
                    int buffIndex = UnityEngine.Random.Range(0, gameSettings.buffs.Length);
                    playerBuffs.Add(gameSettings.buffs[buffIndex]);

                    // добавляем баффы к статам
                    for (int j = 0; j < playerBuffs[i].stats.Length; j++)
                    {
                        int statId = playerBuffs[i].stats[j].statId;
                        playerStats[statId].value += playerBuffs[i].stats[j].value;
                    }
                }

                playerData.SetBuffs(playerBuffs);
            }


            player.Data      = playerData;
            player.Behaviour = levelBehaiour.Players[playerId];

            return(player);
        }