NewQuestionsPanel.cs 3.5 KB

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