void CreateEvents() { guardEvent = new Eventd(GetPlayerNames(), "Who'll do guard today?", true); nextEvents.Push(guardEvent); if (gameController.food < gameController.players.Length && gameController.food > 0) { eatEvent = new Eventd(GetPlayerNames(), "Who should eat today?", true); nextEvents.Push(eatEvent); } nextEvents.Push(desicionEvent); }
void Start() { //definitions gridObj = GameObject.Find("Grid"); HUD = GameObject.Find("HUD"); gameController = GameObject.Find("GameController").GetComponent <GameController>(); desicionEvent = new Eventd(posibleEvents, "Do you want to do something?", false); nextEvents = new Stack <Eventd>(); deletedPlayers = new List <int>(); reports = new Stack <string>(); CreateEvents(); //if(gameController.sceneType == GameController.SCENE_TYPE.BreakRoom)CreateEvents(); }
void StartEvent(Eventd eventd) { questionPanel.transform.GetChild(0).GetComponent <Text>().text = eventd.question; questionPanel.SetActive(true); if (eventd.itIsWithPlayers) { eventd.alternatives = GetPlayerNames(); } for (int i = 0; i < eventd.alternatives.Length; i++) { GameObject newBtn = Instantiate(btnOption); int index = i; newBtn.transform.SetParent(gridObj.transform, false); newBtn.transform.GetChild(0).GetComponent <Text>().text = eventd.alternatives[i]; newBtn.GetComponent <Button>().onClick.AddListener(() => MakeDesicion(index, eventd.alternatives, eventd.question)); } }
void MakeDesicion(int index, string[] alternatives, string question) { int[] answers = new int[gameController.players.Length]; answers[0] = index; questionPanel.SetActive(false); foreach (Transform child in gridObj.transform) { GameObject.Destroy(child.gameObject); } for (int i = 1; i < gameController.players.Length; i++) { int des = gameController.players[i].GetComponent <Player>().Question(alternatives, question); answers[i] = des; } for (int i = 0; i < answers.Length; i++) { DialogPanels.transform.GetChild(i).gameObject.SetActive(true); DialogPanels.transform.GetChild(i).transform.GetChild(0).GetComponent <Text>().text = alternatives[answers[i]]; } questionPanel.SetActive(false); //gridObj.SetActive(false); if (question == "Do you want to do something?") { resultDialogue = ""; kick = true; gameboy = true; int answerCount = 0; for (int i = 0; i < answers.Length; i++) { switch (answers[i]) { case 0: if (kick) { if (answerCount > 0) { resultDialogue += " y "; } answerCount++; resultDialogue += "someone must be kicked from the party"; print("se va a tener que echar a alguien de la party"); kickEvent = new Eventd(GetPlayerNames(), "Choose who have to left the party", true); kick = false; nextEvents.Push(kickEvent); } break; case 1: if (gameboy) { resultDialogue += "it will be decided who'll have the console"; print("se va a decidir quien tendra la consola"); whoPlaysEvent = new Eventd(GetPlayerNames(), "Choose who will have the console", false); gameboy = false; nextEvents.Push(whoPlaysEvent); } break; } } } if (question == "Choose who have to left the party") { int[] resultCount = OrderByFrequency(answers); resultDialogue = gameController.players[resultCount[0]].GetComponent <Player>().name + " have to left the party this night :c"; mes = gameController.players[resultCount[0]].GetComponent <Player>().name + " left the party"; reports.Push(mes); deletedPlayers.Add(resultCount[0]); } if (question == "Choose who will have the console") { int[] resultCount = OrderByFrequency(answers); resultDialogue = gameController.players[resultCount[0]].GetComponent <Player>().name + " will play with the console today"; for (int i = 0; i < gameController.players.Length; i++) { gameController.players[i].GetComponent <Player>().console = false; } gameController.players[resultCount[0]].GetComponent <Player>().console = true; } if (question == "Who'll do guard today?") { int[] resultCount = OrderByFrequency(answers); resultDialogue = gameController.players[resultCount[0]].GetComponent <Player>().name + " will do guard today"; for (int i = 0; i < gameController.players.Length; i++) { gameController.players[i].GetComponent <Player>().guard = false; } gameController.players[resultCount[0]].GetComponent <Player>().guard = true; } if (question == "Who should eat today?") { int[] resultCount = OrderByFrequency(answers); resultDialogue = ""; for (int i = 0; i < gameController.players.Length; i++) { gameController.players[i].GetComponent <Player>().eats = false; } for (int i = 0; i < gameController.food; i++) { gameController.players[resultCount[i]].GetComponent <Player>().eats = true; resultDialogue += gameController.players[resultCount[i]].GetComponent <Player>().name + " "; } resultDialogue += "will eat today"; } result = true; }