using LitJson; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.EventSystems; using System; using System.Xml; using System.Collections; using System.Collections.Generic; using System.IO; using repeatCallUtility; using Sfs2X.Entities.Data; using Random = UnityEngine.Random; public class UIManager : Regist { #region Config public static bool Initd; private static int MaxSkillDisplayAmt = 2; private static int MaxAbilityDisplayAmt = 3; private static int MinigameDisplayCoinAwardRatio = 10; private static int MinigameDisplayDiamondAward = 10; public static Transform Canvas; public static Transform Camera; public static Transform EventSystem; public static Coroutine StopPlayCreditsRoutine; public static UIManager Instance; #endregion public static void Init(bool debugMode) { if (Initd) { return; } if (Bundle.UI == null && !debugMode) { return; } Transform tra = new GameObject(ResourceLabel.UI).transform; tra.parent = Instance.transform; Canvas = ResourceManager.Get(ResourceLabel.Canvas, Folder.UI, true, tra, false, ObjType.Canvas); Camera = ResourceManager.Get(ResourceLabel.MainCamera, Folder.UI, true, tra, false, ObjType.MainCamera); EventSystem = ResourceManager.Get(ResourceLabel.EventSystem, Folder.UI, false, tra, false, ObjType.EventSystem); ResourceManager.SetActive(CanvasLabel.C_Main, true); ResourceManager.SetActive(CanvasLabel.U_LoadingPanel, true); Initializer.SetWarningTitleAndText(); Initd = true; } public override bool InitAtOnce() { if (base.InitAtOnce()) { return true; } Instance = this; return false; } public override void InstantiatePrefabs() { Init(Initializer.Instance.DebugMode); } public override void FirstInit() { Instance = this; #region B ResourceManager.SetSprite(CanvasLabel.Ba_Icon, Lib.BigGoldSprite); ResourceManager.SetSprite(CanvasLabel.Bb_IconB, Lib.BigGoldSprite); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Ba_Lab), new MulLanStr(LanguageLabel.UI__Ba_Lab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Ba_ConfirmLab), new MulLanStr(LanguageLabel.UI__Ba_ConfirmLab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bb_Title), new MulLanStr(LanguageLabel.UI__Bb_Title)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bb_GetLab), new MulLanStr(LanguageLabel.UI__Bb_GetLab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bb_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bb_ConfirmLab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bc_Lab), new MulLanStr(LanguageLabel.UI__Bc_Lab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bc_ConfirmLab), new MulLanStr(LanguageLabel.UI__Bc_ConfirmLab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bd_GetLab), new MulLanStr(LanguageLabel.UI__Bd_GetLab)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.Bd_Title), new MulLanStr(LanguageLabel.UI__Bd_Title)); #region B_SignIn TweenRoot tween = ResourceManager.Get(CanvasLabel.B_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad); tween.OnForwardStart += () => { ResourceManager.Get(CanvasLabel.C_Group0).TweenBacCG(); }; tween.OnBackwardFinish += () => { ResourceManager.Get(CanvasLabel.C_Group0).TweenForCG(); ResourceManager.Get(CanvasLabel.C_Group).GetTweenCG().InOrigin = true; }; #endregion #region B_SignIn0 ResourceManager.Get(CanvasLabel.B_SignIn0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad); #endregion #region Ba_Notice ResourceManager.Get(CanvasLabel.Ba_Notice).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Ba_Notice0).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad); #endregion #region Ba_Confirm ResourceManager.AddButtonEvent ( CanvasLabel.Ba_Confirm, () => { AudioManager.PlayClip(AudioLabel.GetCurrent); ResourceManager.Get(CanvasLabel.Ba_Notice).TweenBacCG(); Manager.OfflineFlag = false; if (!SignManager.ShowPanels()) { ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG(); } } ); #endregion #region Bb_Get ResourceManager.AddButtonEvent ( CanvasLabel.Bb_Get, () => { SignManager.GetSignAward(); } ); #endregion #region Bb_SignIn tween = ResourceManager.Get(CanvasLabel.Bb_SignIn).CreateTweenCG(0f, 1f, 0.5f, false, true, Curve.EaseOutQuad); tween.OnForwardStart += () => { ResourceManager.SetActive(CanvasLabel.Bb_Get, true); ResourceManager.SetActive(CanvasLabel.Bb_IconB, false); ResourceManager.SetActive(CanvasLabel.Bb_IconA, false); ResourceManager.SetActive(CanvasLabel.Bb_Rotate, false); ResourceManager.SetActive(CanvasLabel.Bb_Confirm, false); }; #endregion #region Bb_Confirm ResourceManager.AddButtonEvent ( CanvasLabel.Bb_Confirm, () => { AudioManager.PlayClip(AudioLabel.ClickButton); ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG(); ResourceManager.Get(CanvasLabel.Bb_SignIn).TweenBacCG(); SignManager.ShowPanels(); } ); #endregion #region Bc_Lottery ResourceManager.Get(CanvasLabel.Bc_Lab).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Bc_Lottery).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Bc_Confirm).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Bc_LotteryItem1).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Bc_LotteryItem2).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.Bc_LotteryItem3).CreateTweenEuler(new Vector3(0, 180, 0), 0.25f, false, true, true, Curve.EaseOutQuad); tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK12).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad); tween.PingPong = true; tween.StartForward(); tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK22).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad); tween.PingPong = true; tween.StartForward(); tween = ResourceManager.Get(CanvasLabel.Bc_LotteryBK32).CreateTweenGra(new Color(242/255f, 255/255f, 142/255f, 180/255f), 1, true, true, Curve.EaseOutQuad); tween.PingPong = true; tween.StartForward(); ResourceManager.SetButtonEvent(CanvasLabel.Bc_Confirm, Lottery.EndAnimation); #endregion #region Bd_Get ResourceManager.AddButtonEvent ( CanvasLabel.Bd_Get, () => { AudioManager.PlayClip(AudioLabel.ClickButton); ResourceManager.Get(CanvasLabel.Bd_Mail0).TweenBacCG(); if (!SignManager.ShowPanels()) { ResourceManager.Get(CanvasLabel.B_SignIn).TweenBacCG(); } } ); #endregion #region Bd_Mail0 TweenRoot tweenRoot9 = ResourceManager.Get(CanvasLabel.Bd_Mail0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); tweenRoot9.OnBackwardFinish = () => { for (int i = 0; i < ResourceManager.Get(CanvasLabel.Bd_Grid).childCount; i++) { ResourceManager.Save(ResourceManager.Get(CanvasLabel.Bd_Grid).GetChild(i--)); } }; #endregion #endregion #region C ResourceManager.SetSprite(CanvasLabel.C_Coin, ResourceManager.LoadSprite(ResourceLabel.Gold, Folder.Atlas)); LanguageManager.Add(ResourceManager.Get(CanvasLabel.C_MiniGameLab), new MulLanStr(LanguageLabel.UI__C_MiniGameLab)); #region C_Main ResourceManager.Get(CanvasLabel.C_Main).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); #endregion #region C_Main2 ResourceManager.Get(CanvasLabel.C_Main2).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); #endregion #region C_Group ResourceManager.Get(CanvasLabel.C_Group).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); ResourceManager.Get(CanvasLabel.C_Group0).CreateTweenCG(0, 1, 0.25f, false, true, Curve.EaseOutQuad); #endregion #region C_Setting ResourceManager.SetButtonEvent ( CanvasLabel.C_Setting, () => { AudioManager.PlayClip(AudioLabel.ClickButton); ResourceManager.Get(CanvasLabel.L_Setting).TweenForCG(); } ); #endregion #region C_Achieve tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Achieve), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad); tween.PingPong = true; ResourceManager.AddButtonEvent ( CanvasLabel.C_Achieve, () => { AchieveManager.OpenAchievePanel(); } ); #endregion #region C_Manage tween = AnimManager.CreateTweenOutline(ResourceManager.Get(CanvasLabel.C_Manage), 0, 201/255f, 1f, true, true, Curve.EaseOutQuad); tween.PingPong = true; ResourceManager.AddButtonEvent ( CanvasLabel.C_Manage, () => { OpenManagePanel(); } ); #endregion #region C_MiniGame Vector3 big = ResourceManager.Get(CanvasLabel.C_MiniGame).sizeDelta; Vector3 small = big*0.5f; TweenRoot tweenRoot = ResourceManager.Get(CanvasLabel.C_MiniGame).CreateTweenRect(big, small, 1f, true, true, Curve.EaseOutQuad, true); tweenRoot.OnForwardStart = () => { TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline(); tweenOutline.PingPong = false; tweenOutline.StartBackward(); }; tweenRoot.OnForwardFinish = () => { TweenOutline tweenOutline = ResourceManager.Get(CanvasLabel.C_MiniGame).GetTweenOutline(); tweenOutline.Target.enabled = false; //ResourceManager.Get