// ####################################################################################################################################### Post text /// <summary> /// Post message /// </summary> /// <param name="ConversationPiece"></param> void Post(ConversationPiece ConversationPiece) { finished = false; button.SetActive(false); txt.text = string.Empty; StartCoroutine(post(ConversationPiece)); }
/// <summary> /// Get conversation /// </summary> /// <param name="Character"></param> /// <param name="State"></param> /// <param name="Option"></param> /// <returns></returns> public static List<ConversationPiece> GetConversation(int Character, int State, int Option) { if (db.State != ConnectionState.Open) OpenDB(); SqliteCommand cmd = (SqliteCommand)db.CreateCommand(); cmd.CommandText = "SELECT text, size, speed FROM conversation WHERE character = @character AND state = @state AND option = @option ORDER BY piece ASC;"; cmd.Parameters.Add(new SqliteParameter("character", Character)); cmd.Parameters.Add(new SqliteParameter("state", State)); cmd.Parameters.Add(new SqliteParameter("option", Option)); SqliteDataReader reader = cmd.ExecuteReader(); List<ConversationPiece> conversation = new List<ConversationPiece>(); string str; int size; float speed; // Read data while (reader.Read()) { str = reader.GetString(0).Replace("%n%", Environment.NewLine); size = reader.GetInt32(1); speed = reader.GetFloat(2); ConversationPiece cp = new ConversationPiece(str, (ConversationPiece.ConversationFontSize)size, speed); conversation.Add(cp); } // Close reader.Close(); cmd.Dispose(); // Return return conversation; }
/// <summary> /// Post message /// </summary> /// <param name="ConversationPiece"></param> /// <returns></returns> IEnumerator post(ConversationPiece ConversationPiece) { // Text Size switch (ConversationPiece.Size) { case ConversationPiece.ConversationFontSize.Normal: txt.resizeTextMaxSize = (int)FontSizes.Normal; break; case ConversationPiece.ConversationFontSize.Big: txt.resizeTextMaxSize = (int)FontSizes.Big; break; case ConversationPiece.ConversationFontSize.Small: txt.resizeTextMaxSize = (int)FontSizes.Small; break; } // Text foreach (char c in ConversationPiece.Text) { txt.text += c; yield return new WaitForSeconds(Settings.TextSpeed * ConversationPiece.Speed); } button.SetActive(true); finished = true; }