private void LoadMessage() { currentText = currentMessage.Text; currentText = currentText.Replace("~~", playerName); textIndex = 0; typing = true; bool player = currentMessage.Player; playerBubble.transform.parent.gameObject.SetActive(player); npcBubble.transform.parent.gameObject.SetActive(!player); playerBubble.text = ""; npcBubble.text = ""; playerAnim.SetInteger("MessageState", currentMessage.PlayerAnimState); npcAnim.SetInteger("MessageState", currentMessage.NpcAnimState); //player response buttons if (currentMessage.Branching) { Dictionary <string, int> branches = currentMessage.Branches; List <string> buttonText = new List <string>(branches.Keys); int numOfButtons = branches.Count; for (int i = 0; i < buttonList.Length; i++) { bool active = i <= (numOfButtons - 1); buttonList[i].transform.parent.gameObject.SetActive(active); if (active) { int textIndex = random.Next(0, buttonText.Count - 1); buttonList[i].text = buttonText[textIndex].Replace("~~", dataHolder.player.PlayerName); buttonText.RemoveAt(textIndex); } } } else { for (int i = 0; i < buttonList.Length; i++) { buttonList[i].transform.parent.gameObject.SetActive(false); } } //Audio playAudioScript.PlayVoiceLine(currentMessage.Voice); }