NewQuestionsPanel.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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("Online") &&
  28. currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase ) &&
  29. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1 ||
  30. (gameMode.Equals("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. QuestionData = qd;
  37. } else if (gameMode.Equals("Online") &&
  38. !currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  39. SetNotYourTurn();
  40. }
  41. }
  42. private void Awake() {
  43. if (gameManagerScript == null) {
  44. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  45. }
  46. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) > 1) {
  47. generateNewQuestion(true);
  48. }
  49. }
  50. // Update is called once per frame
  51. void Update()
  52. {
  53. if (gameManagerScript.GameMode.Equals("Online") && !GameManagerScript.GetCurrentPlayer().Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  54. SetNotYourTurn();
  55. }
  56. }
  57. public void generateNewQuestion(bool setQuestionActive) {
  58. if (setQuestionActive) {
  59. AnswerLineQuestionCard[] answerLineQuestions = QuestionAnswerLine.GetComponentsInChildren<AnswerLineQuestionCard>();
  60. List<int> answerIds = new List<int>();
  61. foreach (var aq in answerLineQuestions) {
  62. answerIds.Add(aq.GetId());
  63. }
  64. string user = Database.Instance.GetSignedInUser().Value;
  65. QuestionData = Database.Instance.GetNewQuestion(answerIds, user,gameManager.GetComponent<GameManagerScript>().GameMode);
  66. AnswerText.text = "???? - ????";
  67. QuestionText.text = QuestionData.Question;
  68. backCategoryText.text = QuestionData.CategoryName;
  69. QuestioncardBackside.GetComponent<Image>().color = QuestionData.CategoryColor;
  70. FrontQuestionCategoryImage.color = QuestionData.CategoryColor;
  71. FrontQuestionCategoryText.text = QuestionData.CategoryName;
  72. GetComponentInChildren<Button>().interactable = true;
  73. } else {
  74. SetNotYourTurn();
  75. }
  76. }
  77. private void SetNotYourTurn()
  78. {
  79. backCategoryText.text = LocalizationManager.Instance.GetText("NOT_YOUR_TURN");
  80. QuestioncardBackside.GetComponent<Image>().color = new Color(130f, 130f, 130f, 255f);
  81. GetComponentInChildren<Button>().interactable = false;
  82. GetComponentInChildren<NewQuestionCardController>().BackClickable = false;
  83. }
  84. }