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 { Elf, AD, Skill, Sign, Share, Flower, Person, Garden, TotalCoin, MiniGame, FlowerCoin, CurrentCoin, } public class Achieve { #region 变量 public string Desc { get { return Language.GetStr("AchieveDesc", ID); } } public string Name { get { return Language.GetStr("AchieveName", ID); } } public int ID_; public string ID { get { return "Achieve" + ID_; } } public bool Regist { get { return Regist_; } set { Regist_ = value; if (Regist_) { AchieveItem = ManaReso.GetAchieveItem(); RegistValue(); } } } public bool Regist_; public string Icon_; public Sprite Icon { get { return ManaReso.Load(Icon_, Folder.UI); } } public int Index; public int Parent; public bool Valid; public bool Finish; public bool Delete; public float Person; public float CoinPerson; public float DiamondOnce; public double Value; public AchieveType Type; public List PostAchieveList = new List(); 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) { Valid = true; Icon_ = attribute[11].Value; Type = TypeParse(attribute[4].Value); Value = double.Parse(attribute[5].Value); Delete = BoolParse(attribute[7].Value); Parent = ParentParse(attribute[6].Value); ID_ = int.Parse(attribute[0].Value); Index = int.Parse(attribute[1].Value); Person = AwardParse(attribute[10].Value); CoinPerson = AwardParse(attribute[9].Value); DiamondOnce = AwardParse(attribute[8].Value); ManaAchieve.AchieveDic.Add(ID_, this); if (Parent != -1) { ManaAchieve.AchieveDic[Parent].PostAchieveList.Add(this); } } public void GetAward() { ManaDebug.Log(string.Format("获得钻石{0} 参观人次+{1} 每人次金币+{2}", DiamondOnce, Person, CoinPerson)); Valid = false; ManaData.Diamond += DiamondOnce; ManaData.SkillPerson += Person; ManaData.SkillCoinPerson += CoinPerson; ManaAchieve.DeleDic[Type] = null; if (Delete) { ManaReso.Save(AchieveItem); if (PostAchieveList.Count > 0) { PostAchieveList[0].Regist = true; PostAchieveList.RemoveAt(0); } } else { UpdateStatus(); } } public void RegistValue() { 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