using System; using System.Collections.Generic; using System.Linq; using Wizard; public class VoiceDictionaries { public VoiceDictionary playVoices; public VoiceDictionary evoVoices; public VoiceDictionary atkVoices; public VoiceDictionary evoAtkVoices; public VoiceDictionary destroyVoices; public VoiceDictionary evoDestroyVoices; public List skillVoices; public List evoSkillVoices; public List attachSkillVoices; private const string UNDER_BAR = "_"; public string VoiceId { get; private set; } public VoiceDictionaries(int cardId, CardMaster.CardMasterId cardMasterId) { CardParameter cardParameterFromId = CardMaster.GetInstance(cardMasterId).GetCardParameterFromId(cardId); if (cardParameterFromId != null) { VoiceDictionary.SettingVoiceData(ref playVoices, (cardParameterFromId.PlayVoice != null) ? cardParameterFromId.PlayVoice : ""); VoiceDictionary.SettingVoiceData(ref evoVoices, (cardParameterFromId.EvoVoice != null) ? cardParameterFromId.EvoVoice : ""); VoiceDictionary.SettingVoiceData(ref atkVoices, ref evoAtkVoices, (cardParameterFromId.AtkVoice != null) ? cardParameterFromId.AtkVoice : ""); VoiceDictionary.SettingVoiceData(ref destroyVoices, ref evoDestroyVoices, (cardParameterFromId.DestroyVoice != null) ? cardParameterFromId.DestroyVoice : ""); VoiceDictionary.SettingVoiceDataList(out skillVoices, out evoSkillVoices, (cardParameterFromId.SkillVoice != null) ? cardParameterFromId.SkillVoice : ""); } attachSkillVoices = new List(); VoiceId = GetVoiceId(); } private bool GetVoiceIDBeforeUnderBar(VoiceDictionary dic, ref string retVoiceID) { string[] allVoiceList = dic.GetAllVoiceList(); if (allVoiceList.Length == 0) { return false; } if (string.IsNullOrEmpty(allVoiceList[0])) { return false; } string text = allVoiceList.FirstOrDefault((string v) => v != "NONE".ToLower()); if (text == null) { return false; } retVoiceID = text.Split(new string[1] { "_" }, StringSplitOptions.None)[0]; return true; } private bool GetVoiceIDListBeforeUnderBar(List dicList, ref string retVoiceID) { if (dicList != null && dicList.Count > 0) { for (int i = 0; i < dicList.Count; i++) { if (GetVoiceIDBeforeUnderBar(dicList[i], ref retVoiceID)) { return true; } } } return false; } private string GetVoiceId() { string retVoiceID = ""; if (GetVoiceIDBeforeUnderBar(playVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDBeforeUnderBar(evoVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDBeforeUnderBar(atkVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDBeforeUnderBar(evoAtkVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDBeforeUnderBar(destroyVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDBeforeUnderBar(evoDestroyVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDListBeforeUnderBar(skillVoices, ref retVoiceID)) { return retVoiceID; } if (GetVoiceIDListBeforeUnderBar(evoSkillVoices, ref retVoiceID)) { return retVoiceID; } GetVoiceIDListBeforeUnderBar(attachSkillVoices, ref retVoiceID); return retVoiceID; } public List GetNormalPlayVoices() { List list = playVoices.GetAllVoiceList().ToList(); List list2 = new List(); for (int i = 0; i < list.Count; i++) { string text = list.ElementAt(i); if ((text.Contains("_ub") || text.Contains("_sb") || text.Contains("_ssb")) && !text.Contains("_ubp") && !text.Contains("_sbp") && !text.Contains("_ssbp")) { if (text.Contains("_ubl")) { list[i] = list[i].Replace("_ubl", "_ub"); } else if (text.Contains("_sbl")) { list[i] = list[i].Replace("_sbl", "_sb"); } else if (text.Contains("_ssbl")) { list[i] = list[i].Replace("_ssbl", "_ssb"); } else { list2.Add(text); } } } foreach (string item in list2) { list.Remove(item); } return list; } }