Esempio n. 1
0
        public string RemainingTimeString(bool useWord = true)
        {
            System.TimeSpan remaining = RemainingTimeSpan;
            string          display   = string.Empty;

            if (played && !playable && useWord)
            {
                display = TacoConfig.FinishStatus;
            }
            else if (remaining > new System.TimeSpan(0, 24, 0, 0))
            {
                display = TacoConfig.Pluralize(remaining.Days, "day");
            }
            else if (remaining > new System.TimeSpan(0, 1, 0, 0))
            {
                display = TacoConfig.Pluralize(remaining.Hours, "hr");
            }
            else if (remaining > new System.TimeSpan(0, 0, 1, 0))
            {
                display = TacoConfig.Pluralize(remaining.Minutes, "min");
            }
            else if (remaining > new System.TimeSpan(0, 0, 0, 0))
            {
                display = TacoConfig.Pluralize(remaining.Seconds, "second");
            }
            else
            {
                display = TacoConfig.EndStatus;
            }
            return(display);
        }
Esempio n. 2
0
        private void UpdateUIValue(LeaderboardResult r)
        {
            Tournament t = r.tournament;

            string tournamentType = t.Type;
            double prizePool      = t.PrizePool;
            double entryFee       = double.Parse(t.entryFee.ToString());

            LeaderboardRow currentUserRank = r.leaderboard.First(x => x.userId == TacoManager.User.userId);
            string         infos           = string.Empty;
            string         details;
            double         moneyValue = 0;
            int            winnerNb   = r.winner.Length;

            prizeIcon.sprite        = TacoConfig.currencySprites [t.typeCurrency];
            tournamentTypeText.text = TacoConfig.LeaderboardTournamentType.Replace("&type", tournamentType).Replace("&gameName", TacoSetup.Instance.gameName);
            details = TacoConfig.LeaderboardResultDetails.Replace("&player", t.size.ToString()).Replace("&winner", TacoConfig.Pluralize(t.prize_structure, "Winner"));
            if (!string.IsNullOrEmpty(t.endDate))
            {
                FinishedButtons.SetActive(true);
                endedLeaderboardFooter.SetActive(true);
                rankIcon.transform.parent.gameObject.SetActive(true);
                int userRank = int.Parse(currentUserRank.rank);
                if (userRank < 4)
                {
                    rankIcon.gameObject.SetActive(true);
                    rankIcon.sprite = imageList.Images [currentUserRank.rank];
                }
                else
                {
                    rankText.transform.parent.gameObject.SetActive(true);
                    rankText.text = TacoConfig.ToShortOrdinal(userRank);
                }
                string formatedDay = t.endDate.Substring(5, 2) + "-" + t.endDate.Substring(8, 2) + "-" + t.endDate.Substring(0, 4);
                infos += TacoConfig.LeaderboardResultEndOn.Replace("&day", formatedDay);
                if (userRank <= t.prize_structure)
                {
                    resultStatus.text = "You Won!";
                    prizeAmount.text  = "+ ";
                    moneyValue        = t.PrizePool / winnerNb;
                    int rpModifier = 0;
                    if (t.typeCurrency == 0)
                    {
                        rpModifier = 50;
                    }
                    else
                    {
                        rpModifier = 5;
                    }
                    redeemAmount.text = "+ " + TacoManager.FormatRP(Mathf.RoundToInt((float)(moneyValue * rpModifier)));
                }
                else
                {
                    resultStatus.text = "You Lost!";
                    prizeAmount.text  = "+ ";
                    moneyValue        = 0;
                    redeemAmount.text = "+ " + TacoManager.FormatRP(0);
                }
            }
            else
            {
                resultStatus.text = "Beautiful Job!";
                playingLeaderboardFooter.SetActive(true);

                /*if (currentUserRank.playable)
                 *                      {
                 *                              FinishedButtons.SetActive(true);
                 *                      }
                 *                      else
                 *                      {
                 *                              UnfinishedButtons.SetActive(true);
                 *                      }*/
                rankIcon.transform.parent.gameObject.SetActive(false);
                countdownTime = Mathf.Max((float)t.RemainingTimeSpan.TotalSeconds, -1);
                if (countdownTime < 0)
                {
                    remainingTime.text = "00:00:00";
                }
            }

            if (t.typeCurrency == 0)
            {
                prizePoolText.text = TacoManager.FormatCash(prizePool);
                entryFeeText.text  = TacoManager.FormatCash(entryFee);
                prizeAmount.text  += TacoManager.FormatCash(moneyValue);
            }
            else
            {
                prizePoolText.text = TacoManager.FormatGTokens(prizePool);
                entryFeeText.text  = TacoManager.FormatGTokens(entryFee);
                prizeAmount.text  += TacoManager.FormatGTokens(moneyValue);
            }

            for (int i = 0; i < LeaderBoardMoneyTypeImages.Count; i++)
            {
                LeaderBoardMoneyTypeImages [i].sprite = TacoConfig.currencySprites [t.typeCurrency];
            }

            infos += TacoConfig.LeaderboardResultTournamentID.Replace("&id", t.id.ToString());

            resultScore.text            = "Score: " + currentUserRank.score.ToString();
            tournamentDetailsText0.text = infos;
            tournamentDetailsText1.text = details;

            /*playAgain.onClick.RemoveAllListeners();
             *                playAgain.onClick.AddListener (() => {
             *                        TacoManager.OpenModalReEnterPanel (
             *                                TacoConfig.ReEnterNotice.Replace ("&type", tournamentType).Replace("&gameName", t.accessType == "public" ? "Public" : "Private"),
             *                                entryFeeText.text);
             *                });*/
            Reload(r.leaderboard, !string.IsNullOrEmpty(t.endDate));
        }
