/// <summary> /// Sets the character name to display on the Say Dialog. /// Supports variable substitution e.g. John {$surname} /// </summary> public virtual void SetCharacterName(string name, Color color) { if (string.IsNullOrEmpty(name)) { nameBox.SetActive(false); return; } nameBox.SetActive(true); if (nameText != null) { var subbedName = LocUtil.TranslateWithDefault(name, name); nameText.text = subbedName; } if (nameColorGraphic != null) { nameColorGraphic.color = color; } }
public static List <ConversationItem> GetConversationItems(string characterID, string conversationKey) { StringBuilder sb = new StringBuilder(); string key = characterID + "/" + conversationKey; var translationList = LocalizationManager.GetTermsList(key); if (GameManager.Instance.IsVampire(characterID)) { var altList = LocalizationManager.GetTermsList(key + "/v"); if (altList != null && altList.Count > 0) { translationList = altList; } } if (translationList == null) { Debug.LogError($"Conversation '{key}' is missing!"); return(new List <ConversationItem>()); } for (int i = 0; i < translationList.Count; i++) { sb.Append($"{LocUtil.TranslateWithDefault("", "params", false, translationList[i])}`{LocUtil.TranslateWithDefault("", "dialogue", false, translationList[i])}`"); for (int j = 1; j < 4; j++) { if (j > 1) { sb.Append("|"); } sb.Append($"{LocUtil.TranslateWithDefault("", "response_" + j + "_link", false, translationList[i])}={LocUtil.TranslateWithDefault("", "response_" + j, false, translationList[i])}"); } sb.Append("\t"); } if (sb.Length > 0) { return(Instance.Parse(sb.ToString())); } return(new List <ConversationItem>()); }