using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using System; using System.Xml; using System.Text; using System.Collections; using System.Collections.Generic; using Object = UnityEngine.Object; public enum AchieveType { TotalPerson, ElfLevel, GardenLevel, AdAmt, SkillAmt, SignAmt, CloseAmt, ShareAmt, FlowerAmt, MiniGameAmt, TotalCoin, FlowerCoin, CurrentCoin, CostDiamond, } public class Achieve { #region 变量 public string ID { get { return "Achieve" + ID_; } } public string Desc { get { return Language.GetStr("AchieveDesc", ID); } } public string Name { get { return Language.GetStr("AchieveName", ID); } } public Sprite Icon { get { return ManaReso.LoadSprite(Icon_, Folder.UI); } } public double CurrentValue { get { return CurrentValue_; } set { CurrentValue_ = value; Slider.value = (float)(CurrentValue_ / TargetValue); if (CurrentValue_ >= TargetValue) { ToComplete(); } else { ToProcess(CurrentValue_); } } } public int ID_; public string Icon_; public double CurrentValue_; public int Index; public int Parent; public float Person; public float CoinPerson; public float DiamondOnce; public bool Lock = true; public bool Delete; public bool Complete; public double TargetValue; public Achieve PostAchieve; public AchieveType AchieveType; public Text Tit; public Text Lab; public Text BtnLab; public Slider Slider; public Image Image; public Button Button; public Transform AchieveItem; #endregion public Achieve(XmlAttributeCollection attribute) { Icon_ = attribute[11].Value; Delete = Auxiliary.BoolParse(attribute[7].Value, false); Parent = Auxiliary.IntParse(attribute[6].Value, -1); AchieveType = TypeParse(attribute[4].Value); ID_ = int.Parse(attribute[0].Value); Index = int.Parse(attribute[1].Value) - 1; TargetValue = double.Parse(attribute[5].Value); Person = Auxiliary.FloatParse(attribute[10].Value, 0); CoinPerson = Auxiliary.FloatParse(attribute[9].Value, 0); DiamondOnce = Auxiliary.FloatParse(attribute[8].Value, 0); ManaAchieve.AchieveDic.Add(ID_, this); if (Parent != -1) { ManaAchieve.AchieveDic[Parent].PostAchieve = this; } } public void Regist() { AchieveItem = ManaReso.GetAchieveItem(); Dictionary dic = new Dictionary(); Auxiliary.CompileDic(AchieveItem, dic); Tit = dic["Tit"].GetComponent(); Lab = dic["Lab"].GetComponent(); Slider = dic["Slider"].GetComponent(); Image = dic["Icon"].GetComponent(); Button = dic["Btn"].GetComponent