using System; using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; public class ManaNotify { private class Content { public bool IsImage; public string text; public TextAnchor Alignment; public Content(bool isImage, string text, TextAnchor alignment) { this.text = text; this.IsImage = isImage; this.Alignment = alignment; } } public static bool Initialized; private static List TextList = new List(); private static Dictionary> ContentsDic = new Dictionary>(); public static void AddLine(bool isImage, string language, string content, TextAnchor alignment) { if (language == "null") { AddLine(isImage, "English", content, alignment); AddLine(isImage, "Chinese", content, alignment); AddLine(isImage, "ChineseTraditional", content, alignment); } if (!ContentsDic.ContainsKey(language)) { ContentsDic.Add(language, new List()); } ContentsDic[language].Add(new Content(isImage, content, alignment)); } public static void Show() { if (!Initialized) { Initialize(GetLanguage()); } else { SwitchLanguage(GetLanguage()); } ManaAudio.PlayClip(Clip.BubbleClip); ManaReso.Get("R_Notify").TweenForCG(); Auxiliary.Instance.DelayCall ( () => { ManaReso.Get("R_Grid").CalculateLayoutInputVertical(); ManaReso.Get("R_Grid").SetLayoutVertical(); }, 1 ); } public static void Initialize(string language) { Initialized = true; List contents = ContentsDic[language]; for (int i = 0; i < contents.Count; i++) { Transform transform = ManaReso.Get("NotifyItem", Folder.UI, false, ManaReso.Get("R_Grid"), false); if (contents[i].IsImage) { transform.GetComponent().fontSize = 300; transform.GetComponent().verticalOverflow = VerticalWrapMode.Overflow; transform.GetComponent().horizontalOverflow = HorizontalWrapMode.Overflow; transform.GetComponent().resizeTextForBestFit = false; transform.GetComponent().enabled = true; transform.GetChild(0).GetComponent().sprite = ManaServer.NotificationSprite; } transform.GetComponent().text = contents[i].text; transform.GetComponent().alignment = contents[i].Alignment; TextList.Add(transform.GetComponent()); } } public static void SwitchLanguage(string language) { for (int i = 0; i < TextList.Count; i++) { TextList[i].text = ContentsDic[language][i].text; } } public static string GetLanguage() { if (ManaLan.CurrentLan == Lan.ChineseSimplified) { return "Chinese"; } else if (ManaLan.CurrentLan == Lan.ChineseTraditional) { return "ChineseTraditional"; } else if (ManaLan.CurrentLan == Lan.English) { return "English"; } else { throw new Exception(); } } }