public void ShowPanel(SummaryPanelData data, UnityAction callback)
        {
            ConfirmButton.onClick.RemoveAllListeners();
            ConfirmButton.onClick.AddListener(() =>
            {
                ConfirmCountDownController.StopCountDown();
                callback();
            });
            gameObject.SetActive(true);
            PlayerNameText.text = data.PlayerName;
            HandTileManager.SetHandTiles(data.HandInfo.HandTiles, data.HandInfo.OpenMelds, data.HandInfo.WinningTile);
            WinTypeManager.SetType(data.HandInfo.IsTsumo);
            var uraDora = data.HandInfo.IsRichi ? data.HandInfo.UraDoraIndicators : null;

            DoraPanelManager.SetDoraIndicators(data.HandInfo.DoraIndicators, uraDora);
            // yaku list, total point and yaku rank
            Timing.RunCoroutine(YakuListCoroutine(data.PointInfo, data.TotalPoints, data.HandInfo.IsRichi, callback));
        }
Example #2
0
        public void SetTransfer(ClientRoundStatus CurrentRoundStatus, int[] places, IList <PointTransfer> transfers,
                                UnityAction callback)
        {
            gameObject.SetActive(true);
            var points = CurrentRoundStatus.Points;

            for (int placeIndex = 0; placeIndex < SubManagers.Length; placeIndex++)
            {
                int playerIndex = CurrentRoundStatus.GetPlayerIndex(placeIndex);
                if (!IsValidPlayer(playerIndex, CurrentRoundStatus.TotalPlayers))
                {
                    continue;
                }
                // get corresponding transfers
                var localTransfers = new List <Transfer>();
                foreach (var transfer in transfers)
                {
                    if (transfer.From == playerIndex)
                    {
                        localTransfers.Add(new Transfer
                        {
                            Type   = GetTransferType(transfer.From, transfer.To),
                            Amount = -transfer.Amount
                        });
                    }

                    if (transfer.To == playerIndex)
                    {
                        localTransfers.Add(new Transfer
                        {
                            Type   = Type.None,
                            Amount = transfer.Amount
                        });
                    }
                }

                SubManagers[placeIndex].SetTransfers(points[placeIndex], localTransfers);
                var place = System.Array.Find(places, p => p == playerIndex);
                SubManagers[placeIndex].SetPlace(place);
            }

            Timing.RunCoroutine(ShowPlacesAnimation(CurrentRoundStatus, places));
            // count down
            ConfirmButton.onClick.RemoveAllListeners();
            ConfirmButton.onClick.AddListener(() =>
            {
                ConfirmCountDownController.StopCountDown();
                callback();
            });
            ConfirmCountDownController.StartCountDown(MahjongConstants.SummaryPanelWaitingTime, callback);
        }