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, CreateRoomAmt, CreateChestAmt, CreateLuckyChestAmt, CreateGuessColorChestAmt, CreateGuessNumberChestAmt, GetChestAwardAmt, } public class Achieve { #region Config private static string IDPrefix = "Achieve"; private string NameLanLabel { get { return LabelUtility.ConbineLanguageLabel(LanguageLabel.AchieveName,FullID); } } private string DescLanLabel { get { return LabelUtility.ConbineLanguageLabel(LanguageLabel.AchieveDesc, FullID); } } public string FullID { get { return IDPrefix + ID; } } public string Desc { get { return Language.GetStr(DescLanLabel); } } public string Name { get { return Language.GetStr(NameLanLabel); } } public Sprite Sprite { get { return ResourceManager.LoadSprite(SpriteName, Folder.UI); } } public double CurrentValue { get { return currentValue; } set { currentValue = value; Slider.value = (float)(currentValue / TargetValue); if (currentValue >= TargetValue) { ToComplete(); } else { ToProcess(currentValue); } } } public double currentValue; public int ID; public string SpriteName; 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) { SpriteName = attribute[11].Value; Delete = Auxiliary.StringToBool(attribute[7].Value, false); Parent = Auxiliary.StringToInt(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.StringToFloat(attribute[10].Value, 0); CoinPerson = Auxiliary.StringToFloat(attribute[9].Value, 0); DiamondOnce = Auxiliary.StringToFloat(attribute[8].Value, 0); AchieveManager.AchieveDic.Add(ID, this); if (Parent != -1) { AchieveManager.AchieveDic[Parent].PostAchieve = this; } } public void Init() { AchieveItem = ResourceManager.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