NewQuestionsPanel.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class NewQuestionsPanel : MonoBehaviour
  6. {
  7. public GameObject QuestionAnswerLine;
  8. public Text AnswerText;
  9. public Text QuestionText;
  10. public Text backCategoryText;
  11. public GameObject QuestioncardBackside;
  12. private NewQuestionData questionData;
  13. private GameManagerScript gameManagerScript;
  14. public NewQuestionData QuestionData { get => questionData; set => questionData = value; }
  15. [SerializeField] GameObject gameManager;
  16. // Start is called before the first frame update
  17. void Start()
  18. {
  19. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  20. int gameId = gameManagerScript.GameId;
  21. string gameMode = Database.Instance.GetGameMode(gameId);
  22. string currentPlayer = Database.Instance.GetCurrentPlayer(gameId, gameMode);
  23. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) <= 1) {
  24. List<NewQuestionData> usersQuestions = Database.Instance.GetPlayerQuestions(gameId, currentPlayer, gameManagerScript.GameMode);
  25. NewQuestionData qd = usersQuestions[0];
  26. AnswerText.text = qd.Answer;
  27. QuestionText.text = qd.Question;
  28. QuestionData = qd;
  29. }
  30. }
  31. private void Awake() {
  32. if (gameManagerScript == null) {
  33. gameManagerScript = gameManager.GetComponent<GameManagerScript>();
  34. }
  35. if (Database.Instance.GetRoundValue(gameManagerScript.GameId, gameManagerScript.GameMode) > 1) {
  36. generateNewQuestion(true);
  37. }
  38. }
  39. // Update is called once per frame
  40. void Update()
  41. {
  42. }
  43. public void generateNewQuestion(bool setQuestionActive) {
  44. if (setQuestionActive) {
  45. AnswerLineQuestionCard[] answerLineQuestions = QuestionAnswerLine.GetComponentsInChildren<AnswerLineQuestionCard>();
  46. List<int> answerIds = new List<int>();
  47. foreach (var aq in answerLineQuestions) {
  48. answerIds.Add(aq.GetId());
  49. }
  50. string user = Database.Instance.GetSignedInUser().Value;
  51. QuestionData = Database.Instance.GetNewQuestion(answerIds, user,gameManager.GetComponent<GameManagerScript>().GameMode);
  52. AnswerText.text = "???? - ????";
  53. QuestionText.text = QuestionData.Question;
  54. backCategoryText.text = QuestionData.CategoryName;
  55. QuestioncardBackside.GetComponent<Image>().color = QuestionData.CategoryColor;
  56. GetComponentInChildren<Button>().interactable = true;
  57. } else {
  58. backCategoryText.text = LocalizationManager.Instance.GetText("NOT_YOUR_TURN");
  59. QuestioncardBackside.GetComponent<Image>().color = new Color(130f,130f,130f,255f);
  60. GetComponentInChildren<Button>().interactable = false;
  61. }
  62. }
  63. }