Esempio n. 1
0
    public Sprite GetPlayerResultStatus(SamPlayerResurltStatus status)
    {
        int index = (int)status;

        if (index < sprPlayerResultStatus.Length)
        {
            return(sprPlayerResultStatus[index]);
        }
        return(null);
    }
Esempio n. 2
0
    IEnumerator WaitShowResult(SRSSamGameSession gameSession)
    {
        yield return(new WaitForSeconds(timeWaitShowResult));

        _sam.session = gameSession;

        DisableAllButton();

        // hide table card
        RomeveTableCard();
        userCards.ForEach(a => a.DisableCardSelect());

        // clear ui - update data - show result
        uiUser.HideCard();
        uiUser.HideBao1La();
        uiUser.HideCoundDown();
        uiUser.UpdateUserData(_sam.session.Players[uiUser._playerData.AccountID]);
        uiUser._playerData.Status = SamPlayerStatus.WAITING_MATCH;

        Database.Instance.UpdateUserMoney(MoneyType.GOLD, uiUser._playerData.Account.Gold);
        Database.Instance.UpdateUserMoney(MoneyType.COIN, uiUser._playerData.Account.Coin);

        SRSSamResult playerResult = gameSession.GameLoop.SessionResult.ResultList.FirstOrDefault(a => a.AccountId.Equals(uiUser._playerData.AccountID));

        if (playerResult != null)
        {
            SamPlayerResurltStatus status = _config.GetSamPlayerResurltStatus(playerResult.ResultFamily);
            uiUser.ShowStatus(_config.GetPlayerResultStatus(status), true, playerResult.Money);

            switch (playerResult.ResultFamily)
            {
            case SamResultFamily.TOI_TRANG:
                AudioAssistant.Instance.PlaySoundGame(_config.gameId, _config.audioThangDam);
                break;

            default:
                if (playerResult.Money < 0)
                {
                    AudioAssistant.Instance.PlaySoundGame(_config.gameId, _config.audioThua);
                }
                else
                {
                    AudioAssistant.Instance.PlaySoundGame(_config.gameId, _config.audioThang);
                }
                break;
            }
        }

        // Show Card in hand
        foreach (var uiPlayer in uiPlayers)
        {
            uiPlayer.HideCoundDown();
            uiPlayer.HideCard();
            uiPlayer.HideBao1La();

            if (uiPlayer._playerData != null && _sam.session.Players.ContainsKey(uiPlayer._playerData.AccountID))
            {
                uiPlayer.UpdateUserData(_sam.session.Players[uiPlayer._playerData.AccountID]);
                uiPlayer._playerData.Status = SamPlayerStatus.WAITING_MATCH;

                playerResult = gameSession.GameLoop.SessionResult.ResultList.FirstOrDefault(a => a.AccountId.Equals(uiPlayer._playerData.AccountID));
                if (playerResult != null)
                {
                    SamPlayerResurltStatus status = _config.GetSamPlayerResurltStatus(playerResult.ResultFamily);
                    uiPlayer.ShowStatus(_config.GetPlayerResultStatus(status), true, playerResult.Money);

                    ShowCardInHand(uiPlayer);
                }
            }
        }

        // hide result
        yield return(new WaitForSeconds(timeWaitHideResult));

        if (tableCards.Count > 0 || userCards.Count > 0)
        {
            _cardController.GiveBackAll();
            tableCards.Clear();
            userCards.Clear();

            uiUser.HideStatus();
            foreach (var uiPlayer in uiPlayers)
            {
                uiPlayer.HideStatus();
            }
        }
    }