Esempio n. 3
0
 public void UpdateTournamentText(int nb)
 {
     transform.Find("Background/TournamentText").GetComponent <Text> ().text = TacoConfig.Pluralize(nb, TacoConfig.ActiveTournament);
 }
Esempio n. 4
0
        private void UpdateUIValue(ManageTournamentResult data)
        {
            tournament = data.tournament;
            List <string> joinedPlayers = new List <string>()
            {
                TacoManager.User.email
            };
            List <string> notJoinedPlayers = new List <string>();

            invitedEmails = new List <string>()
            {
                TacoManager.User.email
            };
            for (int i = 0; i < tournament.friendEmails.Length; i++)
            {
                if (tournament.friendStatuses[i] == "invited")
                {
                    if (!notJoinedPlayers.Contains(tournament.friendEmails[i]))
                    {
                        notJoinedPlayers.Add(tournament.friendEmails[i]);
                    }
                    if (!invitedEmails.Contains(tournament.friendEmails[i]))
                    {
                        invitedEmails.Add(tournament.friendEmails[i]);
                    }
                }
                else if (tournament.friendStatuses[i] == "accepted")
                {
                    if (!joinedPlayers.Contains(tournament.friendEmails[i]))
                    {
                        joinedPlayers.Add(tournament.friendEmails[i]);
                    }
                    if (!invitedEmails.Contains(tournament.friendEmails[i]))
                    {
                        invitedEmails.Add(tournament.friendEmails[i]);
                    }
                }
            }
            string infos = string.Empty;


            for (int i = 0; i < MoneyTypeImages.Count; i++)
            {
                MoneyTypeImages[i].sprite = TacoConfig.currencySprites[tournament.typeCurrency];
            }

            string createdTime = TacoManager.FormatDate(tournament.createdAt);

            infos += TacoConfig.ManageTournamentCreatedOn.Replace("&day", createdTime);
            infos += TacoConfig.LeaderboardResultTournamentID.Replace("&id", tournament.id.ToString());

            if (tournament.typeCurrency == 0)
            {
                prizePoolText.text = TacoManager.FormatCash(tournament.prize);
                entryFeeText.text  = TacoManager.FormatCash(tournament.entryFee);
            }
            else
            {
                prizePoolText.text = TacoManager.FormatGTokens(tournament.prize);
                entryFeeText.text  = TacoManager.FormatGTokens(tournament.entryFee);
            }
            winnerText.text            = TacoConfig.Pluralize(tournament.prize_structure, "Winner");
            playeredJoinedText.text    = tournament.memberIds.Length + "/" + tournament.size + " Players Joined";
            tournamentDetailsText.text = infos;
            countdownTime = (double)Mathf.Max((float)tournament.RemainingTimeSpan.TotalSeconds, -1);
            if (countdownTime < 0)
            {
                remainingTime.text = "00:00:00";
            }

            seeResultButton.interactable = tournament.entryIds.Contains(TacoManager.User.userId);

            //destroy old email fields
            float contentWidth = contentPanel.rect.width;

            for (int i = 1; i < emailsPanel.childCount; i++)
            {
                Destroy(emailsPanel.GetChild(i).gameObject);
            }

            //generate new email fields
            float spacing = 35;
            float width   = (contentPanel.rect.width - spacing);
            float height  = 150;

            inviteEmailTexts = new List <TournamentInvite>();

            for (int i = 0; i < notJoinedPlayers.Count; i++)
            {
                GameObject ob = Instantiate(TacoConfig.NotJoinedPlayerPrefab, Vector3.zero, Quaternion.identity, emailsPanel) as GameObject;
                Text       inviteeEmailText = ob.transform.Find("EmailInput/NameInput").GetComponent <Text>();
                inviteeEmailText.text = notJoinedPlayers[i];
                RectTransform r = ob.GetComponent <RectTransform>();
                r.localPosition = new Vector3(0, height * (-0.5f - i) - spacing);
                r.sizeDelta     = new Vector2(width - spacing * 5, height - spacing);

                ob.transform.Find("EmailInput/Send").GetComponent <Button>().onClick.AddListener(() => {
                    ob.transform.Find("EmailInput/Send").gameObject.SetActive(false);
                    Debug.Log("send reminder");
                    TournamentManager.Instance.InviteFriend(inviteeEmailText.text);
                    if (!invitedEmails.Contains(inviteeEmailText.text))
                    {
                        invitedEmails.Add(inviteeEmailText.text);
                    }
                });

                AddRemoveEmailEvent(ob, r, inviteeEmailText.text);
            }
            float offset = height * (-notJoinedPlayers.Count);


            int newEmailCount = tournament.size - joinedPlayers.Count - notJoinedPlayers.Count;

            for (int i = 0; i < newEmailCount; i++)
            {
                GameObject    ob = Instantiate(TacoConfig.InviteInputPrefab, Vector3.zero, Quaternion.identity, emailsPanel) as GameObject;
                RectTransform r  = ob.GetComponent <RectTransform>();
                r.localPosition = new Vector3(0, height * (-0.5f - i) - spacing + offset);
                r.sizeDelta     = new Vector2(width - spacing * 5, height - spacing);

                TournamentInvite invite = ob.GetComponent <TournamentInvite>();
                invite.reservedEmails = invitedEmails;
                invite.isInManage     = true;
                if (i > 0)
                {
                    inviteEmailTexts[i - 1].next = invite;
                    invite.prev = inviteEmailTexts[i - 1];
                    invite.SetInteractable(false);
                }

                if (i == 0)
                {
                    invite.SetFocus();
                }

                inviteEmailTexts.Add(invite);
            }
            //fix if invite more people than tournament size
            offset = height * (-0.5f - Mathf.Max((notJoinedPlayers.Count + newEmailCount), notJoinedPlayers.Count));
            Vector3 linePos = new Vector3(0, offset);

            //joined players
            for (int i = 0; i < joinedPlayers.Count; i++)
            {
                GameObject ob = Instantiate(joinedPlayerPrefab, Vector3.zero, Quaternion.identity, emailsPanel) as GameObject;
                ob.transform.Find("EmailInput/NameInput").GetComponent <Text>().text = joinedPlayers[i];
                RectTransform r = ob.GetComponent <RectTransform>();
                r.localPosition = new Vector3(0, height * (-1.5f - i) - spacing + offset);
                r.sizeDelta     = new Vector2(width - spacing * 5, height - spacing);
            }
            contentPanel.sizeDelta     = new Vector2(contentPanel.sizeDelta.x, Mathf.Max(5 * height, (int)(Mathf.Max(tournament.size, notJoinedPlayers.Count + joinedPlayers.Count) + 4.5f) * height + spacing));
            contentPanel.localPosition = new Vector3(contentPanel.localPosition.x, 0);
            line.localPosition         = linePos;
        }