TKK_E32231768/Assets/6Script/quiz/coba random/Quest.cs

254 lines
6.8 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Quest : MonoBehaviour
{
public Text soalText;
public Text[] jawabanTexts;
public int[] randomJawabans;
public ControlQuest[] controlQuest;
public static int nomorQuest;
int nomorSoal;
[Tooltip("GameRound mengikuti nilai array 0=1 1=2")]
public int GameRound;
public GameObject panelHasil;
public int[] randomSoals;
[Header("Point")]
public Text pointText;
public int point;
public static int totalPoint;
public Text textPointGame;
[Header("Timer")]
public int increaseTime;
public int decreaseTime;
public Slider timerSlider;
[Header("Power Up")]
int nomorJawabanBenar;
public Button[] powerUps;
[Header("Soal Image")]
public Image imageSoal;
public Button[] buttonJawabans;
void Start()
{
textPointGame.text = totalPoint.ToString();
totalPoint = 0;
Debug.Log(TimerGame.isStop + " isStop");
RandomNomerSoal();
GenerateQuest();
}
void Update()
{
}
public void ButtonPowerUpTrueAnswer()
{
powerUps[1].interactable = false;
for (int i = 0; i < jawabanTexts.Length; i++)
{
if (jawabanTexts[i].text == controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabans[controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabanBenar])
{
Debug.Log(i + "nomor benar");
nomorJawabanBenar = i;
break;
}
}
for (int i = 0; i < jawabanTexts.Length; i++)
{
if (i != nomorJawabanBenar)
{
jawabanTexts[i].transform.parent.gameObject.SetActive(false);
}
}
}
public void ButtonPowerUpFifty()
{
powerUps[0].interactable = false;
for (int i = 0; i < jawabanTexts.Length; i++)
{
if (jawabanTexts[i].text == controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabans[controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabanBenar])
{
Debug.Log(i + "nomor benar");
nomorJawabanBenar = i;
break;
}
}
Debug.Log("break");
if (nomorJawabanBenar - 1 <= 0)
{
jawabanTexts[jawabanTexts.Length - 1].transform.parent.gameObject.SetActive(false);
}
else
{
jawabanTexts[nomorJawabanBenar - 1].transform.parent.gameObject.SetActive(false);
}
if (nomorJawabanBenar + 1 >= jawabanTexts.Length)
{
jawabanTexts[0].transform.parent.gameObject.SetActive(false);
}
else
{
jawabanTexts[nomorJawabanBenar + 1].transform.parent.gameObject.SetActive(false);
}
}
void RandomNomerSoal()
{
for (int i = 0; i < randomSoals.Length; i++)
{
int a = randomSoals[i];
int b = Random.Range(0, randomSoals.Length);
randomSoals[i] = randomSoals[b];
randomSoals[b] = a;
}
}
void RandomNomerJawaban()
{
for (int i = 0; i < randomJawabans.Length; i++)
{
int a = randomJawabans[i];
int b = Random.Range(0, randomJawabans.Length);
randomJawabans[i] = randomJawabans[b];
randomJawabans[b] = a;
}
}
void GenerateQuest()
{
RandomNomerJawaban();
RandomNomerSoal();
soalText.text = controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.soal;
imageSoal.sprite = controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.spriteSoal;
for (int i = 0; i < buttonJawabans.Length; i++)
{
jawabanTexts[i].transform.parent.gameObject.SetActive(true);
jawabanTexts[i].text = controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabans[randomJawabans[i]];
buttonJawabans[i].image.sprite = controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.spriteJawabans[randomJawabans[i]];
}
}
public void ButtonJawabanSoal()
{
Text currentJawaban = EventSystem.current.currentSelectedGameObject.transform.GetChild(0).GetComponent<Text>();
if (currentJawaban.text == controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabans[controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabanBenar])
{
Debug.Log("benar");
/*
if (nomorSoal == GameRound)
{
panelHasil.transform.GetChild(1).GetComponent<Text>().text = "Selamat. semua soal telah Terjawab!";
panelHasil.transform.GetChild(2).gameObject.SetActive(false);
}
*/
totalPoint += point;
timerSlider.value += increaseTime;
}
else
{
Debug.Log("salah");
//panelHasil.transform.GetChild(1).GetComponent<Text>().text = "Ayo Coba Lagi!";
//panelHasil.transform.GetChild(2).gameObject.SetActive(false);
if (totalPoint >= 0)
{
}
totalPoint += point / 2;
timerSlider.value -= decreaseTime;
}
Sprite spriteJawaban = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().image.sprite;
if (spriteJawaban.name == controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.spriteJawabans[controlQuest[nomorQuest].soals[randomSoals[nomorSoal]].elementSoal.jawabanBenar].name)
{
Debug.Log("benar");
totalPoint += point / 2;
timerSlider.value += decreaseTime;
}
else
{
Debug.Log("salah");
totalPoint += point / 2;
timerSlider.value -= decreaseTime;
}
textPointGame.text = totalPoint.ToString();
nomorSoal++;
if (nomorSoal == GameRound) //counting game round
{
TimerGame.isStop = true;
panelHasil.transform.GetChild(1).GetComponent<Text>().text = "Selamat Telah Mengerjakan Semua Soal";
panelHasil.transform.GetChild(2).gameObject.SetActive(false);
panelHasil.SetActive(true);
pointText.text = "Point Akhir Kamu: " + totalPoint.ToString();
}
else
{
GenerateQuest();
}
if (TimerGame.isTimeStop == true)
{
TimerGame.isTimeStop = false;
}
}
public void ButtonNextSoal()
{
panelHasil.SetActive(false);
nomorSoal++;
GenerateQuest();
}
}