NewQuestionsPanel.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. private NewQuestionData questionData;
  14. private GameManagerScript gameManagerScript;
  15. public NewQuestionData QuestionData { get => questionData; set => questionData = value; }
  16. [SerializeField] GameObject gameManager;
  17. // Start is called before the first frame update
  18. void Start()
  19. {
  20. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  21. int gameId = gameManagerScript.GameId;
  22. string gameMode = gameManagerScript.GameMode;
  23. //string gameMode = Database.Instance.GetGameMode(gameId);
  24. string currentPlayer = Database.Instance.GetCurrentPlayer(gameId, gameMode);
  25. if (gameMode.Equals("Online") &&
  26. currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase ) &&
  27. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1 ||
  28. (gameMode.Equals("Local") &&
  29. Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1)) {
  30. List<NewQuestionData> usersQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, gameManagerScript.GameMode);
  31. NewQuestionData qd = usersQuestions[0];
  32. AnswerText.text = qd.Answer;
  33. QuestionText.text = qd.Question;
  34. QuestionData = qd;
  35. } else if (gameMode.Equals("Online") &&
  36. !currentPlayer.Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  37. SetNotYourTurn();
  38. }
  39. }
  40. private void Awake() {
  41. if (gameManagerScript == null) {
  42. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  43. }
  44. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) > 1) {
  45. generateNewQuestion(true);
  46. }
  47. }
  48. // Update is called once per frame
  49. void Update()
  50. {
  51. if (gameManagerScript.GameMode.Equals("Online") && !GameManagerScript.GetCurrentPlayer().Equals(Database.Instance.GetSignedInUser().Value, StringComparison.InvariantCultureIgnoreCase)) {
  52. SetNotYourTurn();
  53. }
  54. }
  55. public void generateNewQuestion(bool setQuestionActive) {
  56. if (setQuestionActive) {
  57. AnswerLineQuestionCard[] answerLineQuestions = QuestionAnswerLine.GetComponentsInChildren<AnswerLineQuestionCard>();
  58. List<int> answerIds = new List<int>();
  59. foreach (var aq in answerLineQuestions) {
  60. answerIds.Add(aq.GetId());
  61. }
  62. string user = Database.Instance.GetSignedInUser().Value;
  63. QuestionData = Database.Instance.GetNewQuestion(answerIds, user,gameManager.GetComponent<GameManagerScript>().GameMode);
  64. AnswerText.text = "???? - ????";
  65. QuestionText.text = QuestionData.Question;
  66. backCategoryText.text = QuestionData.CategoryName;
  67. QuestioncardBackside.GetComponent<Image>().color = QuestionData.CategoryColor;
  68. GetComponentInChildren<Button>().interactable = true;
  69. } else {
  70. SetNotYourTurn();
  71. }
  72. }
  73. private void SetNotYourTurn()
  74. {
  75. backCategoryText.text = LocalizationManager.Instance.GetText("NOT_YOUR_TURN");
  76. QuestioncardBackside.GetComponent<Image>().color = new Color(130f, 130f, 130f, 255f);
  77. GetComponentInChildren<Button>().interactable = false;
  78. GetComponentInChildren<NewQuestionCardController>().BackClickable = false;
  79. }
  80. }