NewQuestionsPanel.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using System;
  6. public class NewQuestionsPanel : MonoBehaviour
  7. {
  8. public GameObject QuestionAnswerLine;
  9. public Text AnswerText;
  10. public Text QuestionText;
  11. public Text backCategoryText;
  12. public GameObject QuestioncardBackside;
  13. [SerializeField] Image FrontQuestionCategoryImage;
  14. [SerializeField] Text FrontQuestionCategoryText;
  15. private NewQuestionData questionData;
  16. private GameManagerScript gameManagerScript;
  17. public NewQuestionData QuestionData { get => questionData; set => questionData = value; }
  18. [SerializeField] GameObject gameManager;
  19. // Start is called before the first frame update
  20. void Start()
  21. {
  22. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  23. int gameId = gameManagerScript.GameId;
  24. string gameMode = gameManagerScript.GameMode;
  25. //string gameMode = Database.Instance.GetGameMode(gameId);
  26. string currentPlayer = Database.Instance.GetCurrentPlayer(gameId, gameMode);
  27. if (gameMode.Equals(Constants.ONLINE) &&
  28. currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase ) &&
  29. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1 ||
  30. (gameMode.Equals(Constants.LOCAL) &&
  31. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1)) {
  32. List<NewQuestionData> usersQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, gameManagerScript.GameMode);
  33. NewQuestionData qd = usersQuestions[0];
  34. AnswerText.text = qd.Answer;
  35. QuestionText.text = qd.Question;
  36. backCategoryText.text = qd.CategoryName;
  37. FrontQuestionCategoryText.text = qd.CategoryName;
  38. FrontQuestionCategoryImage.color = qd.CategoryColor;
  39. QuestioncardBackside.GetComponent<Image>().color = qd.CategoryColor;
  40. QuestionData = qd;
  41. } else if (gameMode.Equals(Constants.ONLINE) &&
  42. !currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  43. SetNotYourTurn();
  44. }
  45. }
  46. private void Awake() {
  47. if (gameManagerScript == null) {
  48. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  49. }
  50. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) > 1) {
  51. generateNewQuestion(true);
  52. }
  53. }
  54. // Update is called once per frame
  55. void Update()
  56. {
  57. if (gameManagerScript.GameMode.Equals(Constants.ONLINE) && !GameManagerScript.GetCurrentPlayer().Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  58. SetNotYourTurn();
  59. }
  60. }
  61. public void generateNewQuestion(bool setQuestionActive) {
  62. if (setQuestionActive) {
  63. AnswerLineQuestionCard[] answerLineQuestions = QuestionAnswerLine.GetComponentsInChildren<AnswerLineQuestionCard>();
  64. List<int> answerIds = new List<int>();
  65. foreach (var aq in answerLineQuestions) {
  66. answerIds.Add(aq.QuestionId);
  67. }
  68. KeyValuePair<int, String> user = Database.Instance.GetSignedInUser();
  69. QuestionData = Database.Instance.GetNewQuestion(answerIds, user, gameManager.GetComponent<GameManagerScript>().GameMode);
  70. AnswerText.text = "???? - ????";
  71. QuestionText.text = QuestionData.Question;
  72. backCategoryText.text = QuestionData.CategoryName;
  73. QuestioncardBackside.GetComponent<Image>().color = QuestionData.CategoryColor;
  74. FrontQuestionCategoryImage.color = QuestionData.CategoryColor;
  75. FrontQuestionCategoryText.text = QuestionData.CategoryName;
  76. GetComponentInChildren<Button>().interactable = true;
  77. } else {
  78. SetNotYourTurn();
  79. }
  80. }
  81. private void SetNotYourTurn()
  82. {
  83. backCategoryText.text = LocalizationManager.Instance.GetText("NOT_YOUR_TURN");
  84. QuestioncardBackside.GetComponent<Image>().color = new Color(130f, 130f, 130f, 255f);
  85. GetComponentInChildren<Button>().interactable = false;
  86. GetComponentInChildren<NewQuestionCardController>().BackClickable = false;
  87. }
  88. }