private IEnumerator PlayEpilogue(Data.succesRate succes) { TableIntro table = new TableIntro(); switch (succes) { case Data.succesRate.positive: table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epiloguePositive); break; case Data.succesRate.neutral: table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epilogueNeutral); break; case Data.succesRate.negative: table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.epilogueNegative); break; } displayManager.SetDisplayContainer(table.imagePath); textManager.SetTextArray(table.text); textManager.Next(); while (true) { if (InputHandler.GetInput().accept) { if (textManager.textLength <= 0) { break; } else { textManager.Next(); } } yield return(null); } while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown) { yield return(null); } SceneManager.LoadScene("Menu"); }
private IEnumerator ActionComplete(Data.succesRate succesRate) { Data.actionsTaken++; if (offer == Data.offers.boar) { Data.killsCommited++; } TableActions table = DatabaseHandler.GetFromDatabaseActions((Data.actions)offer); int randomNumber = Random.Range(0, table.rows.Length - 1); switch (succesRate) { case Data.succesRate.positive: textManager.SetTextArray(table.rows [randomNumber].positive); Data.towerStage++; break; case Data.succesRate.neutral: textManager.SetTextArray(table.rows[randomNumber].neutral); break; case Data.succesRate.negative: textManager.SetTextArray(table.rows [randomNumber].negative); Data.destroyedStructures++; break; } textManager.Next(); while (true) { if (InputHandler.GetInput().accept) { if (textManager.textLength <= 0) { break; } else { textManager.Next(); } } yield return(null); } while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown) { yield return(null); } actionManager.gameObject.SetActive(false); RowEvent row = tableEvent.result((int)guardian, (int)succesRate); displayManager.gameObject.SetActive(true); displayManager.SetDisplayContainer(row.imagePath); textManager.SetTextArray(row.text); textManager.Next(); while (true) { if (InputHandler.GetInput().accept) { if (textManager.textLength <= 0) { break; } else { textManager.Next(); } } yield return(null); } while (textManager.isPrinting || !InputHandler.GetInput().acceptKeyDown) { yield return(null); } if (Data.towerStage >= Data.winningCount) { if (Data.killsCommited / Data.actionsTaken < Data.neutralThreshold) { StartCoroutine(PlayEpilogue(Data.succesRate.positive)); } else { StartCoroutine(PlayEpilogue(Data.succesRate.neutral)); } } else if (Data.destroyedStructures >= Data.losingCount) { StartCoroutine(PlayEpilogue(Data.succesRate.negative)); } else if (row.nextEvent != -1) { tableEvent = DatabaseHandler.GetFromDatabaseEvents((Data.events)row.nextEvent); textManager.SetTextArray(new string[1] { "To which guardian would you like to make the offering?" }); textManager.Next(); displayManager.gameObject.SetActive(false); choiceManager.gameObject.SetActive(true); choiceManager.Reset(); } else { NewEventDeck(); Data.events eventCur = eventDeck[0]; eventDeck.RemoveAt(0); StartCoroutine(PlayEvent(eventCur)); } }
public void actionComplete(Data.succesRate succesRate) { StartCoroutine(ActionComplete(succesRate)); }