public void HandleShowResult(object[] data) { string json = BestHTTP.JSON.Json.Encode(data[0]); SRSSamGameSession gameSession = JsonConvert.DeserializeObject <SRSSamGameSession>(json); StartCoroutine(WaitShowResult(gameSession)); }
public void HandleJoinGame(object[] data) { UILayerController.Instance.HideLoading(); string json = BestHTTP.JSON.Json.Encode(data[0]); SRSSamGameSession gameSession = JsonConvert.DeserializeObject <SRSSamGameSession>(json); StopAllCoroutines(); UILayerController.Instance.ShowLayer(UILayerKey.LGameSam, _assetBundleConfig.name, (UILayer layer) => { ((LGameSam)layer).Init(_config, _assetBundleConfig, _server, gameSession, moneyType, isRoomSolo); }); //((LGameSam)UILayerController.Instance.ShowLayer(UILayerKey.LGameSam)).Init(_config, _assetBundleConfig, _server, gameSession, moneyType); }
public void HandleStartGame(object[] data) { string json = BestHTTP.JSON.Json.Encode(data[0]); SRSSamGameSession gameSession = JsonConvert.DeserializeObject <SRSSamGameSession>(json); _cardController.GiveBackAll(); userCards.Clear(); tableCards.Clear(); _sam.session = gameSession; LoadRoomInfo(); uiUser.UpdateUserData(_sam.session.Players[uiUser._playerData.AccountID]); uiUser.HideStatus(); uiUser.HideBao1La(); Database.Instance.UpdateUserMoney(MoneyType.GOLD, uiUser._playerData.Account.Gold); Database.Instance.UpdateUserMoney(MoneyType.COIN, uiUser._playerData.Account.Coin); foreach (var uiPlayer in uiPlayers) { uiPlayer.HideStatus(); uiPlayer.HideBao1La(); if (uiPlayer._playerData != null && _sam.session.Players.ContainsKey(uiPlayer._playerData.AccountID)) { uiPlayer.UpdateUserData(_sam.session.Players[uiPlayer._playerData.AccountID]); } } btBatDau.gameObject.SetActive(false); turnInRound = 0; StartCoroutine(WaitChiaBai()); }
public void HandleDanhBai(object[] data) { string accountId = data[0].ToString(); List <int> cardIds = JsonConvert.DeserializeObject <List <int> >(BestHTTP.JSON.Json.Encode(data[1])); SRSSamGameSession gameSession = JsonConvert.DeserializeObject <SRSSamGameSession>(BestHTTP.JSON.Json.Encode(data[2])); uiUser.HideStatus(); uiPlayers.ForEach(a => a.HideStatus()); List <SamCard> cardAttack = new List <SamCard>(); if (uiUser._playerData.AccountID.Equals(accountId)) { foreach (var id in cardIds) { var uCard = userCards.FirstOrDefault(a => a.cardData.OrdinalValue == id); userCards.Remove(uCard); cardAttack.Add(uCard); } AddCardToTable(cardAttack); for (int i = 0; i < userCards.Count; i++) { var uCard = userCards[i]; uCard.MoveCard(uCard.transform.position, tranUserCards[i].position, tranUserCards[i], tranUserCards[i], 1, false); } // my bao1la if (userCards.Count == 1) { uiUser.ShowBao1La(); } else { uiUser.HideBao1La(); } } else { var uiPlayer = uiPlayers.FirstOrDefault(a => a.IsPlayer(accountId)); if (uiPlayer != null) { for (int i = 0; i < cardIds.Count; i++) { // user var uCard = _cardController.BorrowCard(); uCard.LoadData(new SRSSamCard { OrdinalValue = cardIds[i] }, null, false); uCard.LoadCard(); uCard.transform.SetParent(tranWorld); uCard.transform.localScale = new Vector3(0.6f, 0.6f, 1f); uCard.transform.position = uiPlayer.gCard.transform.position; cardAttack.Add(uCard); // remove card if (uiPlayer._playerData.HandCards.Count > 0) { uiPlayer._playerData.HandCards.RemoveAt(0); } } uiPlayer.UpdateCardNumber(uiPlayer._playerData.HandCards.Count); } AddCardToTable(cardAttack); } // check chat tuquy chat 2 bool isAttack2 = false; bool isAttackTuQuy = false; if (gameSession.GameLoop.CurrTurnCards != null) { int turnCardCount = gameSession.GameLoop.CurrTurnCards.Count; if (turnCardCount > 0) { var turnCard = gameSession.GameLoop.CurrTurnCards[0]; isAttack2 = _config.IsAttack2(turnCard.Value.Type); isAttackTuQuy = _config.IsAttackTuQuy(turnCard.Value.Type); if (isAttackTuQuy) { // show tu quy if (uiUser._playerData.AccountID.Equals(accountId)) { uiUser.ShowStatus(_config.GetPlayerResultStatus(SamPlayerResurltStatus.TU_QUY), false, 0); } else { var uiPlayer = uiPlayers.FirstOrDefault(a => a.IsPlayer(accountId)); if (uiPlayer != null) { uiPlayer.ShowStatus(_config.GetPlayerResultStatus(SamPlayerResurltStatus.TU_QUY), false, 0); } } // show bi chat if (turnCardCount > 1) { var lastTurnCard = gameSession.GameLoop.CurrTurnCards[1]; bool isLastAttack2 = _config.IsAttack2(lastTurnCard.Value.Type); bool isLastAttackTuQuy = _config.IsAttackTuQuy(lastTurnCard.Value.Type); if (isLastAttack2 || isLastAttackTuQuy) { if (uiUser._playerData.AccountID.Equals(lastTurnCard.Key)) { uiUser.ShowStatus(_config.GetPlayerResultStatus(SamPlayerResurltStatus.BI_CHAT), false, 0); } else { var uiPlayer = uiPlayers.FirstOrDefault(a => a.IsPlayer(lastTurnCard.Key)); if (uiPlayer != null) { uiPlayer.ShowStatus(_config.GetPlayerResultStatus(SamPlayerResurltStatus.BI_CHAT), false, 0); } } } } } } } // audio AudioAssistant.Instance.PlaySoundGame(_config.gameId, isAttack2 ? _config.audioDanh2 : _config.audioDanhBai); }
public void Init(SRSSamConfig config, AssetBundleSettingItem assetBundleConfig, SamSignalRServer server, SRSSamGameSession session, int moneyType, bool isSolo) { _sam = new SRSSam(); _sam.session = session; _sam.moneyType = moneyType; ClearUI(); _config = config; _assetBundleConfig = assetBundleConfig; _settingSound = AudioAssistant.Instance.GetSettingSound(_config.gameId); _account = Database.Instance.Account(); _server = server; _server.OnSRSEvent = OnSRSEvent; _server.OnSRSHubEvent = OnSRSHubEvent; _server.OnSRSHubCallEvent = OnSRSHubCallEvent; gUiCoints.ForEach(a => a.SetActive(_sam.moneyType == MoneyType.COIN)); gUiGolds.ForEach(a => a.SetActive(_sam.moneyType == MoneyType.GOLD)); gUiSamNormals.ForEach(a => a.SetActive(!isSolo)); gUiSamSolos.ForEach(a => a.SetActive(isSolo)); LoadRoomInfo(); LoadUserFirst(isSolo); }
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(); } } }