OnlineGameScript.cs 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. using UnityEngine.UI;
  6. public class OnlineGameScript : MonoBehaviour {
  7. // Status color Pending, not your turn, your turn, declined
  8. List<Color32> statusColors = new List<Color32>() { new Color32(234, 164, 17, 100), new Color32(255, 255, 24, 175), new Color32(0, 255, 0, 100), new Color32(219, 12, 65, 100), new Color32(12,12,219,150) };
  9. public Text gameStatusText;
  10. public Text gameTitleText;
  11. private int id;
  12. private int winNumber;
  13. private int answerTimer;
  14. private int roundTimeLimit;
  15. private string currentPlayer;
  16. private int round;
  17. private string startDate;
  18. private string lastPlayedDate;
  19. private string finishedDate;
  20. private List<KeyValuePair<string, string>> playerInfos;
  21. public int GetId() {
  22. return id;
  23. }
  24. public void SetId(int value) {
  25. id = value;
  26. }
  27. public int WinNumber { get => winNumber; set => winNumber = value; }
  28. public int AnswerTimer { get => answerTimer; set => answerTimer = value; }
  29. public int RoundTimeLimit { get => roundTimeLimit; set => roundTimeLimit = value; }
  30. public string CurrentPlayer { get => currentPlayer; set => currentPlayer = value; }
  31. public int Round { get => round; set => round = value; }
  32. public string StartDate { get => startDate; set => startDate = value; }
  33. public string LastPlayedDate { get => lastPlayedDate; set => lastPlayedDate = value; }
  34. public string FinishedDate { get => finishedDate; set => finishedDate = value; }
  35. public string GameStatus {
  36. get { return gameStatus; }
  37. set {
  38. gameStatus = value;
  39. SetColor(gameStatus);
  40. //SetGameStatusText();
  41. }
  42. }
  43. public List<KeyValuePair<string, string>> PlayerInfos { get => playerInfos; set => playerInfos = value; }
  44. private string PENDING_TITLE = "ONLINE_GAME_STATUS_TITLE_VALUE_PENDING";
  45. private string ACTIVE_TITLE = "ONLINE_GAME_STATUS_TITLE_ACTIVE";
  46. private string DECLINED_TITLE = "ONLINE_GAME_STATUS_TITLE_DECLINED";
  47. private string INVITED_TITLE = "ONLINE_GAME_STATUS_TITLE_INVITED";
  48. private string FINISHED_TITLE = "ONLINE_GAME_STATUS_TITLE_INVITED";
  49. private string PENDING = "ONLINE_GAME_STATUS_PENDING";
  50. private string DECLINED = "ONLINE_GAME_STATUS_DECLINED";
  51. private string ACTIVE = "ONLINE_GAME_STATUS_ACTIVE";
  52. private string INVITED = "ONLINE_GAME_STATUS_INVITED";
  53. private string OTHERS_TURN = "ONLINE_GAME_STATUS_OTHERS_TURN";
  54. private string YOUR_TURN = "ONLINE_GAME_STATUS_YOUR_TURN";
  55. // BEHÖVS EN FINISHED OCKSÅ.
  56. // behövs nog en partialy declined status också, om en av fyra tackar nej kanske man viss spela ändå.
  57. // behövs också en med dina inbjudningar.
  58. private Button gameInfoButton;
  59. private void Start() {
  60. gameInfoButton = this.GetComponent<Button>();
  61. gameInfoButton.onClick.AddListener(ShowInfoPanel);
  62. }
  63. private void ShowInfoPanel() {
  64. GameObject gameInfoPanel = GameObject.Find("GameInfoPanel");
  65. GameInfoScript gameInfoScript = gameInfoPanel.GetComponent<GameInfoScript>();
  66. gameInfoScript.SetOnlineData(this);
  67. gameInfoScript.Show();
  68. }
  69. public string gameStatus;
  70. private void SetColor(string status) {
  71. Image image = this.GetComponent<Image>();
  72. if ("PENDING".Equals(status)) {
  73. image.color = statusColors[0];
  74. } else if ("YOUR_TURN".Equals(status)) {
  75. image.color = statusColors[1];
  76. } else if ("OTHERS_TURN".Equals(status)) {
  77. image.color = statusColors[2];
  78. } else if ("DECLINED".Equals(status)) {
  79. image.color = statusColors[3];
  80. } else if ("INVITED".Equals(status)) {
  81. image.color = statusColors[4];
  82. } else if ("ACTIVE".Equals(status)) {
  83. Int32.TryParse(CurrentPlayer, out int currentPlayerId);
  84. if (currentPlayerId == Database.Instance.GetSignedInUser().Key) {
  85. image.color = statusColors[2];
  86. } else {
  87. image.color = statusColors[1];
  88. }
  89. } else {
  90. image.color = new Color32(100, 100, 100, 100);
  91. }
  92. }
  93. public void SetTitleText(string text) {
  94. gameTitleText.text = text;
  95. }
  96. public void SetGameStatusText() {
  97. SetGameStatusText("");
  98. }
  99. public void SetGameStatusText(string extraInfo) {
  100. if ("PENDING".Equals(GameStatus)) {
  101. gameStatusText.gameObject.GetComponent<TextLocalization>().key = PENDING;
  102. gameStatusText.text = LocalizationManager.Instance.GetText(PENDING);
  103. gameTitleText.gameObject.GetComponent<TextLocalization>().key = PENDING_TITLE;
  104. SetTitleText(LocalizationManager.Instance.GetText(PENDING_TITLE));
  105. } else if ("YOUR_TURN".Equals(GameStatus)) {
  106. gameStatusText.gameObject.GetComponent<TextLocalization>().key = YOUR_TURN;
  107. gameStatusText.text = LocalizationManager.Instance.GetText(YOUR_TURN);
  108. gameTitleText.gameObject.GetComponent<TextLocalization>().key = "FCM_NEXT_PLAYER_TITLE";
  109. SetTitleText(LocalizationManager.Instance.GetText("FCM_NEXT_PLAYER_TITLE"));
  110. } else if ("OTHERS_TURN".Equals(GameStatus)) {
  111. gameStatusText.gameObject.GetComponent<TextLocalization>().key = OTHERS_TURN;
  112. string message = LocalizationManager.Instance.GetText(OTHERS_TURN);
  113. gameStatusText.text = String.Format(message, extraInfo);
  114. gameTitleText.gameObject.GetComponent<TextLocalization>().key = "NOT_YOUR_TURN";
  115. SetTitleText(LocalizationManager.Instance.GetText("NOT_YOUR_TURN"));
  116. } else if ("DECLINED".Equals(GameStatus)) {
  117. gameStatusText.gameObject.GetComponent<TextLocalization>().key = DECLINED;
  118. gameStatusText.text = LocalizationManager.Instance.GetText(DECLINED);
  119. gameTitleText.gameObject.GetComponent<TextLocalization>().key = DECLINED_TITLE;
  120. SetTitleText(LocalizationManager.Instance.GetText(DECLINED_TITLE));
  121. } else if ("INVITED".Equals(GameStatus)) {
  122. gameStatusText.gameObject.GetComponent<TextLocalization>().key = INVITED;
  123. gameStatusText.text = LocalizationManager.Instance.GetText(INVITED);
  124. gameTitleText.gameObject.GetComponent<TextLocalization>().key = INVITED_TITLE;
  125. SetTitleText(LocalizationManager.Instance.GetText(INVITED_TITLE));
  126. } else if ("ACTIVE".Equals(GameStatus)) {
  127. TextLocalization textLocalization = gameStatusText.gameObject.GetComponent<TextLocalization>();
  128. textLocalization.key = ACTIVE;
  129. textLocalization.SetReplaceText(extraInfo);
  130. gameTitleText.gameObject.GetComponent<TextLocalization>().key = ACTIVE_TITLE;
  131. gameTitleText.text = LocalizationManager.Instance.GetText(ACTIVE_TITLE);
  132. } else {
  133. gameStatusText.text = "SOMETHING WRONG WITH STATUS TITLE FROM TEXT " + GameStatus;
  134. }
  135. }
  136. public void SetId(string id) {
  137. Int32.TryParse(id, out int intId);
  138. SetId(intId);
  139. }
  140. public void SetWinNumber(string winNumber) {
  141. Int32.TryParse(winNumber, out int intWinNumber);
  142. WinNumber = intWinNumber;
  143. }
  144. public void SetAnswerTimer(string answerTimer) {
  145. Int32.TryParse(answerTimer, out int intAnswerTimer);
  146. AnswerTimer = intAnswerTimer;
  147. }
  148. public void SetRoundTimeLimit(string roundTimeLimit) {
  149. Int32.TryParse(roundTimeLimit, out int intRoundTimelimit);
  150. RoundTimeLimit = intRoundTimelimit;
  151. }
  152. public void SetRound(string round) {
  153. Int32.TryParse(round, out int intRound);
  154. Round = intRound;
  155. }
  156. public void SetGameStatus(string status) {
  157. GameStatus = status;
  158. }
  159. }