using LitJson; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using System; using System.Xml; using System.Collections; using System.Collections.Generic; using Random = UnityEngine.Random; public enum ArchiveSource { Fake, Random, SerialNumber, } public class VisitData { public bool Praised; public JsonData JsonData; } public class ManaVisit : Regist { #region 变量 #region 配置 public static int Cost { get { return Cost_; } set { Cost_ = value; ManaReso.Get("C_CostLab").text = "<(金币)>" + Cost; } } public static int Cost_; public static int CoolTime; public static float FancyRate; public static float AwardRate; public static float CreateRate; public static string CostFml; public static string AwardMinFml; public static string AwardMaxFml; #endregion public static float PullTimer; public static List UsedDataList = new List(); public static List UnusedDataList = new List(); public static bool InVisit; public static bool Complete; public static bool LoadComplete; public static bool TweenComplete; public static string XmlStr; public static int Slot; public static int Level; public static XmlNode Node; public static XmlDocument Document; public static int VisiteePraise; public static string VisiteeSerialNumber; public static bool OriginBird; public static bool OriginTree; public static bool OriginRainbow; public static List VisitPlantList; public static List OriginPlantList; public static List OriginElfList; #endregion public void Update() { if (UnusedDataList.Count > 8) { return; } PullTimer += Time.deltaTime; if (PullTimer >= 0.5f) { PullTimer = 0; ManaServer.RandomLoad ( data => { PullArchiveCallback(data, null, SavePulledArchive); } ); } } public static void Initialize() { XmlAttributeCollection attribute = ManaData.GetVisitConfig(); CostFml = attribute[5].Value; Cost = Mathf.FloorToInt((float)Auxiliary.FmlParse(CostFml, "l", ManaCenter.Level.ToString())); AwardMinFml = attribute[2].Value; AwardMaxFml = attribute[3].Value; CoolTime = int.Parse(attribute[4].Value); FancyRate = float.Parse(attribute[7].Value); AwardRate = float.Parse(attribute[1].Value); CreateRate = float.Parse(attribute[6].Value); #region 倒计时 if (CoolTime != 0) { Text text = ManaReso.Get("C_VisitLab"); List delayList = new List(); List durationList = new List(); List pairList = new List(); List actionList = new List(); Vector3 v1 = new Vector3(0.75f, 0.75f, 0.75f); Vector3 v2 = new Vector3(0.4f, 0.4f, 0.4f); Vector3 v3 = new Vector3(0, 0, 0); for (int i = 0; i < CoolTime - 1; i++) { delayList.Add(0.5f); delayList.Add(0); } delayList.Add(0.5f); for (int i = 0; i < CoolTime; i++) { durationList.Add(0.25f); durationList.Add(0.25f); pairList.Add(new VecPair(v1, v2)); pairList.Add(new VecPair(v2, v3)); var tempInt = i; actionList.Add ( () => { text.text = (CoolTime - tempInt).ToString(); ManaAudio.PlayClip(Clip.BtnClip); } ); actionList.Add(null); } TweenRoot tween = ManaReso.Get("C_VisitLab").CreateStreamScale ( delayList, durationList, pairList, true, false, Curve.EaseOutQuad, false, actionList ); tween.OnForwardFinish += () => { ManaAudio.PlayClip(Clip.BubbleClip); }; } #endregion Complete = true; } public static void ExitVisiteeGarden() { ManaReso.Get("I_BlackMask").TweenForCG(); HideTip (); ManaReso.SetActive("C_Visit", true); ManaReso.SetActive("C_Coin", true); ManaReso.SetActive("C_Group1", true); ManaReso.SetActive("C_Group2", true); ManaReso.Get