Пример #1
0
    public void ShowReward(int playerCount, List <string> ids, List <RewardScreenManager.RewardIcons> rewards,
                           int rewardsToGive)
    {
        _nextRoundStarted = false;
        // Check if we only care about positive rewards
        if (PSL_GameConfig.RewardType == "Positive")
        {
            rewards = rewards.Where(r => r.Positive).ToList();
        }
        // check if in single player
        if (SP_Manager.Instance.IsSinglePlayer())
        {
            rewards = rewards.Where(r => r.SupportsSinglePlayer).ToList();
        }
        else
        {
            rewards = rewards.Where(r => r.SupportsMultiplayer).ToList();
        }

        var rand       = UnityEngine.Random.Range(0, rewards.Count);
        var rewardData = rewards[rand];

        if (_rewardObjectInScene != null)
        {
            Destroy(_rewardObjectInScene);
        }

        _type = rewardData.Type;
        _currentlyHighlighting = 0;
        _playerIds             = ids;
        _currentId             = 0;
        _rewardData            = rewards;

        UpdateHighlighted();
        _playerCount = playerCount;

        var gameManager = GameObject.Find("GameManager").GetComponent <GameManager>();

        _rewardObjectInScene = Instantiate(_rewardObject, _chest.transform.position, Quaternion.identity);
        _rewardObjectInScene.GetComponent <RewardSetup>().Setup(Localization.Get(rewardData.LocalizationKey), rewardData.Icon);

        var i = 0;

        foreach (var reward in Rewards)
        {
            var playerName = gameManager.GetPlayer(ids[i]).SyncNickName;
            reward.SetName(playerName);
            i++;
        }
    }
Пример #2
0
 public void RewardSelected(RewardScreenManager.RewardType type, string playerId)
 {
     transform.GetComponentInParent <RewardScreenManager>().SetReward(type, playerId);
 }