private IEnumerator PlayIntro() { TableIntro table = DatabaseHandler.GetFromDatabaseIntro(Data.intros.intro); 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); } Data.events eventCur = eventDeck[0]; eventDeck.RemoveAt(0); StartCoroutine(PlayEvent(eventCur)); }
public static TableEvent GetFromDatabaseEvents(Data.events id) { IDbConnection databaseConnection; databaseConnection = new SqliteConnection("URI=file:" + Application.dataPath + "/Database/Events.db"); databaseConnection.Open(); IDbCommand databaseCommand = databaseConnection.CreateCommand(); databaseCommand.CommandText = "SELECT nextevent, destroyedstructure, imagepath, text FROM " + "tableId_" + ((int)id).ToString() + " ORDER BY id ASC"; IDataReader databaseResults = databaseCommand.ExecuteReader(); RowEvent rowIntro = new RowEvent(-1, -1, "", new string[0]); List <RowEvent> rowList = new List <RowEvent>(); bool intro = false; while (databaseResults.Read()) { string[] textArray = databaseResults.GetString(3).Split(splitCharacters, 999); RowEvent row = new RowEvent(databaseResults.GetInt32(0), databaseResults.GetInt32(1), databaseResults.GetString(2), textArray); if (!intro) { rowIntro = row; intro = true; } else { rowList.Add(row); } } RowEvent[] rowArray = new RowEvent[rowList.Count]; for (int i = 0; i < rowArray.Length; i++) { rowArray [i] = rowList [i]; } databaseResults.Close(); databaseResults = null; databaseCommand.Dispose(); databaseCommand = null; databaseConnection.Close(); databaseConnection = null; return(new TableEvent(rowIntro, rowArray)); }
private IEnumerator PlayEvent(Data.events newEvent) { tableEvent = DatabaseHandler.GetFromDatabaseEvents(newEvent); displayManager.SetDisplayContainer(tableEvent.intro.imagePath); textManager.SetTextArray(tableEvent.intro.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); } 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(); }
private bool NewEventDeck() { if (eventDeck.Count <= 0) { eventDeck = new List <Data.events>(); for (int i = 0; i < Data.eventsCount; i++) { eventDeck.Add((Data.events)i); } for (int i = 0; i < shuffleCount; i++) { int[] randomNumbers = new int[2] { Random.Range(0, Data.eventsCount - 1), Random.Range(0, Data.eventsCount - 1) }; Data.events eventTemp = eventDeck[randomNumbers[0]]; eventDeck[randomNumbers[0]] = eventDeck [randomNumbers[1]]; eventDeck[randomNumbers[1]] = eventTemp; } return(true); } return(false); }
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)); } }